April 30, 2011
Software is not an asset
Software is not an asset - I know everyone thinks it is, but its not; its a liability - its very existence generates cost. Every minute someone spends coping with it in order to adjust the behavior of hardware (which is an asset) is a net-credit on the balance sheet and a decrease in profitability. A necessary expense in many cases, but a cost nonetheless. Getting rid of it goes directly to the bottom line.
Software isn't a thing - its a form of communication. Just as no one would list meeting minutes, or recordings of the CEO's speech as company assets, software should be seen as stored communications (with hardware). Its value should be viewed in how it changes behavior; its very existence should be seen as creating risk, and its deletion as key to a healthy techno-ecosystem.
This is the essential argument behind why refactoring is worthwhile, and why its value isn't really comparable to writing code. Its also why its hard for non-programmers to see that value - because they think of programmer time as a credit, when really its can also be a debit.
My advice to managers (and everyone else): Want a sure fire way to add value to your organization? Reward and encourage deleting of unused code; fight for and insist that programmers be given time to refactor and otherwise eliminate unused code, and don't account for time spent doing so in the same way you do the creation of code.
My advice to programmers: Delete unused code at *every* opportunity and scale (function, class, file, project, organization); don't compare the effort to do so to writing code; work at all times to have your software feature-set reflect its actual, operational use.
Posted by wcaputo at April 30, 2011 1:40 PMRight on.
Posted by: Jim Arnold at May 1, 2011 6:38 AMAmen
Posted by: PandaWood at October 3, 2011 8:05 PMAlthough I entirely agree with ideas discussed about refactoring and removal of code, I do not think that this substantiates the claim that software is not an asset. An asset is:
"Anything tangible or intangible that is capable of being owned or controlled to produce value and that is held to have positive economic value is considered an asset"
Much of the software out there has a positive economic value either in productivity, revenue generation, cost reduction, and other types of value. I see removal of code and refactoring to a more desirable design for support changing business needs as essential to countering depreciation of software assets.
When we describe software only as a liability then we also provide reasoning to business that those who work on the software are part of a cost center. This is usually not the best way to operate any software development organization. The focus should be on optimizing the value existing and newly created software assets support.
Rather than only a liability, we can think of assets as what they are defined to be:
* Assets are equal to "equity" plus "liabilities."
The equity can still be there but if the liability is becoming so large that it outweighs the utility of the equity it brings then we have a problem. We should counteract this decay by Managing Software Debt effectively as we deliver to new understandings put into the communications of the software and hardware.
Chris Sterling
blog: http://www.gettingagile.com
Agree on the value of refactoring. but was shocked when i first came across this article and read its title.
Message i got at the end is that is software has code that needs refactoring, thats liability. otherwise it adds value to organisation.
Why Finding a Good Programmer isn't Enough (December 9, 2009)
Interfaces with small i's (November 21, 2009)
Site Comments (November 2, 2009)
The Death of Agile (November 2, 2009)
Gifts Instead of Certs (October 26, 2009)
Continuation Passing Style (June 16, 2009)
Closures and Sequence Points (June 16, 2009)
Is This Thing Still On? (June 14, 2009)
Business and IT converging? (July 15, 2006)
(All Entries...)