I was listening to a podcast a few weeks ago (I think it’s this one) when someone gave a shout-out to this BBC series now on Google video.
Apart from being interesting in it’s own right, the reason I was watching it was to see what design principles I could apply to my code practice. On a side note, I agree with Effective UI that software design is more like warfare than building construction. Anyway, here’s what made sense to me.
The best buildings are –
- Built to change – by the user for the user because not all use cases can be predicted before hand. Write code looking ahead to make it easier for someone else to understand and change.
- Valuable because they are disposable – can be re-purposed easily and therefore develop a rich history. Disposable code? Umm. . how about making better interfaces so modifications don’t break things.
- Make problems visible – easier to maintain. Less fancy designs.
What I found insightful is that (if the narrative is to be believed) architects are reluctant to learn from their mistakes e.g. flat roofs are notorious for leakage but are popular and that a lot of problems can be solved by adopting a user focused design approach. It looks suspiciously agile! Go to time stamp 16:20. I’ve become quite keen on user centred design and usability in general recently. More on that later.