Software Inventory, Part 1
How Much Software Inventory Do You Have?
When I ask this question of people in IT departments, even among senior managers and finance people, I get a variety of responses, such as:
"None. We don't manufacture stuff."
"We have a few servers in a data farm...is that what you mean?"
Or just a blank stare.
But then I ask if anyone has worked in a manufacturing organization and, usually, someone has. Then I ask what is inventory in a factory? And we explore physical inventory:
- Raw materials
- Partially finished goods (materials plus labor)
- Finished goods in a warehouse
In other words, inventory is any investment we have made in a product before we get any return or benefit. In IT, the only way to get the return is for the software to be in production use. The development team being "done" and the software sitting on the virtual shelf, is still just finished goods providing no value.
"Now, how much software inventory do you have?" And the lights go on! Often, back-of-the-envelope estimates are 10's to 100's of millions of dollars of software inventory.
In a factory, you can see and touch the inventory. In an IT organization, the inventory is invisible.
But, so what? What difference does a lot of inventory make?
First of all, inventory ties up capital. That is, we have to spend money first (in IT, primarily on salaries, taxes, benefits and overhead) and then wait for any return or benefit. The return might be increased sales or reduced cost of operations. Either way, the opportunity for higher profitability. Until we start realizing the return, that money we spent on inventory cannot be spent on other things...like research, marketing, training, equipment, new products, or enhancements to existing products.
More importantly, inventory "degrades" over time. In a factory, it can literally degrade; metal corrodes, foodstuffs perish. Not only can inventory degrade physically, it can degrade in value; customers may not want the product later or it may be overshadowed by competition or obsolescence.
In IT, it's primarily customer need and technology obsolescence we need to worry about. If we wait too long to put the software into production use, it may not produce the anticipated benefit that justified the investment in the first place.
The Scaled Agile Framework (SAFe) advocates so-called "architectural runway"; creating infrastructure and architectural implementation before it's needed in a Scrum Sprint. Clearly, SAFe creators have never been a pilot. As a pilot, I want as much runway as I can possibly get! I recommend we think of advance infrastructure and architectural implementation as "architectural inventory." Too much architecture inventory will be a problem. We should strive to develop the smallest responsible architectural inventory possible.
Too much software inventory can be bad for business. In Part 2, we'll look at how agile practices help manage inventory.