Patterns and Pattern Languages are a literary form. This means that
there are rules to follow. The result will be better for following the
rules, better in that it becomes informed by the rule maker, and, better
in that those familiar with the form can more easily interpret the work.
Following the rules does not, of course, make the work worth interpreting.
The work must have something worth saying and actually say it for the work
to have value.
Pioneers in a new computer technology have lots worth saying. I am confident of this because making computer systems work requires an unusual mix of creativity and meticulousness that almost guarantees both originality and repeatability of programming acts. The value of their collective knowledge increases when there are more programmers, when they have pioneered alone longer, and when there are larger numbers who will follow hoping to learn from their experience.
The pattern form is well suited to reporting the expertise acquired writing real programs. This is not surprising because the form in informed by someone (Alexander) on a very similar quest: record the knowledge acquired in the act of creating utility in a medium unforgiving of mistakes. But Alexander found the assembly and organization of expertise far more difficult than he had expected. This is because he and we can't yet fathom how practical knowledge is stored in the brain; how it can be so comprehensive and yet so close at hand.
I've written tips for authors[1] attempting the pattern form. Here I
offer advice for those who edit those authors.
The pattern community maintains the practice of shepherding all
submissions to their conferences. I've often chosen the most difficult
papers to shepherd, especially when they were of an unusual style or by
an author that others would be afraid to criticize. My advice here is a
distillation of questions I ask and answer as a way to get to the heart
of the material.
In the end there is really only one question that I have to answer.
That is ...
Ward Cunningham
Portland, 2002
[1] http://c2.com/cgi/wiki?TipsForWritingPatternLanguages