Saturday, June 13, 2009
Kenny Rogers' Guide to Software Process Improvement
Process improvement is a tricky mistress. Usually it’s sufficient to feel that something can be done better, but often, especially for larger organizations or folks looking for higher CMMI rankings, it’s necessary to quantify improvements in terms of measurable effects. There is a cost to process improvement; every hour spent beefing up process is an hour less spent doing "real" work. And if you optimize out the wrong processes it could seriously damper development. The key is to determine the most cost-effective changes and only execute those process improvements. Return on investment analysis is one way to understand cost-effectiveness (PDF), but I've found this technique conceptually difficult to apply to software. How much is quality worth? How do you put a dollar amount on developer happiness? What’s a line of code worth to you? It’s enough to make your head spin, but a good friend of mine, Kenny, once gave me some great advice that helps me keep things straight.