I once heard a great analogy: if architects built buildings like software engineers build systems, they would always start with the world's tallest skyscraper which would then come crashing to the ground because they had no idea what they were doing.
Too true. This particular analogy comes to my mind each and every time I face a development challenge. Yesterday, during my 7 hours of 1:1 code consults at yesterday's Cloudforce 2011 in NYC, I talked with developers of all kinds, from all types of enterprises, with all kinds of questions. And I kept thinking: I need a quonset hut.
My general strategy for quickly solving an unknown problem in an unknown domain is simple: find the point where the problem manifests itself most clearly, isolate that point, and then create the simplest version of a solution that might possibly work. I call this building a quonset hut.
This is not revolutionary thinking, and I won't claim to have invented this technique–or the terms, or the analogy that I started with. But it is incredibly hard to remember when you're in the heat of things–when you are the middle of the 22nd floor of a 50 story software skyscraper, taking a step back to do a quonset hut doesn't seem like a great option.
But it always works. It answers questions. It results in working code. It's one of those crazy mental detours that speeds things along.
A huge thank you to everyone who joined me and the rest of the crew for yesterday's event. It was a pleasure speaking with you and walking through your apps, building some quonset huts together.
You should now go read Martin Fowler's recent piece on the Tradable Quality Hypothesis. It's fantastic.