History And Related Work

The bulk of the organizational patterns in this book draw on the Pasteur research project at Bell Laboratories. The earliest work on that project sought alternatives to ISO 9000 series approaches as a means to baselining organizational quality. That work dates back to about 1991; the first paper published from that work was [BibRef-CainCoplien1993]. The key idea of using roles dates back to that work.

That research program first started using patterns to capture organizational structures in late 1993. This body of patterns grew, and the first draft of those patterns was presented for review at the first conference on Pattern Languages of Programs in 1994. The organizational pattern language that was eventually published in the first book in the PLoPD? series [BibRef-Coplien1995] was one of the first pattern languages in software. That pattern language dealt with recurring structures--configurations of roles--in software development organizations, as a reaction against the predominate organizational literature of the era that was based on development process and ISO 9000 series standards and the CMM.

A contemporary language that dealt closely with process and organizational issues was Bruce Whitenack's RAPPeL pattern language [BibRef-Whitenack1995]. Bruce's pattern language focused largely on the requirements process, "to build systems that do the right things." His view of prototyping contributed heavily to the BuildPrototypes pattern in this book. It is perhaps regrettable that few of Bruce's other patterns appear here, but we decided they are a good pattern collection in their own right with loose enough coupling to other organizational issues that it would be best to keep the two as separate works.

Another contemporary pattern language was Norm Kerth's "Caterpillar's Fate" [BibRef-Kerth1995] which also appeared at the first pattern conference and is published in the first PLoP book. It looks at the transition from analysis into design, and there are many good organizational insights in his patterns, borne on years of consulting and experience. Like RAPPeL, the patterns look at organizational structure as a secondary concern, and so we elected not to incorporate them into the patterns here.

Since then several other efforts have come on the scene and have matured over the years. Steve Berczuk wrote strongly technical patterns about developing software with distributed teams, but that have interesting organizational overtones [BibRef-Berczuk1996]; some of those patterns appear here. Some of these ideas have evolved into the excellent book by Steve and his co-author, Brad Appleton [BibRef-BerczukAppleton2002].

Another follow-on was Ward Cunningham's Episodes pattern language. Episodes reflected long-standing experience in the Smalltalk community on small projects that extended all the way back to Ward's experience at Wyatt Software. His work included patterns such as ProgrammingEpisode and its subtending patterns. Episodes was first published in the PLoPD-2book [BibRef-Cunningham1996]. Many of those patterns are included here. The patterns were also the source of many Extreme Programming practices.

Other follow-on work in this vein came from Alistair Cockburn in 1998 and showed up in his book Surviving Object-OrientedProjects: A Manager's Guide [BibRef-Cockburn1998]. His patterns include DayCareSacrificeOnePerson, and many other practical project management patterns. Many of them are included here.

There have been many other organizationally focused works of note in the same time frame, including works such as [BibRef-MorabitoSackBhate1999]. The book Contextual Design by Beyer and Holtzblatt [BibRef-BeyerHoltzblatt1998] has many organizational concepts similar to those developed in this book and should be viewed as an excellent complementary work. The chapter on SocialNetworkTheoryFoundations explores the parallels in greater depth.

Scott Ambler wrote some patterns of developing software from the process perspective [BibRef-Ambler1999]. Because the patterns relate more to process than to organizational structure, they don't compose into a true pattern language.

You can find more research foundations and related work in AnthropologicalFoundations, and particularly in PatletsFromOtherPatternLanguages.