2 ms·
I use the term liability because the only code that has zero maintenance cost is code that doesn't exist. If you have a viable solution to a problem that doesn
by ljm 3y ago
I use the term liability because the only code that has zero maintenance cost is code that doesn't exist.
If you have a viable solution to a problem that doesn't require code, then you still get the value from that solution without the burden of maintenance.
Classic case in point: your in-house infra platform on K8S is an incredible liability no matter how much value it adds, because it's a means to an end for scaling and serving your product. Or a cost-centre, in other terms. You could just as well host on a collection of SaaS and offload a large portion of the maintenance cost onto the provider.
Rather than writing code that is easy to maintain (read: easy to keep), it's optimal to write code that is easy to discard. The latter is a lot more challenging than piling on architecture and in some sense it's akin to having illiquid code (stuff you can't get rid of very easily), and liquid code (stuff you can get rid of easily).
- smallnamespace 3y agoI'm objecting to the use of the term 'liability' because in accounting/finance in particular, a liability is strongly implied to be a net negative once you weigh all the benefits and costs together. Here you're saying code is a liability because it has costs. But a car or a house have costs, yet they're almost always classified as assets, because the benefits outweigh the costs. So you're left with a few choices: 1. Accept that code isn't always a liability, at least according to the dictionary definition of the word 2. Argue your way somehow to code nearly always being a net cost (seems unlikely, otherwise why write code?). 3. Redefine the meaning liability for this particular application I think 1) is the most reasonable choice here.