Software Inventory, Part 2
In part 1 of this blog, we looked at what software inventory is and why it's problematic for business. Basically, software inventory is investment we have made (salary, taxes, benefits, servers, overhead, etc.) for which we are not yet realizing return or benefit (which can only be achieved by release to production use). Inventory is a problem because it ties up capital and we risk the inventory becoming "obsolete"--the user needs change or the technology no longer provides the desired value--producing less return than expected
Let's look at how agile development and delivery affect software inventory, and even business return. The purpose of agile development is to increase business agility: the ability to quickly and nimbly take advantage of business opportunities as they arise. Or, as Craig Larman likes to say, "To turn on a dime for a dime."
As noted in the first paragraph, the only way to realize business benefit through software development is to get the software into production use. The development team being "done" produces nothing of value until it is used by the customer. Until then, it's still inventory.
Traditional development often takes years to deliver into production. Look at Figure 1. It shows a baseline return on investment for a one year release frequency.
Figure 1. The return on investment and software inventory for a one year release frequency.
The positive vertical axis represents benefit or return from the software; that is, income. The negative vertical axis represents the cost or investment to develop and deliver the software. For simplicity, these figures use "first order" analysis. In other words, straight lines. Of course, real investment and return would be look more complicated over time. Nevertheless, this simplification makes understanding the concepts easier. (You can certainly replace the straight-line return with a more realistic S-curve; I'll leave that as an exercise for the reader.)
Notice the red line, representing the investment, continues at a steady pace as the organization develops the software. At the one year point, the software is released and begins accruing return (the dashed yellow line). Development continues toward another release a year after that. Adding the return line and the investment line together (the solid yellow line) shows when the software return has paid for all the investment. When the solid yellow line crosses zero, we have achieved the break-even point; from that point onward, we have paid for all the development to date and can begin reaping net profit.
In Figure 1, all of the investment up to the first year is inventory. Let's say your organization invests $1 million per year in development and delivery of software (not a very big organization!). Your peak inventory is about $1 million. In the second year, the inventory is the same. After break-even, the investment toward the next release is still inventory even if the software is now profitable.
Let's say after reading this blog, you've begun adopting agile practices and worked hard to release software more frequently. Now you're able to release quarterly instead of annually.
Figure 2 adds the curves for quarterly releases. The dashed green line begins accruing return after only one quarter and keeps adding more return every quarterly release. Again, for simplicity we have shown each quarterly release delivering one quarter of the value of an annual release. In a mature agile organization, we would focus on the most valuable features first and continue discovering what is most valuable each release. In other words, a truly agile organization would deliver more than one-quarter of the value and would continue discovering higher value to deliver; taking advantage of business agility.
Figure 2. The return on vestment for quarterly releases showing faster break-even and dramatically lower software inventory.
The solid green line represents the sum of the return and the investment showing a break-even point much earlier than annual releases. That is, agile organizations reach profitability earlier!
Of course, the peak inventory for quarterly releases is one-fourth of the annual releases; in our case, $250,000. Thereby tying up much less capital that can be used for other things ... like other new products, perhaps? And of course, our risk of obsolescence is reduced by getting production software into the users hands faster.
Software inventory has an important impact on the financials of any organization developing software. Agile organizations release software more frequently, reduce their software inventory thereby freeing capital for other uses, and reduce the risk of users’ needs or technology expectations changing before the software generates the hoped-for returns.
Be agile, release more frequently!