6 Google Engineering Productivity Hacks We Learned the Hard Way
Tracking progress without shooting your team in the foot
You can't measure productivity.
You can count lines of code shipped by a team, the number of ticket they solved, the hours they spent behind a screen... yet none of that is measuring the actual productivity of your team.
For the lack of better heuristics, we tend to resort to the metrics at hand. But why are we attempting to measure productivity in the first place, and what do we mean by "productivity"?
Chances are, you mean well and want to support your team's effort, but you're not sure how. Here are some insights from Ciera Jaspan, Engineering Productivity Research group Lead at Google, you can implement at your organization.
Don't focus on a single metric.1 Prioritizing a metric systematically comes with a tradeoff. For instance, improving code execution speed often happens at the expense of its maintainability and readability. In the same way, if you were to focus on the quantity of code shipped for annual performance reviews, should the engineers make the code longer for no good reason other than getting better reviews?
Focus on team productivity rather than individual productivity. Measuring individual contributions to a team is a daunting if not impossible task, given that many vital tasks can go unnoticed or unmeasured. Senior engineers tend to spend a lot of time supporting junior engineers, ending up pair programming with them while shipping next to no code at all. How do you go about measuring their contribution?
Ask your team what makes them unproductive. I remember joining a startup as the second software engineer. The founding team was used to work in the same office and didn't give it much thought. The first thing I did was to ask the CEO to go get a desk somewhere else, as it was impossible to work alongside him making sales calls all day long. Listen to your team.
Rather than measuring productivity, identify and measure productivity sinks.2 Many factors can negatively affect productivity: Technical debt, time spent in meetings, frequency of work interruptions, how long it takes to put code in production, workplace negative behavior, personal problems are good places to start. Also, remember to have a good hard look in the mirror and ask yourself if you’re part of those factors. We all have been in the way at times. Just don’t stay there.
Rather than picking a productivity metric, pick productivity indicators. It will help you understand the big picture and prevent you from giving more meaning to any single metric than it actually bares3. To do that effectively, the Goals-Signals-Metrics framework4 (used at Google, LinkedIn and the like) offers a solid framework. It acknowledges the complexity and unreliability of metrics, and is of great help to measure and track progress.
If you need a metric to keep tabs on someone because you have doubts about them, maybe what you need is not a metric. Maybe what you need is a better understanding of the situation, lots of conversations and closer management to get back on track... or else.
As a closing thought, here’s an excerpt from LinkedIn’s Developer Productivity and Happiness Framework5 :
“ If you aren’t sure how to measure something, it’s very likely that you haven’t defined what it is that you are measuring. This was the problem with ‘developer productivity’ measurements from the past–they didn’t define what ‘developer productivity’ actually meant, concretely, exactly, in the physical universe. They attempted to measure an abstract nothing, so they had no real metrics. This is why it is so important to understand and clarify your goals before you start to think about metrics. ”
P.S.: The productivity topic has been on the table more than once with founders at the companies I have worked with. I finally took the time to lay down a few of the ideas I strongly believe in. Building a healthy workplace while managing people and keeping track of progress is non-trivial, but possible.
Hope that helps.
No Single Metric Captures Productivity - Ciera Jaspan
Improving Engineering Productivity at Scale - Ciera Jaspan
What cannot be measured must still be managed - Nate Engle & Stéphane Hallegatte