I have been thinking about software architecture and system architecture most of my life, since I left BASIC on 8bit computers. I’m 50+ and for the last 40 years software architecture was with me, from Modula-2 modules, to client/server systems, to UML diagrams, layered architecture, onions and hexagons. Now it looks like software architecture becomes irrelevant.
There are big changes coming to software architecture and architects. AI will change everything. And it will blow away software architecture. Don’t believe me? Let me make an argument.
People think code architecture has always been with us, and therefor architecture is a natural given thing. Architecture always was and always will be, with one example of software architecture being layers.
Layered architecture and other architecture styles are mainly influenced by what people can understand and comprehend - and feel they can maintain. Architecture is a way to tame complexity and keep it from exploding.
Layered architecture makes it difficult for AIs to locally change code, as changes then always need (global) API changes that propagate through the code base and prevent changes from being local - and make it difficult cooperating with an AI.
AIs do not need architecture to make sense of code. They don’t need architecture for changes and to add code, in order to keep code understandable and “maintainable”.
Prescribed and planned architecture is a form of control of the shape of the code. My Theory of Control says that control limits AIs abilities and usefulness. Reducing control gets you more gains, so there is a driver to remove architecture.
It is not clear yet in what form and structure code needs to be that AIs can keep it maintainable for them. Probably the only limit is the context window of the AI.
Oneshotting applications does not have this limitation, as it does not need to read and understand code but only read and understand requirements (screenshots, texts, diagrams, API descriptions, database schemas).
AI is not software. It is running on hardware, but it’s not software in the sense that someone plans it and writes commands for the computer to execute. It’s more like Prolog, where we have some infrastructure, training (rules in Prolog, weights in AI) and then tell the system what we want.
Because AI is not software, everything we learned about software, and all the ways we organize software and software development are going to change. Just like the internet changed everything. \
The more changes you have seen in the past, the easier it is for you to belief that everything will change. If everything you have seen is the current state of software engineering, agile and cloud and all, it’s hard to imagine that things were very different. And will be very different again.
Taken together, architecture is going to go away. Prepare for it to survive.