Imagine waking up in the morning and finding out that a groundbreaking breakthrough has occurred in the construction industry. Now, millions of cheap and incredibly fast robots can create various materials literally from thin air, using almost no energy, and they can repair themselves. But that’s not all: if there are clear blueprints, the robots will build a building according to them without any human intervention, and the cost of this work will be negligible.
One can imagine how this will transform the construction industry, but what changes will occur at a higher level? How will architects and designers behave when the cost of construction becomes negligible? Today, expensive construction is necessarily preceded by the creation and thorough testing of physical and computer models. Will we bother to do this if construction is practically free? What’s the problem if a building collapses? We’ll find out what went wrong, and our miracle robots will build us a new one.
Other consequences are also possible. With the passage of time, unfinished building projects will evolve as the building is constructed and reconstructed repeatedly, and designers make improvements with the desired final goal in mind. An outside observer will find it difficult to distinguish an unfinished building project from a completed structure.
Our ability to predict work timelines will fade away. The cost of construction is easier to calculate than the cost of design: we roughly know how much it costs to install a beam and how many beams we need. As the proportion of predictable tasks approaches zero, the predominant factor will become the unpredictable design time. Results are obtained faster, but work planning becomes unreliable.
Of course, competition will remain a driving factor. When the cost of construction is negligible, the advantage in the market will go to the company that can quickly execute the design. Thus, the primary interest of engineering firms will become accelerated design. Inevitably, someone without a deep understanding of the project will see an unverified option, recognize the advantages of entering the market ahead of competitors, and say, “Okay, good enough.”
Some projects related to people’s lives and health will be developed more thoroughly, but in many cases, buyers get used to enduring the inconveniences caused by incomplete design. After all, companies can always send their miracle robots to “patch up” the defective buildings or cars they sold. All this leads us to an unexpected conclusion: our only starting point was a sharp decrease in construction costs, and as a result, we got a decrease in quality.
It is not surprising that the story told has become a reality in the software industry. If we agree that the foundation of code is design—a creative, not a mechanical process—it explains the crisis in the software industry. We have a design crisis: the need for high-quality, proven architectural solutions for applications exceeds our ability to create them. Circumstances force us to work based on unfinished projects.
Fortunately, this same model contains hints on how to improve the situation. Physical modeling is equivalent to automated testing: an application’s architecture cannot be considered complete until it has undergone rigorous testing. To make such tests more effective, we find ways to handle the vast number of states in large systems. The improvement of languages and design practices gives us hope. Finally, there is an undeniable fact: outstanding building designs are created by outstanding designers who are dedicated to mastering their craft. The same goes for writing code.