Building an "Engineering-First" Analytics Team
The landscape of data analytics is changing rapidly, becoming much more akin to software development in many organizations. Gone are the days where an analyst might have a folder full of SQL files on their desktop, used to generate charts which are pasted into a powerpoint. Today, most analysts are being asked to create work which is easily repeatable, traceable, and consistently reliable. In other words, work like engineers
This is beneficial for everyone:
- For the analyst, it lowers the risk that they will need to repeat work and more ability to validate their analytics
- For the team member, it means easier repeatability / extension of the work
- For the stakeholder, it allows them to refresh the analysis on demand rather than having a static view
However, many analysts started and still think in the “old school” way of working. In order to make them successful, we need to coach and develop their skills to work more like software engineers.
Skills analysts need
In order to build a team of analysts which work like engineers, you need to focus on building competency and comfort with a number of tools:
- Git: Everything you do should be built in git. Everything. Data transformations. Reports. Analytics. You want to know each change, and why it’s done, so version control becomes critical for managing your BI. Sadly, most BI tools do not natively integrate effective version control, so you are required to build custom tooling here.
- CI/CD: We want analysts to make small, frequent changes in their work. While they don’t need to know the nitty-gritty of building CI/CD pipelines, they should be comfortable working in an environment where their work is continuously deployed into production.
- dbt: This one may be arguable, but one of the biggest improvements in recent years to the analytical workflow is being able to leverage dbt to improve the repeatability and testability of SQL to ensure that all analysis can be easily recreated.
Best practices in an engineering-first analytics team
- Everything is in the codebase and deployed, nothing is hidden in BI tools. No embedded SQL in Tableau
- Modularize the work. Create standard, documented transformations for common sources (ex “Users”). Define and document metrics to ensure consistency of calculation
- Give them the tools to succeed. Most analysts are not software engineers. Pre-configure their IDEs, don’t ask them to set everything up. Coach with context on why certain behaviors are desirable
- Define clear standards for work. Enforce them. Reward those who consistently demonstrate competency and consistency with increased autonomy and privileges.
- Automate all manual parts of the dev process so doing it “right” (ie reviewed, tested, deployed) is no harder than doing it “wrong”
- Take the time to train. Refresh regularly