Yeah, but people-based metrics are <i>subjective</i>, even if they have hard numbers stuck in there. That's the problem.<p>The mistake here is viewing the entire system as simple, instead of emergent. Emergent systems are not usefully measured by simplistic top-down metrics.<p>You have one piece of code, yep, you set up some measurements and have fun with it. You have a thousand programs, running across a hundred different platforms? <i>The idea that you can determine cause and effect by a simple top-down metric is a problem in itself</i>. Yes, you may be able to determine that overall the system is not working as you would like it to be, and you may certainly decide that some kind of action is required, but that gives you no clue whatsoever what the required changes would be! In fact, by looking from the top-down in an aggregate fashion, it's even arguable whether or not your metric is the one to be optimized!<p>That's the difference between complex systems and simple systems. Stop over-simplifying. We all might be able to agree that some aggregate statistic is out of whack. Maybe. But that's a freaking long way from actually knowing anything about the problem or what to start doing to address it. Instead, we wrap it all up like that answer is straightforward, wave our arms around, get all emotional, and demand action. This is not a recipe for success, whether in complex systems of programs or complex systems of people.