Patterns for Agile Change: Blog 2, Patterns!
Introduction
Pattern theory is one of the most significant and potent knowledge tools available, and yet hugely under-utilised, too few people have been introduced to this subject area.It is the codification of successful experience.
Each pattern describes a problem context, and then articulates how it has been solved in the real-world on multiple occasions. And by putting multiple patterns together and identifying their inter-relationships, we are able to create pattern languages that enable the improvement of entire systems / entities.
Pattern theory was first introduced by Christopher Alexander in the 1960's for town architecture, and has since then been successfully used in other domains such as software design. Jim Coplien's book "Organisational Patterns of Agile Software Development" adapted pattern theory for organisational patterns and was one of my first Agile reads back in 2005. Introduced to the concept by Ian Shimmings, the two of us went to listen to Coplien speak at Oxford University and its been a core part of my thinking ever since.
I have been seeing and using patterns in my work regularly, but have never managed to create the space to actually write them down into a cohesive pattern language. These blogs are the start!
Pattern Definitions
Patterns encourage you to understand your context and the problem you are addressing. They then provide a proven example of how the problem can be solved for that specific context or need. It is then your decision whether you think the pattern fits your context and problem.It is not one-size fits all, it means you have to think about it. :)
The following definitions are pulled directly from Coplien's book:
"A pattern is a solution to a problem in a context"
"A recurring structural configuration that solves a problem in a context, contributing to the wholeness of some whole, or system, that reflects some aesthetic or cultural value."
"Patterns are like cells in a plant; the resulting organization is like the tree or the forest that results as the cells grow, divide, and specialize. The structure for putting the patterns together in this way is called a pattern language."
"A Pattern language is a language that comprises patterns and the rules to put patterns together in a meaningful ways and in a certain sequence. It tells how to build a whole system."
Pattern Format
There are many formats that have evolved from the original Alexandrian format. A format that I chosen is that adopted by Mary Manns & Linda Rising in their book "Fearless Change".Pattern Name: Pick a name that makes it obvious what you are talking about, or evokes an emotional response to engage the reader.
Opening Story: Provide a story that helps the reader to understand 'where this is heading'. Stories are good, we're used to them, and again its an opportunity to bring in the context.
Summary: A short, concise description of what the pattern is suggesting
Context: Set the scene, the environment, the situation within which the problem sits, but do not describe the problem.Problem: A description of the problem itself, keeping a short and concise description helps.
Forces: Usually a lengthy articulation of the forces at work that are contributing to the problemEssence of the Solution: Short description of the solution
More about the Solution: A deeper description of the solution including references to related patterns where appropriate.Resulting Context: Description of the expected impact of implementing the pattern with both the potential positive and negative outcomes to be aware of.
Known Uses: Contexts within which the pattern has been successful.Cultural Momentum Pattern Language
Cultural momentum is a term I’ve coined to describe the point at which the executive / change agent is no longer leading the way. Rather, the vision and direction is understood by
the majority, they are engaged and are working toward that vision, and deciding
the path for themselves collectively. It is a state of tremendous energy within a company, and the speed of change is a stark contrast to previous change activities. The teams have a purpose, the autonomy to act, and are developing themselves and others.
Having now been part of a number of successful Agile transformation activities, I've seen first hand that there are some consistent, repeatable activities that help companies shift culture, structure, process, tooling and their people into a more productive, sustainable, happier and collaborative working environment.
Having now been part of a number of successful Agile transformation activities, I've seen first hand that there are some consistent, repeatable activities that help companies shift culture, structure, process, tooling and their people into a more productive, sustainable, happier and collaborative working environment.
I've corralled these patterns into a pattern language (outline illustrated below). My next blog will describe the first pattern - "The Dot on the Wall".
Comments