Thursday, August 14, 2008

Software Metric Illusionist

Because Software Development ceased long ago to be an art, a science, or something else of that sort it is widely considered to be some engineering task. As we probably know everybody from a pizza delivery guy to a garbage collector fulfill engineering tasks -- the good thing about engineering is you can measure. How many garbage cans did get picked up? how many pizzas delivered?

A wise man said "anything that can be measured can be improved". I am a long proponent of bottom line. It is conceivable that if you deliver more pizza in a shorter period of time you have more money; it is also conceivable that if you spend more time with customers they might order again -- I don't know and it might be different in different markets. Fortunately most people are smart and can figure out what makes them more money.

Because people want to be paid regardless of their impact on the bottom line (you can write perfect software but your marketing sucks) certain metrics got invented to decouple the task of engineering software from the bottom line and allow certain improvements. An early metric was lines of codes which obviously just lead to bloated code.

Fast forward to today where most metrics are quality oriented automatically generated ones like the likelihood of having a bug based on heuristics instead of (a more meaningful) how many bugs QA or the customer actually found and so on. The other big component is hours spent on some tasks (nowerdays called velocity).

But can software be reallyd eveloped in such a context? A better algorithm often is 200 times faster. The difference between a good programmer and a bad one is at least 1:20 -- does this sound like your electrician or more like an artist? Well, even in the art world you have extraordinary artists who can't be measured and artists who copy other artists work in big factories. So it all boils down to if you want an original painting in your house or some copy. When you look around successful and rich people buy originals and not so successful and rich people buy copes.

The Software Metric Illusionist tries to convince you that turning your software department into a collection of copy-and-paste technicians will not only save you money but also make your company better. It is up to you to decide if you need an also-run software department or people whoc can take it up with the Google's of the world. Now watch out the double illusion: if you need an also ran why don't you just outsource the whole department? That would be bad for the illusionist so he convinces you despite having an also-run software department it is core enough to your business to keep it in house.

That contradicts GE's metric -- if you can be number one or two get out of this business.
So metrics are all smoke and mirrors? Or things draftet by clever illusionists to fill their own pockets?

No comments: