|
|

Introduction-1
Ward Cunningham and
Ralph Johnson
PLoP was founded to create a new literature. That implies that the founders
were somehow dissatisfied with the existing literature, which is true. The
founders, a handful of notables in the object-oriented programming community,
had come to realize that the advance of their discipline was limited by a bias
in its literature. The bias, a product of the traditions of scientific
publication, was to favor the new, the recent invention or discovery, over the
ordinary, no matter how useful. The founders' interest in the ordinary may have
come from their studies of software reuse. Or, it may have come from their
observations that projects fail despite the latest technology for lack of
ordinary solutions. What matters is that all of the founders agreed to focus
their attention on the dissemination of solutions. The PLoP conference is one
result.
This volume is the first of a series of books dedicated to the "Pattern Form",
our best guess at the way to share solutions. We asked authors to submit papers
in the "Pattern Form" without actually saying what that form was. Christopher
Alexander coined the term "Pattern Language" and explained the form well in his
book "The Timeless Way of Building." Many authors were familiar with this work,
and many more were introduced to it through a series of OOPSLA workshops and
Internet discussion groups. Even so, we felt authors needed considerable
latitude in adapting Alexander's form to the domain of computer programs. The
one thing we insisted upon was that each paper describe a solution, a thing that
could be made to solve a problem.
You will notice as you read this volume that the solutions offered cover an
incredible range of problems. This means that you will probably not find every
chapter equally interesting. We expect that as the PLoP community grows and
matures that PLoP will itself splinter along traditional lines of interest.
Future volumes may not demand so much versatility of their readers. For now we
ask that you dig into all of the chapters. Even if you do not plan to apply what
you read directly, it might inspire you with new ideas of how to present
patterns, and it should certainly give you a perspective on why developing
software is so hard.
For all this diversity in subject matter there were some surprising agreements
among PLoP authors and attendees. For one, most found that a solution, the
essence of a pattern, could easily transcend the exact nature of its
expression. A pattern must ultimately reside in one's own mind. So, the
various writing styles, from labeled sections of a standard template to running
paragraphs of a more narrative style, have less to do with the success of a
pattern than some more basic elements. These include establishing a problem and
its context, analyzing the forces bearing on the solution and, most important,
offering a concrete solution. Patterns that include these elements succeed.
A central feature of PLoP'94 was the writers workshops. Instead of presenting
their papers to an audience, writers listened to a small group discuss their
paper and debate its strengths and weaknesses.
This gave authors a chance to learn how they were communicating, as well as
learning alternatives to the techniques they were presenting. We owe a great
debt to Richard Gabriel for introducing us to the writers workshop in the spring
of 1994. Writers workshops were started a few decades ago in the creative
writing community, and are an important way that new writers learn their craft
and experienced writers polish their material. To the best of our knowledge,
this is the first time it has been used in a technical community, but it seems
to work well.
So that is the vision and process that has lead to this volume. We are pleased
with the result and are sure you will be also. For us it is full speed ahead.
Every week we see some new piece of evidence that the shift of focus that we and
our authors have made will have a profound and enduring effect on the way we
write programs. They will also show by example our vision of the
future of software engineering.
|