We’ve talked to hundreds of software engineering leaders and asked them about the issues they faced running both large and small teams. What they reported broke down into six categories.
Three of the categories related to issues with completing software engineering work and the characteristics of the completed work:
1. The pace that work was completed (Speed)
2. The amount of work that was completed (Volume)
3. The usefulness and usability of the completed work (Quality)
Two categories related to issues with software engineering personnel:
4. The performance and impact of individual software engineers
5. The ”work health” and career growth of the software engineers
The final category related to issues with the financials:
6. The cost of developing and maintaining software
And it’s likely that if we asked you the same question, your issues would fall somewhere in those categories as well.
There is however one critical aspect that we noticed was missing from the responses: a focus on ensuring the delivery of value.
As engineering leaders we can’t stay so laser focused on the “big 3” issues with software development (speed, volume and quality) that we lose sight of the fact that the software we build must deliver on its purpose. A lot of that depends on factors we don’t control, like research, design, implementation, training, etc. But software that was built on-time, on-budget, and with no major bugs – but also doesn’t solve a customer or business problem – helps no one.
Optimizing software delivery is incredibly important, but even greater than that is ensuring the delivery of customer and business value.