Lines Of Code - Dispelling The Myths
callingshotgun.net
callingshotgun.net
The best metric I have for you is hours of work per dollar of value to the customer. Paul G makes an observation in one of his many essays about having customers call up with problems and being able to fix the problem immediately -- while the customer was on the phone. No muss, no fuss. That's direct value to the end-user in a minimal amount of time. That's what you want.
Somehow we always get into these "terseness of language" discussions. It reminds me of the old game show "Name that tune" in which contestants made wagers on how few notes they needed to name a popular song. Programmers are like that -- "I can write an entire TCP stack in just 3 lines of code!"
Something about this seems to miss the point, but what do I know? At any one point when programming on a modern operating system, I'm responsible for hundreds of thousands if not millions of lines of code. Hopefully 99.999% of that I never touch. But guess what? Those three-line-code guys are responsible for just as much, it's all just a matter of how you want to count things.
So focus on time-to-value, not lines of code. You can add-in time-to-unique-value, which is the time it takes you to provide unique value to your customers. This is a little more interesting, but not all software projects have to be unique. In fact, some guy right now is probably writing the next million-dollar app and the code base probably is something like printf("Hello World");