I just went digging through some old blog posts of mine, and a found a few worth reposting. Here’s an excerpt of one from early 2004…
A colleague of mine gave a presentation yesterday about brainstorming techniques. For example, he talked about how an initial pool of ideas can be built up in the generation phase by pushing the boundaries, piggy-backing on the previous ideas, and inverting or negating the previous ideas.
I will never forget the first time I tried it. Continue reading Brainstorming for One →
One of the reasons that pair-programming works so well is the same reason that brainstorming is such a powerful technique in a group setting. Pairing basically amounts to an endless stream of mini-brainstorms between the two partners. I swear that whenever I pair with someone, we’ll write code that is easily three times tighter and cleaner that if I had written it alone, and I think the brainstorming aspect has a lot to do with why.
In formal brainstorming, you start with an initial pool of ideas and build it up by pushing the boundaries, piggy-backing on the previous ideas, and inverting or negating the previous ideas. It’s the job of everyone to be contrariwise with each other — to keep asking “What if?” and “Why not?” In pair programming, a similar thing happens. It’s the job of the person who’s riding shotgun to be looking at the bigger picture (while the one who’s driving is focused more on the task at hand), and this is what makes for the same kind of contrariwise/collaborative atmosphere as brainstorming.
The famous Microsoft interview process (as described by William Poundstone in "How Would You Move Mount Fuji? Microsoft’s Cult of the Puzzle…") asks the candidate, among other things, to solve puzzles such as the quintessential question, “Why are manhole covers round?” It’s a question with multiple answers (see below), and the interviewer is looking for how the candidate approaches the question more than what answers are givens.
I view this question as a quintessential example of simplicity. Continue reading “Why are manhole covers round?” →
a blog by Craig L. Jones, Software Agilist