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
    • Satisfaction - 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?
    • Intellectual Complexity - Is there unnecessary complexity, how complex are the problems being solved, and how much cognitive load is required to complete a given task
    • NOTE: 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.