As promised, I am continuing the discussion of software value.
In the previous posting, I pointed out that software has created immense economic value, but organizations do not measure the value of the software they create.
In this posting, I raise the question, “If one were to measure the value of software, what would be the unit of measurement?” I have repeatedly seen teams try to prioritize software features (or epics or applications) with a value score without agreeing on a unit. They go through brainstorming exercises to prioritize the features by value to agree on the order of delivery. Generally in these meetings, the loudest or more insistent voice prevails since there is no real basis for setting the score. To establish a robust criterion for prioritization is a choice of unit and a way to measure software in terms of that unit. Only then, one can apply an objective criteria for prioritizing the work.
The question then is “what is the unit to use?”
Here is a chain of reasoning: Suppose you were to buy instead of build the software, what you pay? You would reason about the monetary value of the benefits over time accruing over time from the software and the total cost of ownership. You might discount the future benefits to get to a net present value. The difference between the discounted benefits and costs would be a price you might be willing to pay, of course measured in money. In short, you would pay money. This price is a good surrogate for the value of the software to the business.
To reason about the benefits, you would start by listing them. The benefits might include cost savings such as labor avoidance, the revenue from the sale of an app, the revenue from the delivery of a service, or attracting additional customers resulting in business growth. In each case the benefit is money or easily translatable to money. So in these cases, the unit of value is money. I discuss a similar approach in more detail in this CACM article.
This reasoning should flow down to features. Knowing the monetary value of shipping a feature provide a firmer basis than value score for backlog prioritization methods like Weighed Shortest Job First (WSJF).
A key benefit of assigning a monetary value to the software is that the conversation with the business is much simpler. The value is not vague as somehow supporting some strategy or something, the value is described in monetary terms that even a CFO would understand.
So, is the unit of value for software money? The answer is often, but not always. Sometimes benefit of the software is to deliver some public service such as public safety or health. In a military context, the software could enhance force protection. In these cases, the units of value might be lives saved or reduction of infections.
One can argue that one can use monetary units of value for all software, but that would entail. placing a dollar value on human lives. That can and is often done, but unpalatable to many and may not be necessary for managing priorities.
So the net is that the unit of measure of value for most software is money. On occasion, the unit of value is something like lives saved to which one might not want to assign a monetary value.
Actually assigning monetary value to the software is hard. If it were easy, it would be common practice. I argue although it is hard,it is not impossible. I will address how in a later posting