Next time you hear someone compare software engineering to building a house, point them at this:
“The Bent Pyramid, though largely intact, owes its preservation to the builder’s realization of their errors soon enough to make changes to their initial building plans.”
Even the ancients didn’t get it right first time.
Imagine a future in which all buildings are constructed from component modules. These modules can be easily adapted to fit one another. Walls, doors, windows, stairs and structural elements can be moved from one module to another, and are easily repainted to match your colour scheme. Each module also has a bar which flashes red when they’re in danger of structurally failing, either due to the stresses of the building* or of human habitation.
Halfway through the building process, you realise that there’s room for a swimming pool in the lounge. Your friend has one and it’s great for parties. So you change the design. The builders are quite happy to slap it together for you, content in the knowledge that the red bar keeps things safe.
After two years, you find you need an extra bedroom. It’s quite easy to extend the lounge and bolt the bedroom on top. You need to move another room to create room for the extra door, but that’s easy too. While you’re there, you move the swimming pool to the roof.
A year later, you are able to work from home, so you port your entire house to the wilds of Scotland, where you have a great view of the sea.
Why would you not want to build a house that way?
*I love checkstyle
In this imagined future, the modules would have to be well thought of. Somewhat like the modules that we get at the IKEA stores.
I also wonder how one would learn about and redesign the modules themselves, especially the all important red bar.