Home > Articles > Programming

Using a Writers' Workshop to Improve Software Patterns

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.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020