5 Unified Pattern Language

The fifth principle seeks to harmonize enterprise communication:
When promoting a Unified Pattern Language organize patterns into collections. The project teams throughout the enterprise will have a starting point for adopting their own Pattern Palette.

Collection

[See also the PED Implementation of this pattern.]

In experience with “the Company,”[1] we have seen that communication among diverse teams has been harmonized by: an empowered center of excellence, publishing “pattern collections,” and socializing a pattern language.

“The Company” has supported a Java Center of Excellence (JCOE) since 2002, when it adopted the Java platform for enterprise applications. The JCOE’s official charter included application consulting and framework development. Over time, it has become a nexus for the germination, maturation and dissemination of an enterprise Unified Pattern Language.

The original motivation for patterns was to bring efficiency to technical communication between team members on opposite sides of the planet. We began to view the ever-expanding lexicon of patterns published as a potential inhibitor to cohesion rather than helpful for server-side development. Thanks to our engagement with the PLoP[2] community we now understand we simply rediscovered the value of a pattern language; what others, such as Ralph Johnson, Ward Cunningham, Richard Gabriel and Kent Beck, put forth beginning in 1994.

The term “Unified” was added primarily to acknowledge the inclusion of JavaScript (ECMAScript) as a first-class programming platform along with Java. At the time of this writing the term “Unified Pattern Language” signifies:

  • Multiple pattern collections
  • Synergy across the collections (supporting full-stack development)
  • Adoptable outside the Enterprise

Socialization and refinement of the Unified Pattern Language is ongoing, spread through collaboration with and between project teams learning from real-world experience.

References

[1] In 2002, Java was adopted as the standard platform for in-house development at a successful large automotive manufacturing enterprise (“the Company”).

[2] The centerpiece of the PLoP community is their face-to-face conferences (http://www.hillside.net/conferences). In addition, there is a LinkedIn group entitled “Pattern Languages of Programs.”