In October 1994 Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides published the groundbreaking book “Design Patterns: Elements of Reusable Object-Oriented Software”. As a result, software engineering processes changed and adopted the power of reusable knowledge in the form of patterns. More than 15 years later, adoption of software design patterns in general and enterprise architecture patterns in particular are woefully short of most expectations.
The general notion of a pattern ingrained in human minds, takes many different forms. Historically, patterns have played a major role in helping humans overcome recurring problematic events, activities, and outcomes. Weather patterns, traffic patterns, behavior patterns and many other types of patterns have been successfully adopted by humans to understand (i.e comprehend) and mitigate complex problems. Patterns provide early insights into potential problems or hazardous situations as well as create opportunities to find proven solutions. The art and science of finding patterns and identifying subsequent opportunities for utilizing patterns is increasing in significance especially in technology intensive systems.
Documenting patterns is a complex task involving appropriate capture of reusable and reapplicable human knowledge. Current pattern documentation templates capture detailed knowledge rather than promote rapid comprehension and adoption of a pattern. As a result, many documented patterns are under-utilized causing a waste of valuable knowledge.
Cognitive science is making real progress in understanding the human brain’s capabilities and limitations for comprehending concepts or realities and its abilities in recalling knowledge and understanding. This paper introduces a cognitive documentation technique that results in improved comphrension (rapid understanding and quick recall) of patterns, thereby facilitating adoption of enterprise architecture and system design patterns.
Motivation and Observations
Over the past 20 years, architects and industry experts have established many catalogs of architecture patterns. Today, 1000’s of software architecture and design patterns exist and some of the most popular pattern cataloges include:
- Martin Fowler EA patterns: http://martinfowler.com/eaaCatalog/ - 50+ patterns
- Gang of Four design patterns: http://memorize.com/gof-design-patterns - 23+ patterns
- SOA patterns: http://www.soapatterns.org/masterlist_c.php - 85+ patterns
The list of patterns and pattern cataloges continues to grow rapidly as enterprise architects and software engineers use pattern documentation as a means to capture and share potentially reusable knowledge. However, most of these patterns go highly unnoticed or greatly underutilized. Only a handful of all documented patterns are in use daily.
This paper summarizes the results of applying advances in cognitive science to uncover the founational reasons for challenges in adoption and utilization of enterprise architecture patterns. The funamental hurdle discovered was the known limitations of our brain’s capacity to comprehend, remember, and recall reusable knowledge at any specific moment in time. A potential answer for overcoming this hurdle may exist in the definition of Cognitive Sweet Spot.
The human mind’s ability to understand, remember, and recall some forms or types of information better than others are the reason why patterns like MVC (Model-View-Controller) are easy to adopt and utilize. MVC is one of the most easily and often utilized (almost by default) software design pattern. Software architects and engineers easily comprehend and apply the pattern in the design of enterprise solutions. In fact, many software architects and engineers begin to envision and create mental models of MVC based software designs in an instant. This raises the question why MVC pattern is a wildly successful pattern while many other patterns are mostly unknown except to the authors of the patterns.
Over the last couple of decades, cognitive research has discovered that our brain, more specifically the short-term memory in our brains is able to hold upto four visualizations of concepts and realities at any given moment. This limitation creates a very tight space in which cognition (understanding) must occur. This tight cognition space facilitates general understanding in a small ranges of terms - ambiguity, complete comprehension, and overly complex. Cognitive sweet spot draws a boundary within the cognition space where comprehension of concepts and realities is naturally higher. Documenting reusable knowledge (patterns) in a form that fits the cognitive sweet spot significantly increases the possibility of long-term utilization of enterprise architecture patterns.
Our day-to-day experiences create many observations of cognitive principles and the impact of cognitive sweet spots. The widespread and very successful use of three letter acronyms (TLAs) is further testament to the existence of a cognitive sweet spot. TLA’s make concepts and realities easier to understand, remember, and recall because TLA’s exist within the comprehension zone of cognition space i.e the cognitive sweet spot.