A first milestone to help define what is “Agile Specifications”

Last Friday, October 1st, I was in London to participate in a workshop to learn how to write patterns. This workshop, directed by Linda Rising, was sponsored by the Agile Alliance to help clarify the field of Agile Specifications. This event is the first step of a long journey.  Our ultimate goal is to define a “pattern language” that will unify Behavior Driven Development (BDD), Acceptance Test-driven development (ATDD) and Framework for Integrated Test (FIT).

Wikipedia as a neat and concise definition of what is a “pattern language”:

A pattern language is a structured method of describing good design practices within a field of expertise. It is characterized by:

  1. Noticing and naming the common problems in a field of interest,
  2. Describing the key characteristics of effective solutions for meeting some stated goal,
  3. Helping the designer move from problem to problem in a logical way, and
  4. Allowing for many different paths through the design process.

At the heart of a “pattern language” is a collection of patterns that forms a vocabulary for understanding and communicating ideas. We can define a 'pattern' as a three-part construct. First there is the 'context' - the conditions under which this pattern holds. Next is a 'system of forces'. In many ways, it is natural to think of this as the 'problem' or 'goal'. The third part is the 'solution' - a configuration that balances the system of forces or solves the problems presented.

During the workshop, I had the chance to write my first pattern and have it reviewed by my peers. Altogether, we spent the day creating a first draft of the pattern language while learning the process. I had an awesome day and it’s already clear that this initiative is going to produce something pretty amazing.

So how is this important for Urban Turtle? In the short term, this is not so much important, but in the long term, it is. Our long term vision is to evolve Urban Turtle so that it will not only be the best tool for agile planning but also the best tool for agile specifications on the MS platform. This “pattern language” initiative is a first milestone. Stay tuned!


PS. To learn more about patterns (and pattern language), here is a good overview by Brad Appleton