“Writing is a form of thinking, whatever the subject,” says William Zinsser (Writing to Learn). If, as Zinsser says, learning to write well is critical to learning well, then agile team members might do well to work on their writing skills.
The entire results of software projects are writings. Whether the output is executable code, test scripts, requirements documents, training plans, or project status reports, they are all, in some fashion, writing. Writing is both a form of thinking and the results from that thinking—and unfortunately, technical education programs rarely focus on writing skills. Zinsser writes, “My hope was to demystify writing for the science types and to demystify science for the humanities types.” His working hypothesis is that “Writing and thinking and learning were the same process.”
Consider two of the long-standing problem areas in software development—requirements specification and code development. Requirements specifications are fraught with misunderstanding, a portion of which could be clarified by better writing. In his book, Exploring Requirements, Jerry Weinberg discusses sources of ambiguity. Weinberg asks classroom participants to recall and write down a question they were shown a few minutes before. He then lists at least 25 variations on the question that participants came up with and calls this phenomena “problem statement ambiguity.” This was a simple one sentence example. What are the possibilities for mis-interpretation in a 100-page requirements specification that must be read and interpreted by a 20-person development team? Better writing won’t completely solve the ambiguity problem, but it may reduce its size.
Anyone who has ever read code realizes that there are many ways to solve the same problem—some of them truly awful. Writing good code—code that is simple, straightforward, and easy to understand—is as much a “writing” skill as writing a coherent article or book.
Zinsser believes that good writing can make any subject interesting and available to a general audience. Take for example John McPhee’s book Assembling California, which delves into California’s earthquakes and other complex geology in a way that fascinates readers. Zinsser points out that good writing and good learning go together, “Writing organizes and clarifies our thoughts. Writing is how we think our way into a subject and make it our own.”
Writing is hard work. Sometimes we write about what we know. Sometimes we write about what we are thinking—to attempt to clarify that thinking. Zinsser, “Ambiguity is noise. Redundancy is noise. Misuse of words is noise. Vagueness is noise. Jargon is noise. Pomposity is noise. Clutter is noise: all those unnecessary adjectives (“ongoing progress”), all those unnecessary prepositions draped onto verbs (“order up”), all those unnecessary phrases (“in a very real sense”). Information is your sacred product, and noise is its pollutant.” We are in the “Information” Technology business. We have to separate information from noise. Learning to write well should be on every agilist’s career development list.