Monday, July 27, 2009

Simple Software Cost Measurement

This was written at the same time as Averse to Change.

I’ve been jealous of mechanical or electrical engineers who can point at the direct material cost of their design, that concrete dollar amount, and say, that’s how much it costs. They gloat about redesigns that result in the same functionality but with a reduction in direct material cost. They rarely even have to talk about the cost in engineering time that it took to get to that cost reduction. Once I realized what the true value of software was, I realized that we too could use a simple measure like DM cost: lines of code. Not like the horribly misguided productivity measurements of old where more lines of code was better. When you realize that the ability to quickly make changes is priority number one, you see that less lines of code is better. I like this because it’s a lot like DM cost, where it’s easy to count and less is more, and even just a little less is usually worth the effort. In the physical world, that small reduction in DM cost is multiplied by volume. If a part is purchased in large amounts, a small reduction in cost equals a large savings. In software, even saving a few less lines of code can be multiplied by how many times the design may need to be changed and how much easier it will be to make those changes. A small reduction in lines of code equals a big reduction in total cost.

No comments: