Twitter | Search | |
Geoffrey Litt
There's a saying that writing software is more like tending a garden than constructing a building -- things constantly change. But the more I learn about how buildings evolve, I think this process is actually a perfect analogy for designing software! Thread:
Reply Retweet Like More
Geoffrey Litt Jun 15
Replying to @geoffreylitt
The gardening analogy originated in The Pragmatic Programmer (afaik). The claim: buildings are designed once and stable forever. But in a garden, things grow organically, you need to constantly prune and weed and tend. Aka, refactoring.
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
I found this framing helpful as an early programmer, but ultimately a bit hollow. Software adapts in response to changing human needs. It doesn't just naturally grow like a plant. The fundamental motivations seem different.
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @stewartbrand
AND THEN, I started reading How Buildings Learn by , and it all clicked. The basic point of the book is that buildings evolve dramatically over decades in response to changing requirements. The parallels to software are uncanny.
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
One example, here's how James Madison's house Montpelier evolved over time. 1 family -> 2 family -> entertaining guests as President -> ... "all its owners are expressed, beam by beam" Bottom picture shows the original footprint bolded. Remind you of any software you've built?
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
Another fun tidbit: Most of the cost of a building is actually ongoing operation and maintenance, not building the original structure. Just like software.
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
But what I find most interesting is that Brand has ideas for how buildings can be made adaptable, which I think we can use in software too. "Age plus adaptivity is what makes a building come to be loved. The building learns from its occupants, and they learn from it"
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
He presents the "Low Road" archetype: buildings so shabby that no one cares what you do to them. Exposed plumbing, messy walls, empty garages. You can make it your own with no complaints. How can we expose more plumbing??
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
"Temporary is permanent." The quick and dirty structure of a Low Road building often makes it highly adaptable. Reminds me of those "temporary" spreadsheets that your company still runs on. Because you can color a cell or add a column, and no one complains
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
Another theme: buildings have layers that change at different rates. You need to allow "slippage" between the layers. How can we allow occupants maximal freedom to change the inner layers?
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
This gets at perhaps the most useful property of the building analogy: we already understand the value of designing our own interiors and doing some remodeling. I want this for software: everyone modifies their space as deeply as they choose.
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
Especially amid quarantine placelessness, feels like software is increasingly an environment that we inhabit Fascinating to consider how we can learn from the design of adaptable physical environments, to design adaptable digital ones...
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
The building metaphor also helps resolve debates around gatekeeping. Professional Skyscraper Architects are correct that I, an amateur, should not attempt to build a skyscraper... but doesn't mean I shouldn't rearrange chairs or build a birdhouse
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
I think it's possible to have great respect for the craft of design, while also respecting that people know their own circumstances and can learn to design quite well for themselves
Reply Retweet Like
Geoffrey Litt Jun 15
Replying to @geoffreylitt
I guess what I'm excited about right now is going into existing buildings, busting out the walls, and giving the inhabitants permission to redo the plumbing 🤓
Reply Retweet Like