Home > Articles > Programming

Using a Writers' Workshop to Improve Software Patterns

  • Print
  • + Share This
A writers' workshop brings together people in a way that enables effective criticism and suggestions for improvement Learn how the author has applied this age-old method to the improvement of software patterns.
This chapter is from the book

The writers' workshop begins when ten or so people decide to read, review, and critique each other's work under the guidance of a moderator. The workshop is a formal gathering, perhaps over a series of sessions, that lasts at least as long as it takes to go through everyone's work—and the group can stay together continuing to review later drafts and new work, much like a sewing circle or poker game. The longer the group stays together the better—up to a point where you need to bring in new people.

The seed for the writers' workshop as we now know it was planted at the end of the nineteenth century at the University of Iowa. The result was the Iowa Writers' Workshop, which is one of the best known and most prestigious of the creative writing programs in the United States. The writers' workshop has been in use by the writing community ever since, and it is among the most effective ways for novice and intermediate writers to get good fast and to learn the critical skills to continue to improve.

The writers' workshop is one of several somewhat counterintuitive practices in which what seems like an individual art or craft is done or assisted by a group or crowd. Other practices, which I'll describe in Chapter 2, include brainstorming, open-source development, pair programming, and the design charrette.

The fundamental approach used by the writers' workshop is not limited to writing, drawings, and designs, but can be applied—and has been applied—to anything that people make: software, patterns, pattern languages, organizations, presentations, brochures, marketing campaigns, business plans, companies, plays, performances, music, conference plans, food, interior decoration, landscaping, hairstyles, perfume choices, and on and on. The writers' workshop brings together people who make things and the things they have made in a way that enables effective criticism and suggestions for improvement while maintaining an atmosphere in which the individual is not harmed by the experience of people criticizing the work.

The formality and stylized behavior of the writers' workshop is what makes it work. There are three roles one can play in a workshop: the author, the moderator, or a participant.

Already-organized writers' workshops exist for both the creative writing and the software patterns worlds. For the creative writing world, there are dozens of national workshops like the Bread Loaf Writers' Conference and the Sewanee Writers' Conference, and dozens of Master of Fine Arts programs based on the writers' workshop format. Dozens or hundreds of summer programs offer writers' workshops lasting from a few days to a couple of weeks—attending one is a good way to work your way into the workshop community. Many community colleges and universities, through their extension programs, organize writers' workshops, but these can vary in quality. The formats of these workshops are not all the same but hold a family resemblance. Later I'll look at some of the variations and what they're all about. If you wish to try one of the variations on the writers' workshop, it's a good idea to find out what variation it uses, the usual experience level, and, if possible, the culture that the workshop maintains. Workshops develop their own rituals, myths, ways of behaving, stances toward hierarchies, and so forth. The culture of a workshop can make the experience delightful or nightmarish.

For the software patterns world, there are international workshops like the Conference on Pattern Languages of Programs and the European Conference on Pattern Languages of Programs (PLoP and EuroPLoP, respectively). There are also a number of regional PLoPs—as they're called—and readers' and writers' groups for patterns. Check the Web if you want to join an existing writers' workshop.

The original idea behind the writers' workshop was to do a close reading of a work, to use the term F. R. Leavis coined for the practice of looking at the words on the page rather than at the intentions of the author or the historical and aesthetic context of the work. Under this philosophy, the workshop doesn't care much what the author feels about what he or she wrote, only what's on the page. This corresponds to the philosophy of the New Critics, which held that the work was its own "being," with its own internal consistency and coherence, which could be studied apart from the author. Moreover, this approach is nearly identical to that of the Russian formalists, who thought that the proper approach to literature was to study how literary texts actually worked, their structures and devices. These origins explain the reliance of the workshop on the text and the author as fly on the wall even in informal workshops in which the author is closer to the action than in the original conception.

There are a variety of workshop formats and practices, but to give an idea of what a workshop is like, let me present how a technical writers' workshop works in the software patterns community. Note that the following process is followed for each author in the workshop.

Before the group first gets together to review a particular piece, the piece is handed out so that the group can prepare. Each reader may write notes on the piece in preparation. When the group is ready to start, it forms into a circle. The group's ground rules are stated by the moderator, who may use a variation of the rules I talk about in this book. The author selects and reads aloud a short passage from the work or the entire work if it's short enough. He or she may ask the members of the group to focus on a particular concern. The author is allowed to introduce the piece exactly as it would be introduced when consumed or performed.

At this point until near the end of the session, the author does not speak; all conversation is directed, if to anyone, to the moderator. In fact, the moderator should keep people from looking at the author or speaking directly to him or her.

The moderator asks for the piece to be summarized. In this section the only thing discussed is what the piece seems to be about—if being about something is appropriate—or what the group members got from the piece. No criticism is allowed here: The idea is to get only a sense of how the piece was perceived. This is an area in which the creative writers' and technical writers' workshops differ most: The technical writers' workshop, because the texts are largely factual, focuses on the content of the work more than does the creative writers' workshop.

Once the moderator determines that little new information is coming out, the group moves on to discuss what "worked" in the piece, what people liked or found effective. This is the place where positive comments are made.

Once there is nothing new being said, the group turns to improving the piece. Sometimes a participant cannot say how to make an improvement, but the ideal situation is to present a fix along with the criticism—and some technical workshops require all comments for improvement to be in the form of a fix.

Finally, the author is allowed to ask questions of the group—perhaps clearing up points that were made or asking about specific parts of the piece. The author is not allowed to defend the work.

The group then thanks the author.

A workshop for one piece usually takes about forty-five minutes to an hour. Sometimes an author has two or more pieces reviewed, one after another. The duration of attention to a piece and how many of one author's pieces are reviewed in one session vary considerably from workshop to workshop.

There is a variation that allocates about fifteen minutes to each author. These workshops are usually intended for people in an ongoing workshop and who are writing new pieces all the time. The format of the workshop is usually the same as for the longer version, but scaled down to fifteen minutes.

In some workshops, an audience is allowed to observe the workshop in addition to the participant authors. In general, this is a risky thing to do because of the possible embarrassment for the authors.

Despite the apparent simplicity of the writers' workshop, it is remarkably effective. Since 1994, when I introduced the writers' workshop to the software patterns community, there has been a set of yearly technical conferences on the topic of patterns and pattern languages in which the main activity is writers' workshops instead of presentations or freeform discussions.

Besides using the writers' workshop format for creative writing, I have seen it used effectively as a replacement for paper presentations, for trying to improve an organization, and for preparing the collateral material for a product launch including presentations. Participants who are new to the format have commented that it seems to get more information out of the work in far less time and that a standard review process that might require weeks can take place in one or two days.

During the first technical conference based on a writers' workshop, a computer scientist colleague of mine took me aside and asked about the format and where it came from. After I explained it to her, she said that it was remarkable how it brought out twice the content in half the time.

The format of the workshop is designed to simulate the impossible situation of a group of very friendly, intelligent people discussing the piece, with the author's being an unobserved observer. The moderator and the form keep the focus, and the rules keep the discussion friendly and positive.

By just reading a description of the writers' workshop, you may not think that the approach is anything special or that it would work well at all. Even though the workshop format has been used for decades by the creative writing community, if you're not an artist, the workshop seems to be a vehicle for honing some work of self-expression, not the serious code review or marketing review you need to get done pronto. So here's the story of how the idea was introduced to the software patterns community.

In April 1994 the Hillside Group held a retreat at Sequoia Seminars, a small meeting center in Boulder Creek, California—in the Santa Cruz Mountains between San Jose, at the base of the San Francisco Bay, and Santa Cruz, coastal resort town and refuge to aging hippies. Boulder Creek is off the main roads, and the conference center is way up in the redwoods, rustic with a few small cabins with mostly working showers. We shared two or three to a cabin to save money and foster a sense of community. The Hillside Group was founded as a kind of "friends of Kent Beck" organization,* but officially we were aimed at the goal of promoting the ideas of the architect Christopher Alexander—especially the idea of patterns and pattern languages—to the realm of software development. The group was uniform only in sharing a "surfacey" sort of love of Alexander and his ideas, but otherwise we claimed a diversity that was refreshing at the time and unsettling: researchers from IBM and academia, Europeans, gamesters, an Australian, founders of companies, unknown consultants, and fundamentalist Christians. Typical, to an extent, for the times was the absence of women in the group.

The Hillside Group was named at its first meeting, when the members went up on a hillside and, using Alexander's book, A Pattern Language, designed in their heads a building nearby. The Boulder Creek meeting—about six months later—was called to review a draft of a book (later called Design Patterns) and to plan a conference—or at least talk about the idea. Software patterns were then largely unknown to the general software development community, as was the work of Alexander.

Alexander's work in A Pattern Language was to try to find what made some towns, cities, buildings, and rooms beautiful and livable, though he shied away from those words—he used "the quality without a name" and "habitable." Taken as a group, the Hillside Group was not after the same thing, but focused more on what made certain software designs, especially object-oriented designs, special.

Patterns and pattern languages are a form in the literary sense of being somewhat stylized, written expositions explaining parts of design with these desirable qualities. A pattern talks about a context of building and the forces or considerations apparent to the designer's mind at that time and presents instructions on what to build to balance the forces as best as can be done. A pattern language is a set of patterns that can be used to build a whole thing—a room, a town, or a city. And a pattern language can be large enough that it includes other pattern languages within it.

Patterns and pattern languages are therefore about building a literature, and as with any literature, masterpieces are needed along with a way to move people along from readers to novice writers to accomplished writers to masters of the craft. At the time, and ever since, patterns and pattern languages have been a bit outside the mainstream of computer science—perhaps not by much—because software patterns are about describing what works and has worked well rather than finding new ideas. Most existing refereed journals and conferences won't accept submissions consisting of patterns and pattern languages, because those venues value novelty and puzzle solving, which patterns people scorn to a degree.

One way of understanding the situation is to think of patterns and pattern languages as a different paradigm from the one then in place for understanding how to build software. Within the old paradigm, which could be described as formalist, normal work was proceeding by looking at the formal properties of programs, systems, programming languages, architecture, and development practices. Patterns and pattern languages try to look at how to build software based on what has worked beautifully in the past. These practices are written down as a literature with a particular form or in a particular genre—the pattern and pattern language. Because patterns and pattern languages represent a different paradigm from the predominant one, the normal publishing outlets for the formalist paradigm don't recognize the validity—or even the rationality—of the patterns paradigm.

To address these publishing and paradigm problems, we needed a way to build a literature, which meant a publishing outlet, a conference, and a process for developing authors. We viewed as not effective the existing processes for developing scientific and technical writing. We gathered in Boulder Creek to work on this, and to work on the bonding exercises the group came to favor. In this case it was a ropes course—problem-solving exercises, trust-building exercises, and a climb to a platform on a tree where each person did a swan dive into nowhere to be caught by a belay rope held by friends and colleagues.

The conference had been decided on earlier, and a major topic for the retreat was to plan its details. Not many Hillside members at the retreat had much experience planning and running conferences, and of considerable concern was that the conference be unique, reflecting the nature of the patterns movement as we saw it shaping up. I had been involved with writers' workshops in my fledgling career as a poet, and I thought—suddenly, as I recall—that the workshop format might make for an interesting statement of uniqueness. Hillside was trying to build a literature, and the conference was hoped to be a funnel for patterns and pattern languages to be published, so why not use the process that seemed to serve the creative writing community well?

I described the idea and format, much in the way I did earlier in this chapter. Because Hillside is a group of people filled with respect for each other, I was able to describe it in great detail and without interruption. At the end, the group sat in stillness—we were in a large common meeting room with large picture windows looking out onto a redwood grove in mid-April, when the Santa Cruz mountains frequently enjoy a very heavy dew or light rain every night. After a few minutes, one of the members said, "That sucks." One by one, the group explained why they thought the idea was not good and was contrary to the philosophy of Hillside, and those reasons focused on the heavy degree of criticism that the workshop promoted—how this would be disruptive to the process of encouraging people to take risks writing a new literature, and how it was too academic an approach. Because I wasn't sure it was a great idea, I didn't defend it much.

Did I know it would work? In workshops I had attended, I had seen authors hurt and insulted by other authors and by the workshop leaders. I had heard great poets tell beginners that only their closest relatives might want to read their work. I had seen experienced writers who had drifted away from the workshop and ridiculed those who stuck with it. I had seen entire sessions focus on whether it was right to write a particular poem rather than about any of the craft of it.

No, I wasn't sure the writers' workshop would work, because if poets are highly critical of each other, just imagine how critical technical and scientific people could be. Ralph Johnson, though, was sympathetic to the irony of the situation: that my idea was being criticized while the rest of them were concerned about too much criticism in the workshop. He proposed we try it.

No one was eager to be the first victim, but Ward Cunningham had brought a nice pattern language and he volunteered. Mindful of the criticism, and having thought a little about the pitfalls of the workshop and having heard the poets describe it as intending to be a cushioned experience, I moderated that first workshop with tenderness and care—or with what of those things I could muster. We followed exactly the steps described above, and we went through Ward's pattern language, discovering new things, uncovering questions that perplexed us, finding unexplored corners of the work, talking about the writing and the form of the piece. We took about ninety minutes.

When it ended, the room was still again. Outside, the grove of redwoods began to darken and the drops that hadn't evaporated during the afternoon kept dripping down. Bruce Anderson, who was among the more vocal critics of the idea, spoke first, "Well, I must admit the damn thing seems to work quite well, wouldn't you all say?"

There's a concept with much currency in the writers' world that seems to have not made it to most of the technical professions: generosity. The generosity of the group in workshopping Ward certainly came into play, and it was by far the most civil and productive writers' workshop I had ever experienced. Because I had never moderated one before, I had my own fears to attend to. The generosity of that first experience seems to have carried over into the technical community's practice of the writers' workshop.

We spent the rest of the day designing rules so that an audience could watch a workshop, and trying to understand how the whole thing would work. Some of that understanding and later thinking about it is contained in this book.

At that retreat, we instituted a number of practices not typically used at traditional technical and scientific conferences and workshops: the use of the writers' workshop as the only or primary way to "present" papers, shepherding work before and after workshopping it, a book series for publication of the best work at the conference after a further period of shepherding, games as part of a conference in order to set the mood for new thinking, and crowded group accommodations (including sharing rooms) at the conference site so that late-night discussions would be possible. The concept of shepherding—used in technical journals to an extent in the form of editorship—was expanded and strengthened, so that an expert would routinely work with authors for a few weeks or months before the writers' workshop took place.

I've had experience introducing the workshop in two other settings. In 1998, the company I was working for decided to launch a major new product on short notice. It was the practice of that company to marshal lots of material for such launches, which typically took place in an on-stage setting with associated videos and major press coverage. This was an exceptional launch by being larger than normal, but the usual time for preparation was shortened by a factor of two.

We had to prepare a presentation, two white papers, a set of customer scenarios, a stage script, a video, a sales training guide, two brochures, and two press releases. We had marketing people from all over the company from a number of locations and several contract people and contract houses working on it. In a typical launch, all materials are reviewed by most of the core people in the launch team and the marketing people, and each review could take a week or two for proper grueling commentary and responses, with schedules arranged on an ad hoc basis.

Instead, I suggested the writers' workshop. We read papers, watched a presentation, looked at brochure mock-ups, and went through storyboards. Some of what was reviewed was spoken work, some written—along with visual materials. We took one long day to workshop all this. Though not everyone exited the room a confirmed fan of the workshop—marketing people sometimes can be good at criticism and not so good at generosity—all agreed we got more done in that one-day workshop and the one-day preparation for it than in the more typical multiweek process.

The third time I introduced the idea was to workshop the Hillside Group itself as an organization in the year 2000. After six years of good success in promoting patterns and pattern languages, the patterns community had matured faster than the Hillside Group had as an organization. We needed to revise the Hillside Group, and what better way than the writers' workshop? We had an off-site meeting after a conference, and we wanted to revitalize Hillside. After choosing an "author" from the group of founding members attending the meeting, we launched into a writers' workshop. The author began by stating what Hillside was. Next, we summarized what we thought Hillside was and had accomplished over the years. Then we discussed what worked well and what we liked about Hillside and its activities. After that we started to make suggestions on how to improve the organization. Finally, the "author" asked about specific suggestions. Perhaps you can imagine a discussion like this about an organization you are in that seems to be having its difficulties. What is its mission? What would you keep? What are you doing well that could be spread to the rest of the organization? How would you change it? These are the main topics to cover. And for people who are used to the ritual and with how to take advantage of the spontaneous bouncing of ideas off each other, it would seem this would work well. And it did.

In the three cases just discussed, the initial reaction was strong skepticism followed by jubilation at the results. These stories are meant to accomplish one thing only: to convince you that no matter how silly or inappropriate you may consider the idea of applying the writers' workshop to your situation, it might work a lot better than you think and be just the way to get moving.

  • + Share This
  • 🔖 Save To Your Account