Home About Contact Podcasts Writer River WordPress Consulting Advertising

How Much Should You Document? Everything? Strategies for an Agile Environment

September 9th, 2008 | Posted in Technical Writing |

In a recent IT Author podcast (”Documentation and Agile Development“), Alistair Christie and Graham Campbell talk about agile development and its impact on documentation. One consequence of working in an agile environment, they say, is the need to prioritize your documentation, to deliver instructions for only the most important or confusing features.

Presumably, some agile environments move so fast, you have to triage what you document because there’s no time to document everything.

How much should you document? Everything?

How much should you document? Everything?

Alistair explains that you can’t document everything, and he quotes from Martin Fowler’s “The Almighty Thud.” Fowler, however, takes the argument one step further, arguing that you shouldn’t document everything. Fowler writes,

If you document everything, you are giving everything an equal weight. Do that for a complex system, and you are buried in detail. In any system there are some aspects that are more important than the others, key aspects of the system that once understood, will help someone to learn more. The art in documentation is to find how to document these aspects as clearly as possible. In this you emphasize these areas, and leave the details for the code.

If you document everything, you end up giving everything equal importance and losing focus on the key tasks and concepts users need to learn. You need a focal point, a selection of core tasks that receive prominence and make everything else intuitive.

Fowler continues, citing his own approach to the article he wrote as an example:

As I started to write this article I was overwhelmed by the things I could talk about. Lots of anecdotes and tips came to mind. But I know that to get you to read and remember this article I could only talk about a few of them. I had to select the key things that I had to mention. Communication is all about that. The key to good communication is to highlight the important things to say. Saying everything is not communication. That just passes the selection of the important things onto your readers, and discourages them with a heavy document. That selection of information is one of the most important parts of communication, and it is the responsibility of every designer.

I agree that selection is key to crafting any article. Were his article 20 pages, I wouldn’t have read it so eagerly. Instead, because it’s 2 pages, I did read it.

Alistair says that when you give someone a huge manual (one that makes a thud when you set it down), it makes the user’s heart sink. “They don’t think, Oh, that’s great. No, they think oh, This looks grim.”

Bloating the table of contents with dozens of non-essential topics reduces the focus on what customers need to be concerned about. Each additional word you add dilutes the importance of the other words. “The more you document, the less people read,” Alistair says.

We all know that if you give someone War and Peace, they’ll probably never read it. But give them a short story and they read it the same afternoon.

No one disagrees with brevity. Almost all users want concision. However, writing an article is different from writing a help system. In a help system, I do think almost all the features should be documented — somewhere.

If you limit the help topics to just the core topics, what happens when the power users search for an advanced question and find nothing? What happens when Joe user wants to know how X widget functions? Is our response simply, “Sorry, we didn’t think that feature was important enough to document”?

Fortunately, this whole dichotomy between (a) documenting everything and overwhelming the reader and (b) selecting what to document and risking absent information is an Either-Or fallacy. It is possible to both document everything and give the user a brief guide. Simply, document everything in the online help. Then create a quick reference guide to give to the user.

Am I missing something?

To avoid the disheartened look on a user’s face as the two inch manual makes a thud on his or her desk, reduce your printed manual to a much smaller subset of the online help, rather than duplicating it. Remove all the low-priority topics. Let the reader know that full documentation is in the online help.

Since users don’t typically read manuals anyway, they’ll welcome this approach. No one has ever said to me, Tom, this guide feels a little thin. Couldn’t you add more to it?

Fowler’s advice to avoid documenting everything may reflect what he was documenting as well as his time. Fowler was documenting code, which has layers upon layers of depth. But he didn’t say to leave out documentation, just to “leave the details for the code.” You can add little notes here and there in the code using slashes.

Also, Fowler wrote his article back in 1997 — more than 10 years ago. At that time, I’m not sure he had all the single-sourcing capability we currently have. Perhaps producing subsets of documentation (or multiple manuals for different roles) was too difficult.

I’d be curious to hear your approach. Are you over-documenting? What’s your approach to reducing the “thud” while still delivering complete documentation?

Additional Resources

RSS Subscribe


Related Posts

Tags: , , , , , , , ,


Comments

You can leave a response, or trackback from your own site.

20 Responses to “How Much Should You Document? Everything? Strategies for an Agile Environment”

  1. Thanks for the thoughtful post, Tom. I’ve had a similar reaction to yours.

    You quoted Fowler: “If you document everything, you are giving everything an equal weight.” - Uhm, no. I’d say you didn’t structure your documentation well. If you give everything an equal weight, you’ve written encyclopedic reference documentation, but neither instructive conceptual documentation nor guiding procedural documentation. While reference documentation allows (or requires) equal weighting, it’s unsuitable to teach concepts, tasks or procedures. (See Thomas Barker’s _Writing Software Documentation_ about the three types of documentation, http://www.writingsoftwaredocumentation.com/).

    It may be a strategic decision in agile development to favor one type or omit another - but you should be aware of the cost of being complete or instructive or both.

    Along these lines, I think that “fear of the thud” is really asking our users to judge the book by its proverbial cover. I don’t care how thuddy the documentation is as long as I can use it quickly and comfortably. Give me clear and quick access to relevant task documentation in the front, and I’ll confidently use the reference documentation in the back - even if the whole thing clocks more pages than Tolstoy.

    I also object to adapting scope and process of the documentation to the development process as opposed to user requirements. I’m documenting a commercial software system that’s highly complex, but also developed on a tight schedule. I can’t see that users would be glad to go without comprehensive help because it didn’t suit our development timeline.

  2. I agree with both of you.

    I was very impressed with the “task-support clusters” model that Mike Hughes wrote about here http://uxmatters.com/MT/archives/000190.php/
    See Figure 1 in particular for the structure.
    You can get immediate assistance: “How do I do this?”
    Or you can dive into the reference information or “deep concepts.”

  3. Mike Wethington Says:

    Tom:

    As a Scrum Practitioner and a writer, I advocate writing along strict minimalism lines. In the talk circuit I’ve been on lately this has had mixed reactions from the writing community.

    The biggest advantages to Scrum occur when you bring customers in early in the process to review what you are doing. They can then help set the priority of what they will be using the product for and guide you to areas where the doc needs to be ‘bullet proof’.

    In most other cases, I advocate the 80/20 rule with the acceptance that customers will complain but Scrum allows me to quickly and easily address their complaints/concerns.

    In an Agile/Scrum environment you don’t have time to fill out the edge cases. You’ll need to accept the fact that the edge cases will come to you and that you can fix them when they occur.

    Its a hard pill to swallow but its also the key to survival working with light-speed development.

  4. Not everything that you write with fit into a printed/PDF manual or the online documentation. I’ve found that a good place for the leftovers (so to speak) is a knowledge base and/or a supplementary documentation site like a wiki.

    Of course, you’ll run into problems there — like managing too much information, or dealing with stale information. It adds to your workload but also helps to ensure that the documentation set is as complete as you can make it.

  5. @Kai, I appreciate your comment on this post as well as on others. Also, thanks for the link to the Writing Software Documentation book. I’ll have to check it out. Actually, that gives me an idea for another post.

    Re structuring your document to give it emphasis, I agree, but this of course takes skill. Usually we organize like topics in the same sections, right? So if you have one section with 10 topics, only 2 of which are essential, where do you put the other 8? In a reference section at the back?

  6. @Holly, thanks for the link to the Mike Hughes article. The more I read from him, the more genius I think he is. The UX Matters publication has excellent information as well. Thanks for pointing me in his direction.

  7. @ Mike, working at light-speed development seems interesting. I work in an agile environment, but the iterations are only every 2 months or so. I suppose it’s a modified agile methodology.

    One thing I’m curious about. With frequent releases, does QA testing get cut short? How do you ensure you get all the bugs out? Or is buggy software part of an agile development? It seems like the frequent release cycle requires QA to dedicate more effort than lengthier iterations. (I know that has nothing to do with writing.)

    One thing that has been invaluable working in an agile environment is to be embedded in project teams. Because changes occur so rapidly, without formal requirements docs, writers need to be there when the informal conversations go down, so to speak. It doesn’t work if you’re sitting in another department or area.

  8. @Scott, I agree that a knowledgebase is a good location to put this information. Post-release there are dozens of miscellaneous topics and addendums and notes to add to the help. I’ve just been adding this information in an FAQ topic at the end of the online help book. The problem with a separate wiki or knowledgebase is that the search is not integrated with the help.

  9. I really enjoyed all the comments on this post. You guys enrich and deepen my understanding all the time. This is another argument to keep writing, even if I’m not an expert on the topics I’m approaching.

  10. Tom, I agree, it DOES take skill and experience to get the structure and the emphasis right. I think “doing it well” contributes as much to one’s career advancement as “doing it all” by keeping up with all HATs as you’ve discussed with Heidi and Charles in your recent podcast.

    So what to do about 10 topics, only 2 of which are essential, where do you put the other 8? One solution is to prominently offer users different paths through the documentation (you’ll see Barker doing that in his book to an obstinate degree): “If you’re reading to get started/to cover the common use case, follow procedures 1 and 2. If you need advice on scenario A, follow procedures 1 through 5. For scenario B, follow procedures 1, 2 and 6 through 10.”

    If you use MadCap Flare, you can either quickly create custom documents for all three cases. Or you can offer a specific “secondary” TOC for such a use case.

  11. Gary Franceschini Says:

    @Kai: “One solution is to prominently offer users different paths through the documentation…”

    It is a solution; but whether desirable is another matter.

    In short, pathways ask the user to 1. stop what they’re doing, 2. perform a task analysis on a task they don’t perfectly understand, then 3. select a path through a document that may or may not describe their needs in toto. Such an approach seems intimidating.

    @ Tom: Our documentation follows minimalist design patterns. Primarily we document what we perceive as pain-points for the user. Inline support is preferred, but where a longer article is needed we try to keep it to ~250 words max. Both of these are informed by our team’s involvement in designing the interface (we are very pleased when no documentation need occur).

  12. [...] Johnson offers from strategies for documenting in an Agile environment — document [...]

  13. Lots of interesting thoughts here. I’m glad our podcast help to kick off such a good discussion.

    True, online help allows you to document everything without the accompanying heart-sinking “thud” of a huge printed manual. But for us the issue is always: what are we going to document given our extremely limited resources?

    For us, not only do most users never read the printed manuals, but most of our users never even clap eyes on a printed manual. So, although we are under fairly constant pressure to produce printed manuals (because of management expectations that there ought to be a stack of printed manuals because there always have been in the past), we try to keep uppermost in our minds: what are the users going to find most useful. And, much of the time, we have to narrow this down further to: what do users really NEED.

    The great thing about doing documentation within an Agile team is just the fact of being embedded within that team and documenting alongside the developers with the aim of producing great documentation for each release. Prior to working in this way, we often did documentation retrospectively, so the docs sometimes lagged a release (or two) behind the software.

  14. Documenting Installation / configuration / anything with command-line or code snippets, I document everything.
    Documenting UI, however, I document less and less, leaving the reader room for exploring the UI on their own.

    avis last blog post..המטבח האובייקטיביסטי * האולטימטיבי

  15. I’ve been pondering this for a while, since hearing the podcast as well.

    The “THUD” is outdated IMHO, and whilst I may be lucky that we don’t print our manuals, we still have a 900-odd page beast of a Developer’s Guide to maintain. We’ve yet to tackle cutting that down as, because we work in an Agile environment, we struggle to find time to do the ‘non-writing’ tasks.

    But we do try and document everything. Rather than making a cut of “do or don’t” we try and make it “lots or little”, and whilst we occasional get the balance wrong, I’d much rather a user complained that the documentation was missing information rather than just “missing”!!

    One downside to Agile is the entire focus on the software, testing is usually included (or should be) as part of test-driven development, but as yet I’ve not heard much mention of documentation-driven development… other than a blog post or two.

    That said we are currently re-positioning the writers further up the information stream. Currently they sit with the development team, and document ’stuff’ as it is built (with a lag of a day or two). In the future we will write the user stories that the developers will then break down into tasks. In other words, we will write up the conceptual topics FIRST, before any other work starts.

    That should allow us to get a good handle on the amount of documentation required for a given concept. However it does presume you have the correct ratio of writers vs developers, and yes, it is higher than you think!

    Gordons last blog post..UA Conference

  16. [...] former co-worker) a tome? Do you need to document everything? Tom Johnson convincingly argues that you should, but not put every bit of information into a single [...]

  17. [...] How Much Should You Document? Everything? Strategies for an Agile Environment [...]

  18. @ Gordon, Thanks for the detailed comment. I hadn’t heard the phrase “documentation-driven development” before. Is that a situation where the tech writer is basically merging the use cases/design docs with the help? In other words, the developers look to the help material for their prototype and design info? If that’s the case, it seems like developers would have to be strict in adherence to what they read; otherwise all the changes would drive the writers crazy. I hope you’re enjoyed the UA conference over there.

  19. @ Alistair, Thanks for the comment. I really enjoy listening to your podcasts — I hope you maintain your current pace. I can see how limited resources would force the question of what to document. I’m also in an agile environment, albeit a bit slower one. I ensure the main features are documented at the time of release, but since I publish the help independently of the application code, I can always go back later and add more details. I often add the video tutorials after the release because there’s just not time to create them the week before, especially when the UI is still in flux.

  20. [...] How Much Should You Document? Everything? Strategies for an Agile Environment [...]

Leave a Reply