Software Development Metrics

The book on Amazon

There are plenty of books out there that describe metrics designed to function with a published framework or method, and that are useful when and if that framework or method is used exactly as intended by its creators. There are plenty of books that explain how to use statistical methods to analyze historical trends in software delivery performance. There are also plenty of books that describe estimation and planning methods that depend on knowing both the position and momentum of every particle in the universe.

Yes, there’s plenty of help available if you need to measure perfectly elastic spherical horses in a vacuum.

But what about people who have direct responsibility for delivery? How can they steer work in progress in a practical way given unique organizational constraints? How can they achieve predictable planning based on empiricism when people don’t do what their formal process expects them to do? How can they measure the impact of process improvement efforts when most metrics “break” as soon as one changes the process to try and improve it?

Metrics that can only work when a given framework or method is applied puristically are fine when it’s possible to apply a method puristically, but not so much in real organizations. Statistical methods are useful when you have time to collect and analyze data, but not so much when you have business-driven (read: unrealistic) deadlines and you must make decisions before the decisions make you, based on incomplete information. Empirically-based forecasting is desirable, but which empirical observations should you use when the realities of your organization warp your standard process beyond recognition, and the standard metrics for that process don’t help?

If you’re in that situation, then this book is meant for you. It proposes there are three key characteristics of how software gets built and delivered that are relevant to the selection of practical metrics. One is the development approach: traditional or adaptive. The second is the process model: linear, iterative, time-boxed, or continuous flow. The third is the delivery mode: discrete projects or ongoing support.

The book describes the salient characteristics of these factors so that you can recognize what’s going on regardless of buzzwords, belief, and hope. Then it describes specific metrics that can help you steer work in progress and track the effects of improvement efforts, given the particulars of how work gets done in your context.