Introducing Patterns into Organizations
Workshop 12, OOPSLA 2000

Neil B. Harrison
Avaya Communication
11900 N. Pecos st., room 30F-31
Denver, CO 80234
(303) 538-1541
nbharrison@avaya.com

Neil Harrison is a Distinguished Member of Technical Staff in Avaya Communication (formerly part of Lucent Technologies.) He was the lead editor of Pattern Languages of Program Design 4, program chair of the first ChiliPLoP, and is Program Chair of KoalaPLoP 2001. He is the author of numerous patterns and pattern languages, including Patterns of Shepherding. He teaches pattern courses within Lucent Technologies and at pattern conferences.

The following are drafts of patterns which might be added to to the Evolving a Patterns Culture pattern language.

Name: The Aha Pattern

Context:

You are teaching a group of people about patterns, probably in a classroom setting. The students are generally new to patterns.

Forces:

Problem:

Newcomers tend to dismiss patterns as just "nice little ideas".  They don't sink in.

Solution:

Present a pattern that solves a problem the listener has struggled with. When they see such a pattern, the light goes on, and they all of a sudden understand what patterns are all about. Tom Cargill reports that when he teaches patterns, he presents The Null Object very first, because most people can releate to it.

Resulting Context:

This may be the same as An Individual Hook. I think it's somewhat different, because of the different context, but it's worth discussion.

This pattern really needs Flood to succeed.

Known Uses:

I have used this a lot. Tom Cargill has used it as well.

Author:

Neil Harrison and others.
 
 
 

Name: Flood

Context:

You are teaching a group of people about patterns, probably in a classroom setting. The students are generally new to patterns. You want to use The Aha Pattern to really connect with them.

Forces:

Problem:

How do you connect to each student in a patterns class, when all are different?

Solution:

Present lots of patterns, fairly quickly. Cover each rather superficially. Select patterns from lots of different areas, including some non-technical areas. The idea is to throw out patterns to cover a wide area of topics, with the intent that at least one will hit every person in the classroom.

You don't go into much detail, because you aren't trying to teach the patterns, but are trying to connect. When a student hears a pattern that hits on a previous problem, he or she doesn't need the details.

Try to select patterns that solve common problems in whatever domain the pattern is in. For example, The Null Object is good for OO people. Leaky Bucket Counters is good for high reliability folks like telecommunication people.

Resulting Context:

Known Uses:

In Lucent/Avaya, we use this extensively in teaching patterns.

Author:

Neil Harrison and others.
 

Name: The Write Stuff

Context:

You are teaching a group of people about patterns, probably in a classroom setting. The students are generally new to patterns. (Maybe this works in other settings as well.)

Forces:

Problem:

How do you teach the pattern form?

Solution:

Do a group write of a pattern. Pick a pattern that everyone either knows, or can relate to, and write a pattern together. As you write it, explain each section of the pattern. Make this a highly interactive session, where you pull information from the group. So in essence, they write the pattern themselves.

Write the sections in a typical order of writing, starting with the solution, moving to the problem, adding forces and context, etc. You can also show iteration among some of the sections.

I usually use Body Follows Eyes.

Resulting Context:

The students go into writing their own pattern better equipped to write.

Known Uses:

I have used this many times, and others have adopted it for teaching patterns.

Author:

Neil Harrison.