PLoP: the gathering of the patterns community
architecture architecting patternPublic workshop: Sept 23rd-25th - Architecting for fast, sustainable flow - enabling DevOps and Team Topologies thru architecture. Learn more and enroll.
Throughout my career, numerous individuals and communities have shaped my thinking. Perhaps the most influential of these is the patterns community. In this article, I briefly describe the history of patterns, why I find them valuable, and why you should consider attending the PLoP 2024 conference.
What is a pattern?
The simplest definition of a pattern is that it is reusable solution to a problem occurring in a context. It’s a nicely distilled chunk of knowledge that you can apply if you have the same problem in a similar context.
Patterns = a valuable problem solving framework
There’s usually more to a pattern than simply context, problem, and solution As I described in a 2016 article Why a pattern language for microservices? and the more recent talk Using patterns and pattern languages to make better architectural decisions, a pattern often consists of several valuable elements:
- Forces - the (possibly conflicting) concerns that you must consider when solving the problem in the context
- Consequences:
- Benefits - the forces that the pattern resolves
- Drawbacks - the forces that the pattern leaves unresolved
- Issues - the new sub-problems that the solution introduces
- Related patterns:
- Alternatives - other solutions to the same problem
- Successors - patterns that solve the problems introduced by this pattern
As a result, patterns are a great framework for thinking about problems and solutions. For example, the attendees of a recent Architecting for fast, sustainable flow workshop described how the dark energy and dark matter forces were a valuable way to structure architecture and design discussions.
Moreover, as I describe in #becauseItDepends Finding your inner Vulcan: unemotional decision making with pattern-style thinking you don’t even need formally use patterns to find the ideas valuable. The concepts of forces - issues that you need consider - and consequences - a given solution is both good and bad - are useful in their own right. They are an antidote to the all to common Suck/Rock dichotomy that we often fall into when making decisions.
Patterns started with Christopher Alexander
The origins of patterns can be traced back to the work of Christopher Alexander. In the 1970s, he published a series of books on real-world architecture. In these books, he described a pattern language for designing buildings and towns. Eventually, he was discovered by the software community. In 1996, Christopher Alexander gave a keynote at the OOPSLA conference: article and video. An experience he described as “pretty strange” since he knew little about software.
The Gang of Four
The most famous book on software patterns is the Gang of Four’s Design Patterns, which was published in 1994.
The big ball of mud
These days we often use the term ‘big ball of mud’ to describe a messy software system. Here’s the original 1999 paper Big Ball of Mud by Brian Foote and Joseph Yoder. It describes a collection of patterns including Big Ball of Mud and attempts to explain why this architectural style is so popular and what to do about it.
Two of my favorite patterns books
Numerous other books on patterns have been published. Two of my favorites are Martin Fowler’s Patterns of enterprise application architecture and Gregor Hohpe’s Enterprise integration patterns. Gregor’s book is especially valuable today because it describes a pattern language for messaging-based applications: i.e. microservice architectures.
About PLoP: Pattern Languages of Programs, People & Practices
PLoP is a conference where the patterns community gather to discuss, and learn. The first PLoP was in 1994.
Patterns and me
I’ve been excited about patterns since I first read the Gang of Four book. I also have very fuzzy memories of going to patterns study groups in the late 1990s. My paper A Pattern Language for J2EE Web Application Development (PDF) was accepted at PLoP 2001 but sadly, I couldn’t attend due to 9/11. I finally made it to PLoP in 2017, where I gave a talk on the microservices pattern language and received valuable feedback. My book Microservices patterns was published in 2018.
Why attend PLoP 2024?
This year the PLoP conference is at the Skamania Lodge just outside of Portland, Oregon. It’s a great opportunity to learn from the truly smart people who have shaped modern software development. To learn more about PLoP, and, hopefully, register please see the website. I hope to be there too!
Need help with accelerating software delivery?
I’m available to help your organization improve agility and competitiveness through better software architecture: training workshops, architecture reviews, etc.