4 ms·
You’re describing people who believe that code is an asset, when the reality is that it’s a liability: zero lines of code would be ideal if you could get away w
by tomstuart 4y ago
You’re describing people who believe that code is an asset, when the reality is that it’s a liability: zero lines of code would be ideal if you could get away with it, but you can’t, so you have to compromise and limit that liability as much as possible by minimising the amount of code and relentlessly keeping it simple, easy to read, etc. Perhaps they’d be more sympathetic to your perspective if you framed it that way?
- earnesti 4y agoThough code is an asset as well... Just not as valuable as people might think. Code is not a liability if it is not used, the liabilities come from production usage.
- worldsayshi 4y agoCode is only an asset to the extent it fulfills a need that can't be otherwise fulfilled.
- tomstuart 4y agoI agree with what you mean, but I’d nitpick and say it’s not the code itself that’s the asset, but rather the behaviour of that code when executed. If you could refactor and get the same behaviour with less code (whatever that means), that’d be a net win, right? So the quantity of code is making a negative contribution.
- chriswarbo 4y agoI consider code to be a liability, and Git history to be an asset. If something's in version control, there's no need to keep unused cruft around "just in case" it's useful in the future.
- lordnacho 4y agoYeah but then they just argue with you about whether it's simple. There's a certain kind of person who loves taking complex things and calling them "simple".
- tomstuart 4y agoTrue enough. I think when we say “simple” we often really mean “cheap” (to maintain), so maybe it’s better to cut to the chase and just say that instead.
- Aeolun 4y agoThey’ll say it’s simpler (and better) if everything is a microservice.
- ismailmaj 4y agoIt might be that they use simple in relative terms. Linux could be considered simple given the problem it's trying to solve and yaml complex.
- dathinab 4y agoit's more often that they don't understand what simple means for most people For example they might think that in a mixed-paradigmatic language the "pure functional approach" is more simple even if it introduces more indirection and requires a deep understanding of various more advanced language constructs(*). Or that the simplest explanation of monad is the one based on PL-theory instead of an explanation based on terms people without an scientific-PL background are more familiar with. Or people which think that writing down things in predicate logic is just way simpler then writing them down in English (well, I guess thats somewhat me). None of the "I find this is simpler" points I mentioned are bad, but not realizing/accepting that what is simpler for you isn't simpler for others is the problem.
- Floegipoky 4y agoRich Hickey has an excellent talk "Simple Made Easy". He points out that "simple" and "complex" describe objective properties. The terms are often (incorrectly) used interchangeably with "easy" and "hard", which are subjective.
- junon 4y agoI have explained security, maintenance, cost, etc. using pretty much these exact words. It's really hit or miss when it comes to having any impact.
- goodpoint 4y agoUnfortunately only 1 developer in 20 thinks like this.
- harryf 4y agoThe 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"?
- DesiLurker 4y agowhat a load of crap, you mean linux kernel is a liability. this is typical thinking of folks who are removed from technical work & just consider development as 'cost'. Code & development history is an asset because it stores the time-series sum total of development decisions to get to this point. keeping it readable I can understand but pointlessly minimizing it without the bigger understanding of what it serves because .. 'hey it works' is trivializing it a bit.