4 ms·
The whole "code is a liability" mantra needs challenging IMO - it's too simplistic and "cargo culty". It's a misappropriation of a financial accounting term (wh
by harryf 4y ago
The whole "code is a liability" mantra needs challenging IMO - it's too simplistic and "cargo culty". It's a misappropriation of a financial accounting term (where Assets = Liabilities + Equity) and liability also carries with it all kinds of negative associations.
It has a value in making businesses aware that production code has an operational cost just to keep it "alive". And it's useful for tempering junior developers who haven't yet absorbed principles like KISS and YAGNI.
But it fails to factor in the relation between code and an organisations ability to make (or save) money from that code. For example the capabilities of your code may be a competitive edge for your business. 10 lines of code which uses CPU and memory inefficiently may end up being more expensive than 1000 lines of code which uses CPU and memory _efficiently_ and leads to lower infrastructure costs as usage grows.
As far as I'm aware the term goes back to 2007 - https://web.archive.org/web/20070420113817/http://blog.objectmentor.com/articles/2007/04/16/code-is-a-liability https://web.archive.org/web/20070420113817/http://blog.objec... - a time where businesses hadn't really understood how to manage software based businesses, so it was a useful concept to help management become more mature about how they think about software.
But these days knowledge of how to run software based businesses is far more widespread - we don't need to simplify our thinking to "code is a liability".
- camjohnson26 4y agoLiabilities aren’t negative in financial accounting, they’re leverage for the business that carry obligations, exactly like code.
- cmeacham98 4y agoLeverage is a combination of an asset and a liability. You gain assets in the short term in exchange for a long term liability. There is a difference between code and a liability. If a business could wave a magic wand and instantly remove all liabilities from the balance sheet, it would do so without question. They would not, however, do that for code (or the business would collapse).
- Floegipoky 4y agoWould you prefer "code is a depreciating asset"?
- aranchelk 4y agoSomething like: software is an amalgamation of the desirable capabilities it provides, which are assets, and the code itself which must be maintained and as such is a liability. Complex and convoluted code represents a greater liability. Part of your job as a commercial software engineer is to maximize the balance sheet of the projects you work on.