The cost of convenience

At this point an organization will have to choose between rewriting or refactoring. The problem is that such work involves far more than just typing code: it requires recovering lost requirements, logic and context.

This is the cost of cognitive leakage we need to repay. We spend time repairing logic that broke as a result of our comfort with an abstracted (some might say superficial) level of understanding; we have to rebuild test safety nets that atrophied due to over-encapsulation. This challenging process is the necessary act of repairing cognitive leakage.

This isn’t to say abstractions have no place in our work. That would be ridiculous and wrong. Indeed, all software as we know it today operates at some level of abstraction. Take high-level programming languages, for example: C++ and Java abstracted hardware but still require us to critically engage with the technical challenges we're faced with. Indeed, in some scenarios — small-scale systems, prototypes — even low code and AI assistance can be valuable. 

However, I would suggest there’s a qualitative difference between high-level languages and no code and AI approaches. No code and AI allows us to bypass critical engagement completely. They simulate work, tricking us that we're solving problems when the problems remain untouched beneath the attractive sheen of whatever we've delivered.

In turn, this leads to a phenomena I describe as software inflation and zombie systems. When complexity hits, developers either have to reclaim cognitive sovereignty or risk the system moving into a kind of living death, with problems that they can’t decompose.

In short, convenience always has a cost. What’s more, this cost is particularly heavy when applied to the strategic core. High business complexity, long lifecycles and cross-team collaboration make the leakiness of abstractions not only more problematic but also more likely.

Fortunately there are already things we can do to guard against this, starting with good governance. When using AI, for example, we can enforce mandatory code reviews to ensure cognitive synchronization; if using low-code, we can ensure the generated logic remains within the range of our cognitive control.

Cognitive sovereignty is a weapon: Use it

Every time you copy and paste code and every time you choose to use a black box tool, ask yourself one question: what’s the cost of convenience? This isn’t to say you should be dogmatic — far from it; it might well be the case that the cost of convenience is perfectly reasonable.

But it won’t always be. And however much product marketers try to convince you that the one simple trick they’re selling will solve your problem with no downsides, debt or leakage, remember there is always some cost. That’s why maintaining cognitive sovereignty is essential: in a highly abstracted world and one of increasing AI-assistance it’s a strength, not an inflexible weakness. 

Ultimately, it’s a critical weapon that can help you and your colleagues fight system decay and sustain product vitality.