Author: Jonathan Alexander
Aimed at: Anyone who wants to measure programmer performance objectively
Pros: Readable and reasonably convincing
Cons: Based on distilled experience of a single person
Reviewed by: Mike James
This is a good book but only if you don't mistake its subject matter. This is about finding "objective" measures of programmers - not of programming. That is, the title is CODERmetrics and not CODEmetrics. The author tries to emphasize that the activity isn't about rating programmers, it's more about figuring out what they are good at and how best to make use of them, but you still can't help but see it as such.
The book starts of with a section of three chapters on the basic idea of making measurements and tells a few anecdotes about how things work out in practice. There are a lot of sports statistics analogies, and this isn't unreasonable as the author sees the task of working with programs as being similar to managing a sports team with the objective of winning. We have topics such as team dynamics, what questions metrics can answer, and how to get the data.
The second part of the book takes us through a list of metrics that the author proposes measure what you are interested in - skill metrics, response metrics and value metrics. These are discussed in turn and made to sound reasonable, but there is no attempt to analyse or demonstrate their soundness. They just seem reasonable or they don't. Most of them are derived from the sort of statistics gathered in sports - wins, win rate, saves, tackles etc.
The final part of the book examines the processes you need to have in place to make the metric approach work. In many ways you should skim read this part of the book first to get an overall idea of how things might be made to work.
If you can't stand sports analogies then keep away from this book because there are a lot of them. Overall, the writing style is easy to read and the author works hard to make everything seem reasonable and asks you to consider alternatives and modifications.
As I said earlier it isn't unreasonable to compare the task of managing a team of programmers with that of managing a sports team and the crossover between the jargon isn't too misleading. What the book highlights is that the whole process isn't too exact, but it could be helped by keeping both code and coder metrics.
At the end of the day, however, you are relying on the distilled experience of just the author and trust that the sports analogy is the right one for deriving coder metrics. If you take a look at the list of references at the end of the book then you realize how thin on the ground other work in the area is. There are sports statistics books, some idiosyncratic programming titles, and the classic Mythical Man Month by Fred Brooks.
Overall I found myself agreeing with most of what was presented, but I'm not at all sure about implementing some of the metrics as the whole idea of evaluation is greeted by programmers with some hostility. Perhaps we need to mix metrics with gamification - but that is a much bigger unexplored field.
If you want to consider the idea of introducing coder metrics modeled on sports statistics into your project management then this a good, and possibly the only, place to start. I enjoyed reading it.