People And Code Pattern Language



pcpatterngraph.jpg

The Pattern Language
external image PCPatternGraph.gif

A Story About People and Code

"The system engineer wrote a set of requirements, then left the project." That was hardly an auspicious beginning to a project. Yet in spite of this initial setback, or perhaps in part because of it, the team came together in a remarkable way to complete the project on time. We learned much from analyzing this team.

Project development began with designing an architecture, but there was no single architect; instead there was an ArchitectureTeam. (A manager later commented that he could not identify a single architect, because the team knew the architecture so well. See ModerateTruckNumber.) The team met numerous times to create the architecture, but made little progress until they isolated themselves (LockEmUpTogether). When they came out, they had an architecture that guided them through the project (ArchitectControlsProduct). As importantly, they had a very high degree of UnityOfPurpose. All the architects practiced ArchitectAlsoImplements.

The project was geographically split, which created a natural organization break. They recognized the need for ConwaysLaw and OrganizationFollowsLocation. In practice, this led to CodeOwnership and FeatureAssignment. They defined interfaces over time (LooseInterfaces), and while they hardened the interfaces, they allowed VariationBehindInterface.

The project had a unique twist to DevelopingInPairs. They had group debugging! In fact, the entire team at one of the locations would all gather around one person's computer to debug problems. It didn't turn out to be any less efficient than single-person debugging, but it had the benefits of maintaining a ModerateTruckNumber and preserving the architectural integrity of the system. Interestingly, since the entire team was present, the group debugging sessions also served many of the purposes of the StandUpMeeting.

The team had some novices, and used GenericsAndSpecifics to help make the novices productive.
At the end of the project, personnel from a partner company paid them a very high compliment: "We don't believe any other company could have pulled it off."