Michael Feathers wonders how to go beyond technical debt. I have been wondering about this for some time, and I think the answer is to account for code as a liability, not an asset.
The functionality that the code has, the value it delivers is an asset, but the code itself is a liability. This easily explains how refactoring and removing code add value, as long as functionality is preserved.
Using this argument, a car is an asset because of the functionality it delivers, yet it is also a liability. Using financial terms, a car, a house, a computer, and computer code, are all assets with liabilities attached. They all require an initial investment, and maintenance and on-going attention to keep them working.
ReplyDeleteInteresting point.
ReplyDeleteAll the more reason why languages that produce functionality with less code are a good idea.
Remember 4GL's anyone ?
This is in line with James Shore's Approximate Measure of Technical Debt...# of lines of code.
ReplyDelete