Do away with architectural models. What we need to see is the essence of architecture, which is something we realise in software: a mirror of the enterprise.
The idea is not new. It has always been surprising (and, to be honest, somewhat frustrating) that is hasn’t been picked up as I thought it would. And should.
The book by David Gelernter: Mirror Worlds: or the Day Software Puts the Universe in a Shoebox…How It Will Happen and What It Will Mean (1993), summed it up so nicely. It succeeded (at least for me) in evoking an powerful image of software replicas of “real” things (like colleges or libraries), with the help of which so much more was possible. It aligned so nicely with my ideas about the computer revolution as a logical next step in the unfolding of our unique human faculty of language.
There is always the same conceptual interpretation of models, derived from mathematical models and such, that I find detrimental to the successful application of the power of the modern computer. Models are seen as “simplifications” of the “real” world. They show aspects or perspectives. Architects talk about viewpoints. You have different models for requirements, risks, structure, testing, etc. It is actually not much different from financial models, even in the personal finance domain: you tend to think your bookkeeping is a model just like the others, while the “real” world is something else, somewhere else. And, well, it is real.
Within the domain of finance this may be easier to argue. We are all starting to realise that money is not “real” at all! It is numbers. Before computers they were numbers in books. Now they are numbers in computers. Money does not “exist” at all, it is all virtual. So the step from using a bookkeeping system that is a “model” of your financial situation to a bookkeeping system that you can see as a thing in itself, no less “real” than what you originally thought as the “real” world, is not so big after all. This is a system living inside computers, as real as anything you can point to in the “real” world. The mental change that will enable you to exploit the power of the computer revolution to the max is just that: to see the system living inside software as an extension, a replica, a mirror of the “real” world. And a lot of tooling to keep both in sync.
Of course the problem is that we do not build our systems that way. Our systems are handicapped by a cognitive error.
Any architecture that confines itself to a bunch of matrices, lists, diagrams and documents, is bound to fall short on “meaning”. It only touches the surface of it. It does not extend our faculty of language but hinders it. It does not offer an extension of intelligence or communication, but creates a panoply of artefacts that everyone gets lost in.
Language was a fundamental invention that completely transformed the species that invented it. That species of mammal subsequently enhanced that effect (of transformation) with the inventions of writing and the printing press. Now the modern computer is offering us the gift of another quantum leap in transformation. And we keep clinging to the past, to outdated modes of working. It is about automation, not about transformation. We do what we always did, only now with computers. We fail to see the essence of our human faculty of language which was to create an inner world of meaning, a reflection of the outer world of form. And then to start playing with that reflection and in advance of doing it in the world of form we could experiment in the world of thought.
Einstein did this. His breakthroughs in scientific models of our universe came from exactly that: thought experiments. Experiments that did not need extensive equipment. Only the imaginative mind.
Only now we can extend and enhance that mind, that reflective power of symbolic thought, infinitely.
Architecture can be as simple as that: a reflection, a mirror of the real world. To play with. And with that it will help us create systems that are exponentially more powerful. All it requires is a mental reorientation.