Software Engineering At Google
Chapter #7 - Measuring Engineering Productivity (3 of 3)
Software Engineering at Google Chapter #7 - Measuring Engineering Productivity (3 of 3)
The five components of engineer productivity:
Attention from Engineers
- State of flow, context switching, and app notifications
Tempo and Velocity
- Task completion and built & deploy times
- With their tools, the work they are doing or are they burned out.
Quality of Code
- Do test cases prevent regressions and is risk and change mitigated by the architecture?
- Is there unnecessary complexity, how complex are the problems being solved, and how much cognitive load is required to complete a given task
Not all questions involve all five areas
Many academic papers have proposed proxies to measure code quality but none have truly captured it
Consider if the proxy measurement will be a poor one. If so, don’t use it.
Quantitative metrics provide power and scale to decisions but lack context and narrative such as why the engineer choose the workflow or tools they used
Recall Bias: People are more likely to recall events that were particularly frustrating or interesting
Recency Bias: People are biased towards more recent memories
Sampling Bias: A survey only records the results of people who take it, thus you are missing data from everyone who DOESN’T take it. You’re only getting part of the story
If productivity metrics are used for performance reviews, engineers will quickly game the system, thus making the measurements and metrics irrelevant
Let go of the idea of measuring individuals and instead measure aggregate effects
At the end of the process create a summary report with recommendations for improvement
Frequently the recommendations are tool-oriented because often process-oriented changes cannot occur without a tool-based foundation
Before measuring, ask if the result will be actionable weather it be a positive or negative result
Be aware that improving one part may decrease another part. Always trade-offs.
Thank you for your time and attention.
Apply what you've learned here.
Enjoy it all.
© 2021 Josh Turgasen
All product names, logos, and trademarks are property of their respective owners