Monday, October 30, 2006 

Software and Value

The software engineering community is slowly building an economic theory for software. Early attempts (like Bohem's work) focused mostly on predicting cost. This could be fine when your desire is control. It is not enough when your aim is efficiency.
We definitely lack a good economic theory for software value. Even worse, we seriously lack even a barebone ability to estimate software value. It is not uncommon to see grizzled marketing guys asking for aggressive estimation for a neverending list of features. Ask the value of each feature, and you'll get a blank stare. The most common answer I get is "I can give you priorities" (which is definitely not the same thing). Sometimes I get a reasonable answer, like "we have 200 sales depending on having that feature". This is a good starting point to quantify value. Note that I'm mostly concerned with software competing in the marketplace. Internal, corporate development has different dynamics.
For a long time, the entire topic of software value has been so neglected that when you read about earned value in literature, what they are usually calculating is incurred cost, which is ridiculous to say the least.
Some people enjoy the sense of freedom of not having any reasonable business model behind, so they can just try whatever seems reasonable and not be held accountable. Still, going by the seat of your pants is not that great in the long run :-)). In this sense, I've appreciated a recent work from Gio Wiederhold ("What is your software worth?", Communications of the ACM, September 2006). Although the model he proposes is mostly useful for long-term planning of pricing, money allocation, and phase-out, and although there are obvious simplification in the model, it's definitely a step in the good direction. If you don't have access to CACM, there is a longer version available online. Gio is a great guy, so the spreadsheet he uses throughout the paper is also available for free on the same page.
For a few small-scale ideas on value, see also an old post of mine.