Tuesday, May 26, 2009

Design patterns that do not exist, but should: Let The Wookiee Win

I like design patterns. They're an interesting and useful way to store a fairly large set of information about how to do something in a few words. Mike Nygard, in Release It!, uses patterns and anti-patterns to talk about things to do and to watch out for, and I found it to be an excellent way to remember what to do and not do.

Playing around with language is something I enjoy, and I have a talent for remembering movie quotes. For whatever reason, some movie quotes strike me as capturing design or problem-solving patterns. Thus I begin what may turn out to be a series of posts, about Design Patterns That Do Not Exist, But Should.

Let The Wookiee Win
I can't find a link for this on Youtube - guess Lucasfilm's legal staff is earning their keep. In the original Star Wars, R2D2 is playing a chess-like game with Chewbacca. Chewie doesn't like one of R2's moves, leading to this exchange:
C3P0: He made a fair move. Screaming about it won't help you.
Han: Let him have it. It's not wise to upset a Wookiee.
C3PO: But sir, nobody worries about upsetting a droid.
Han: That's 'cause droids don't pull people's arms out of their sockets when they lose. Wookiees are known to do that.
C3PO: I see your point, sir. I suggest a new strategy, Artoo. Let the Wookiee win.

Let The Wookiee Win is not about conceding the game, it's about redefining victory conditions for yourself in light of new information. The point of using it as a design pattern is that you should be alert to information that changes the nature of the game; there's not much point in winning the battle if you lose the war.

You should Let The Wookiee Win when you come into possession of new information that changes your understanding of the consequences of achieving your current goal. Play the meta-game, not the game at hand.

- Kevin

1 comment:

pjbfcp said...

Great post Kevin,
I love the Wookiee analogy. I think I need to print that out and leave it up in my office. In our line of work we need to be reminded to let the Wookiee win quite often. Also, I love the idea of design patterns outside of design. Almost like design patterns for life. Cool stuff. Thanks.