Pattern Language of Thieves

Pattern Language of Thieves

Craig Demyanovich

July 09, 2014

What do architects (designers of buildings), software developers, and thieves have in common? They each have a pattern language.

I was watching “Ocean’s Twelve” recently when I heard the dialogue in a way I hadn't before. If you haven't seen the movie or don't remember the scene where members of Ocean's crew were discussing how to do a job, the dialogue moves very quickly. Ideas are shared freely, shot down, and replaced by alternatives one after the other.

http://www.imdb.com/title/tt03...">

Linus Caldwell: Um, all right, let's go over the list again. Ah, Swinging Priest?

Basher Tarr: Not enough people.

Linus Caldwell: Crazy Larry?

Turk Malloy: Not enough people.

Linus Caldwell: Soft shoulder?

Basher Tarr: Not enough people.

Linus Caldwell: Baker's dozen?

Basher Tarr: No woman

[pause]

Basher Tarr: and not enough people.

Turk Malloy: Hell in a Handbasket?

Linus Caldwell: [sigh] We can't train a cat that quickly

[pause]

Linus Caldwell: and...

Linus Caldwell, Basher Tarr, Turk Malloy: Not enough people.

Then it struck me: this is exactly the kind of conversation that’s possible when we have the shared language of design patterns in software.

I was bummed to learn, though, that the thieves' pattern language in the “Ocean’s ...” movies isn't real. Rather, it was made up by the director and producer for “Ocean’s Eleven” and used in later movies in the series. Nevertheless, what a fun example of pattern languages!

If you haven’t studied design patterns in a while (or ever) here are some great resources.

Keep an eye and/or ear open for other pattern languages. If you find any really interesting ones, let me know.

Craig Demyanovich

Principal Crafter

Craig Demyanovich is an avid hockey player, and loves visiting new places with his wife, Sandy. He is an experienced software crafter who has delivered high quality software solutions in many different languages, and in all layers of a system’s technology stack. Throughout his career, Craig has helped teams of all sizes build applications at every stage of development, and introduced new practices and processes that prioritize the long-term health of the application.