Remember these old days when software engineering teams used to tune software until it passes quality gates, give golden bits to marketing and throw a big release party? The world was nice and simple and writing code that works according to a specification was enough to be a star developer.
Things have changed now. A lot of code has moved to services that are always connected. Even apps usually dial back home to record telemetry about their usage and health. This data flows back to engineering teams who became accountable for making sense out of this data. Engineering teams now share responsibility for driving business metrics such as revenue and engagement. Some people call it data-driven engineering. I think about it as a fundamental shift in a role of software engineer. Teams who can leverage data-driven engineering will delight customers by learning about them more than customers know about themselves. Teams who ignore data-driven engineering will continue based on assumptions and will eventually lose competitive nerve.
Telemetry data is not a bug report with a local repro or a trace. It will take forever to analyze it user by user to find patters in any sizable application. Software engineers need new skills to analyze telemetry data at scale and make changes in code that will drive desired changes in user behavior and software health.
Wow, it looks like a different job now. Most of us learned basics of math at school. Some of us may have taken a statistics class in college. However, until recently, a data analyst and a software engineer were two distinct professions. Many of us did not have a chance to practice math and stats while writing code and going to ship parties. Well maybe it’s time to blow dust off that old math book.
Unfortunately the entry barrier is quite high. The same way we are comfortable with design patterns, popular libraries and profilers, data analysts are fluent with things like population, types of sampling, p-values, decision trees and so on. It may take months to learn it deep enough to apply for your projects. I was lucky to study applied math and computer science in college, forget math during the first 8 years of my career and then relearn it to be a part of data-driven engineering in Bing and Visual Studio.
This blog will make it easier for software developers to join the world of data-driven engineering. It is not about pure data science as this topic is covered well elsewhere. Instead I will focus on a practical approach that sometimes deviates from classical data science but is easy to learn and apply.