Home

Just not required anymore

While sharing this take, I’ve had mixed feedback. Some say it is a bit too provocative: “the AI needs humans to know what to do, especially for large-scale things like architecture,” and some say, on the opposite side, that it is a bit too conservative, that we won’t even need humans overseeing products at all, or maybe even that the concept of a tech product will soon be outdated.

State of the Art ?

We discussed this recently with Cyril at amo. He was questioning the validity of the technical manifesto we were starting to write. This manifesto was supposed to assemble all the coding principles that were applied by amo’s Android team, some applied more largely at the company scale. I do believe that this manifesto has solid ideas on what can make a small-to-medium tech team succeed. In my view, it is the state of the art of software engineering.

The state of the art of the old world.

The old world

Is it still worth it to write it down? That’s not for certain. The new world of software engineering is entirely different from the old world.

In the old world, writing code is costly. Devs have to write code manually, on a keyboard. Move fingers on top of keys, press them one by one. Move around files and read things painfully, slowly. Even with perfect Vim gestures, this takes significant time. After each keystroke, look at the screen to see what the linter thinks, hover over that red squiggly line, correct the typo. Try to run, see that it doesn’t compile, read the error message, etc.

And all of this doesn’t even take into account the time it takes to know what to write. Learning the language(s), the framework(s), the codebase(s), the feature(s) to implement, or the bug(s) to solve. Building this knowledge doesn’t just take years; it takes a whole career, entire lifetimes spent mastering this knowledge. Junior developers have a long road before them (well, had).

In my view, that road was enviable. A road paved with difficulties to overcome, but also eureka moments. It’s fricking satisfying to finally get it.

In this old world, reading and understanding code was a big part of the work, let’s say 80%. The rest was about actually doing it, writing code. And because reading and understanding are so important, devs have created systems, patterns, and good practices to keep code readable and easy to understand. It’s all about getting the best possible ratio of writing to reading. Decades of knowledge have been accumulated to this end, in the form of books, articles, tools, frameworks, and paradigms. What it means to be a “good developer” has been a key question for all.

The new world

So what happens when none of this is required anymore? Because that’s today. Not “soon”. Today.

In the new world writing code is alsmost free and fast. Reading code directly makes very little sense: an AI can do it better and will have fewer blind spots. Writing code that is optimized for humans doesn’t make much sense anymore: we won’t read it, an AI will.

I have no certainty on what this means for software development overall, but the craft of it will disappear. All the knowledge that optimises humain coding will disappear.

It is just not required anymore.