Monday, June 28, 2021

Productivity in Software Engineering

Here are my key takeaways from the 2019 book Rethinking Productivity in Software Engineering (edited by Caitlin Sadowski and Thomas Zimmermann). 


This open access book collects the wisdom of the 2017 "Dagstuhl" seminar on productivity in software engineering, a meeting of community leaders, who came together with the goal of rethinking traditional definitions and measures of productivity.

The results of their work includes chapters covering definitions and core concepts related to productivity, guidelines for measuring productivity in specific contexts, best practices and pitfalls, and theories and open questions on productivity. 

Key Findings

  • There is no single metric to measure software development productivity
    and attempting to find one is counterproductive
  • Many productivity factors (technical, social, cultural) need to be considered (> Context)
    • Relationship between developer job satisfaction and productivity
  • Different stakeholders may have varied goals and interpretations of any sort of productivity measurement (> Alignment)
  • Individual developers, teams, organizations and market have different perceptions of productivity (> Level)
    • Productivity goals may be in tension across these different groups
    • Developers do not like metrics focused on identifying the productivity of individual engineers
  • Productivity perceptions vary greatly according to the period of time that is considered (> Time)
What to do instead: 
  • Design a set of metrics tailored for answering a specific goal
  • Invest in finding and growing managers who can observe productivity 


BTW, the myth of the "10x programmer" also gets debunked.

Most of the key points outlined above are covered in Chapter 2 No Single Metric Captures Productivity (Ciera Jaspan, Caitlin Sadowski; Google) which quotes Bill Gates:

“Measuring software productivity by lines of code is like measuring progress on an airplane by how much it weighs.”


A variety of alternative metrics are discussed in my next blog article

No comments:

Post a Comment