The Luxury of Understanding
Once upon a time, telephone operators connected calls by plugging wires into the right sockets. Then came the machines. There were airline agents, too, booking tickets with disarming nonchalance - “No more seats in the economy? Maybe something will open up if I smile nicely?”
Today, we have reservation portals - moodless, humorless. There's only the code. Intermediaries are vanishing. Everything that can be automated will be automated. Don’t ask if – ask when.
And here comes the painful self-reflection... a programmer is just another intermediary. Caught between “I want an app” and “Here is your app” is a human who translates a machine-incomprehensible wish into code. Tester? A go-between for the code and the end user. Analyst? A go-between for the client and the programmer. The middle layers of the sandwich, are increasingly hard to justify, especially if the bread can already think.
Just listen to some AI enthusiasts, gushing left and right - who needs a developer when you can just tell an AI you want an app to order coffee, and it builds it for you? Exactly, who needs one? Once we get rid of all these specialists dealing with the core problem, all that remains is users and machines. A simple, binary world – zero extra layers. But then there’s one tiny, minuscule problem - no one will know how any of it works.
Modern systems are like automatic transmissions in cars without an instruction manual. You can drive as long as it works. When it breaks, you're in trouble. It’s even worse when you try to understand why it behaves the way it does. We're no longer dealing with a machine we can open up and examine the gears. We're dealing with a black box that simply says: trust me. And we do. Because, frankly, we have no choice.
And here comes the sacred but. While I agree that the elimination of intermediaries is an inevitable trend, I think we treat it like a law of nature. But it’s not that simple. It’s not some immutable law - it’s a design choice.
We could build comprehensible systems. We could make tools that not only work but also explain why they work. The problem is, no one wants that anymore. In the name of efficiency, productivity, and time-to-market, we pack everything into distributed platforms meant to function despite understanding - not because of it. Documentation? What for? A human-friendly interface? No one reads it anyway - the API is all that matters.
We're running out of the luxury of understanding. In a world where AI decides who gets a loan, who sees which ad, and who gets hired, understanding isn’t a luxury anymore. It’s the foundation of trust. If a machine decides and a human doesn’t understand - then who’s really in charge?
You might laugh at the idea that users should understand systems. Sure, I know – 99% of people don’t have the time or the inclination. But maybe that’s because, for decades, we’ve built systems that are, by design, incomprehensible. Maybe people have simply lost hope that anything can be understood. Maybe it’s time to start over – with an engineering culture that doesn’t treat simplicity and clarity as losses in efficiency but as the very conditions for it.
For now, though, we’re heading the other way. The code generated by language models looks like the work of a drunken genius. Tests? Sometimes they exist, sometimes not. And documentation? Sure – auto-generated and equally auto-useless. Paradoxically, we’re removing intermediaries, yet adding new layers of abstraction. We were promised a new quality of work, but what we get is a large-scale automation of old mistakes.
And so the intermediaries disappear, and machines will keep doing more and more. But if we leave no room for understanding, we’ll become passengers in an elevator with no idea where it’s going. Sure, we can take comfort in the fact that it’s a fast elevator. But me? I’d rather know who designed the cable.