Creativity - John Cleese
Jonas Boner recently linked to a really cool (and short) presentation by John Cleese about creativity which I think is very applicable to software development.
Cleese describes some observations he’s made about creativity from his experiences working in comedy. These were some of the key ideas:
Plan to throw one away?Cleese describes a situation where he wrote a script for Fawlty Towers and then lost it. He decided to rewrite it from memory and after he'd done that he found the original. He was surprised to see that the rewritten version was actually an improvement over the original even though he'd written it much more quickly the second time and concludes that his unconscious mind must have still been working on the script even after he'd stopped writing it. This seems to be similar to the ground that Fred Brooks was covering when he suggested that we should plan to throw one away because we will anyway. It would be really interesting to see how much more quickly we'd be able to write a software system assuming all other things stay the same and we're able to build on the mistakes and things we learnt from the first attempt.
Sleeping on a problemWhile discussing sketch writing Cleese points out that when he got stuck while writing at night and couldn't think what to write next he would just go to bed. He found that when he woke up the next day and went back to the problem the solution was immediately obvious and he couldn't remember why he'd got stuck in the first place. This is something that Andy Hunt talks about in Pragmatic Thinking and Learning as a useful technique for ensuring that we get our right brain involved in the problem solving process and I've written previously about the advantages of stepping away from a problem when we get stuck.
Creating a tortoise enclosure
Cleese suggests that we need to restrict both time and space in order to be creative.
We need to ensure that we set a restricted period of time during which we won’t be disrupted and use that time to think.
The closest thing I can think of in the agile world is the idea of not context switching but it seems to go beyond that.
I like the underlying idea that we need to create some constraints in order for creativity to happen. It often seems like really good ideas come from someone being put in a situation where they can’t do what they’d normally do and therefore need to innovate in order to ‘survive’