I've surprised several colleagues recently with my strong opinion that minimalist documentation is not a good match for some, perhaps many, agile shops, and that instead a basic topic-oriented authoring approach is a better fit. In all cases, their response was essentially "But I thought that minimalism was recommended as the best approach for agile?" I can understand this response, given that minimalism itself is not well understood within the technical writing community at large just yet.
As this article will explain, the key elements of an agile shop that contribute to how successfully you can author in a minimalist style are how large/complex your product is, and whether your product managers maintain detailed strategic feature roadmaps that guide the prioritization of your product backlog (such roadmaps are not a common practice in agile because they can be argued as being too waterfall-like and therefore anti-agile).
A quick review of what minimalism really entails
The Wikipedia blurb describing minimalism as it applies to technical communication is good evidence of this general misunderstanding. This blurb is incorrect in several respects: it focuses on "short task-oriented chunks" and then goes on to list DITA as being based on minimalism. Wrong, wrong, wrong. (By the way, I was one of the active OASIS technical committee members that authored the DITA 1.0 specification.) DITA revolves around three specific things:
- Some ingenious and unique techniques for specializing a generalized XML content model into new content models in a way that enables output processing to back-level its processing code to the style and transform rules of the generalized ancestors, if necessary, without "breaking" the output processing.
- The concept and techniques of using special-purpose MAP elements (often referred to as DITA maps) to enable modular reuse of atomic topic-oriented elements in various publishing output.)
- An authoring methodology called topic-oriented authoring, adapted from Robert Horn's Information Mapping methodology, that centers around three main generalized ancestor content models used in DITA: concept, task, and reference.
Note that you do not need DITA to perform topic-oriented authoring, which is merely a conceptual approach that is a simplified version of Horn's Information Mapping methodology. Also note that topic-oriented authoring has absolutely nothing to do with minimalism. I'll elaborate on this shortly, but the main contradiction is that minimalist topics by their nature will mix all possible information types together in the same "chunk" or "block" of text, whereas in Information Mapping and topic-oriented authoring, you are expected to rigidly and artificially separate information type into different blocks. For example, in the DITA world you would not put procedural or reference information into a concept topic or into any topic that was specialized from a concept topic. This rigid topic typing is very easy for authors to achieve and useful for many information-reuse scenarios, but it's actually very reader-unfriendly in many ways and it runs counter to some basic techniques and principles of minimalism.
It's probably worth noting at this point that I'm well-versed in minimalist principles. I have designed and authored one fully minimalist user guide for a large, complex software product (
Web Content Management for iMIS). I have also been trained in JoAnne Hackos' modern blend of minimalist principles. As a career tech writer with 25 years of experience in the field, I feel that in general, nothing serves end users better than well-designed minimalist documentation and well-designed minimalist product interfaces. Despite this, it's just not
feasible to produce well-designed minimalist documentation in some, perhaps many, agile environments. At least not for a version 1.0 of any new feature set or product.
To understand my assertion, let's first review the most modern understanding and application of minimalism. If you've read only John Carroll's original
The Nurnberg Funnel, you don't have the latest and greatest synthesis and explanation of the principles of minimalism. Instead, you should read
Minimalism Beyond the Nurnberg Funnel (MIT Press). If you don't have immediate access to this book, the following paper presented by JoAnn Hackos at the German HCI conference, Softwware-Ergonomie '99 is a concise summary of modern minimalist principles. (As an aside, If you are a technical communicator looking for hands-on training in adapting these principles to the development of user documentation, I highly recommend the courses offered by JoAnne Hackos' company.)
An Application of the Principles of Minimalism to the Design of Human-Computer Interfaces
The two most applicable principles of minimalism as it applies to user documentation are as follows:
-
Your documentation (and product interface and workflow) should be anchored in the task-oriented domain of the user. In other words, everything you write should be organized and grouped and labeled around a detailed task/work analysis of your target audience and the business processes/goals they are using your software to help them accomplish. Minimalist documentation is not just task-oriented. Instead, it is domain-oriented. You can write reams of task-oriented documentation that has nothing to do with the user's domain that they use your software to support. Instead, you end up with topics that describe how to use each feature of the product. In the tech writing profession we often speak of "task-oriented documentation versus feature-oriented documentation", but the simple truth is that those are not opposing things: task-oriented documentation most often revolves around the granular features of the product and the interface organization of the product and the workflow of the product.
-
Your documentation (and product interface and workflow) should support exploration and self-learning rather than prescribing cookbook procedures for everything. Users always try to use your product in ways you never intended or envisioned. Users all have their own unique mental maps and learning styles and in general learn better when they synthesize their own understanding of how to make your product support their business goals. So in minimalism, you don't prescribe how to do something. Instead, you support typical user patterns of self-exploration within the context of trying to use your software to accomplish a domain-oriented goal.
The net result of these two essential principles of minimalism is that while your topics might look task-oriented on the surface (because their headings are phrased in terms of typical domain-oriented user goals), the content of any of these topics will end up being fairly light on procedural steps and instead heavy on a deliberate mish-mash of concepts, principles, and reference information that attempt to anticipate the questions and problems the reader will have when exploring the product. For any given domain goal "How do I accomplish business goal X with your product", you might need to describe the high level pattern of navigating through several features of your product (a workflow, if you will), anticipate and describe the gotchas and stumbling blocks they might encounter, and most importantly provide them with the essential concepts and details they need to synthesize their own specific answers to questions they have about wrestling your product to accomplish their domain goal. Being too prescriptive and writing a cookbook feature-oriented procedure constrains the thinking process of both the reader and the author.
A well-written minimalist user guide teaches the reader patterns and principles for using your product to achieve their domain goals. Each typical domain goal is the focus of a topic or topic cluster. Within that topic cluster you enumerate the general workflow pattern and you describe the principles and concepts and details needed to support decision making and problem solving they're likely to encounter in the course of figuring out how to achieve that domain goal with your product. Also important is the fact that each such topic/cluster will purposefully omit all the other details that simply aren't germane to the domain goal focus of the topic cluster (or that you could reasonably expect the majority of your target audience to already know or understand). For example, you might have feature X of the product that is used in the process of accomplishing three different domain goals A, B, and C. For goal A, you need to know things about feature X that simply aren't relevant to goals B and C, and similarly for goal B you need to know things about feature X that aren't relevant to goals A and C. In a typical topic-oriented information architecture, you'd have some monolithic conceptual topic(s) or even an entire conceptual chapter (such as "security administration") that you conveniently hyperlink from your nice concise cookbook procedure for defining a widget. But this provides an overwhelming amount of conceptual information that isn't relevant to the one domain goal the reader is trying to achieve. (And studies conclusively show that very few reader types are motivated to wade through any amount of conceptual information so the more you can break up all the complex concepts and spoon feed them as needed ensures better uptake of your conceptual information.) Finally, all of these information types are organically intermingled within each section of the topic--there's no artificial separation into some publishing-system-friendly notion of modular, reusable information types.
All of the preceding is an ideal case. In some situations, your authoring system might hamper you from achieving this ideal. For example, in the
Web Content Management guide that I linked earlier in this article, I had to compromise to some degree on all the typical field reference information. If our product allowed a context-sensitive help architecture at the field level, literally all of the information in my various "Fields:" topics would have been in the product UI itself and not in the user guide. But since we were constrained to put field reference details in the written user guides, it rarely makes sense to duplicate atomic field descriptions in numerous topics unless your authoring system supports that degree of embedded object reuse (otherwise you have a maintenance nightmare on your hands). So in my case I had to compromise on all the field reference info by at least grouping the field definitions under topic headings that were object-centric rather than window-centric. In other words, if you're looking at any product window dealing with content records, there's only one topic to go to within a small set and it's obviously named (and search-friendly) as "Fields: content records".
Why a minimalist authoring approach won't work for many user stories
Alright, so now that we've highlighted what minimalist documentation is really about, why isn't this a good match for an agile development shop? After all, aren't those user stories written from the perspective of a user goal firmly anchored in the task-oriented domain of the user? Doesn't each user story suggest the nucleus for a perfectly usable topic in a minimalist user guide? After all, stories are phrased thus: "AS A (user type) I WANT TO (domain oriented goal) SO THAT (domain oriented benefit to the user)"
No. For one simple reason: most user stories are typically too granular. User stories that get pulled by an agile team have been broken down into some unit that is small enough for the team to accomplish within a short sprint cycle. Most of these user stories are either implied or explicit "chunks" of a larger "epic" user story or sometimes an even larger "theme" user story (comprised of epics). Your product owners and teams involved in writing good user stories for the product backlog might not always consciously realize that most of the user stories on your product backlog are effectively small, granular parts of a larger whole, but that's usually what they are.
The point being that in any one sprint, while developing functionality for any one user story, you very often don't have the big picture view of the entire "real" domain goal that this story will help your users solve. It might take several teams several sprints to finally complete all the granular stories that really deliver the entire epic or theme, and it's that epic or theme that is the entire picture of some domain goal that your users want to use your product to help them achieve.
As an example of this over-granularity of user stories, let's take one of my favorite collaboration tools (
EtherPad) as an example. At one point, EtherPad did not have a feature to show visible line numbers. So at some point, a user story that ended up in their product backlog was probably something like:
AS A collaborative author, I WANT to optionally see line numbers in my EtherPad SO THAT I can verbally direct my collaborators' attention to a specific line for discussion regardless of how long the EtherPad is becoming.
In this example, I ask you how that new feature and its granular story in any way constitutes a user-centric domain goal for collaborating with EtherPad? By itself, it's too small and too granular to be anything more than a basic, intuitive aspect of collaborating with EtherPad. When this feature is added to any minimalist documentation about EtherPad, it would be nothing more than a sentence or a bullet list item in a small section that describes some useful ways you can tweak the behavior of your EtherPad in a much larger topic about actually achieving some typical domain-oriented goal with EtherPad. What if this domain-oriented goal wasn't really visible or clearly understood by anyone (especially the technical writer on an agile team) until many sprints later? What if it wasn't until this new line-numbering feature and several other features that all contributed to making a very long EtherPad easy to talk about and navigate
verbally over voice comms all came together and it finally became obvious EtherPad could now help users accomplish some entirely new domain goals, such as sprint planning? Which of the two following topics is ultimately more
useful to your customers to document?
- "You can now use EtherPad to supercharge your sprint planning, especially among distributed agile teams, and here's how" or,
- "You can now turn on line numbers and here's the procedure for doing so"
Crafting well-designed minimalist documentation requires you to see the 35,000 foot view of your product's features and how they work together to achieve domain goals for your users. You simply don't have this view in some, perhaps most, agile development shops
until you're at the end of a full release cycle. By this point in the release schedule, it's extremely rare that the tech writers will have the time and bandwidth to go back and transform the "finished user doc" from each sprint into a truly minimalist presentation. Instead, the best you can hope for is the ability to add doc-oriented user stories in the subsequent release to spend time transforming the non-minimalist topics from the previous release into something more minimalist. In other words, user stories to transform your v1.0 user doc into a v2.0 format that is more minimalist. Unfortunately, few of us would ever be able to justify spending team capacity on doc-oriented stories like these, especially if writers on a team are also expected to perform non-writing tasks and spend all of their capacity each sprint staying focused on tasks for the stories in that sprint.
So I'm sorry to say that in some, perhaps many cases, well-designed minimalist documentation is only possible in waterfall development shops that produce huge, detailed functional specs with mock-ups of how every feature will look and how process workflow will behave. Only with an up-front 35,000-foot view of the final shape of your product can you talk to your product managers and customers and salespeople and ask them who will be using the product, what domain goals they have, how they think of their work, and most importantly how all these features and workflow that you can point at in the functional spec would need to be used to achieve those domain goals.
As I've detailed in my
Evolutionary Documentation post on this blog, agile development forces your user documentation to grow and evolve alongside the product features as they evolve. While it's less than optimal for the end users of our products, the only feasible way to deliver "user doc ready to ship" at the end of every sprint in an agile environment is by authoring discrete feature-oriented topics, one granular story feature at a time. In this environment, feature-centric, topic-oriented authoring is your best approach to meeting the definition of done for each sprint.
What are the conditions that make minimalist authoring more possible in an agile shop?
Now, before anyone jumps in here and argues that "yes you can use minimalism in an agile shop", remember that I've qualified my assertion with "in most cases...". If your product is small enough, your product managers maintain detailed high-level feature roadmaps, and your product owners really focus on fleshing out one major epic/theme at a time, it might be possible deliver finished minimalist topics at the end of each sprint. This is a lot of "ifs" but let's examine how this would ideally play out.
- Your product managers (or business analysts, etc) maintain detailed strategic roadmaps of features planned for upcoming development. Each such roadmap clearly revolves around enabling your customers to acheive new domain-oriented goals with your product. Most importantly, these strategic roadmaps are visible to all product owners and agile team members at all times.
- Each such roadmap is broken down into user stories at the theme and epic level and these theme/epic stories are clearly documented in each roadmap.
- Your agile teams and product owners work together to break down the epics into user stories that are granular enough to accomplish in the span of single sprints, but every such user storie is clearly tied back to its parent epic in a way that enables every team member to trace any story they're working on back to its parent epic and theme and strategic roadmap.
- Most importantly, your product owners ensure that all the stories that compose an epic are finished as quickly as possible, and all the epics in a theme are finished as quickly as possible, so that everyone is effectively working to "pull an entire theme" from the product backlog and "work that entire theme to a 'done' state" as quickly as possible. No getting sidetracked and only half-finishing a theme by the next release date!
If your agile shop can actually maintain this type of domain-goal-oriented focus in each release, the tech writers have a good shot at incrementally building out a true minimalist topic/chapter/guide from the ground up through each successive sprint in the release. You can still meet the goals for "ready-to-ship" user doc at the end of each sprint by using the following techniques:
- For the first story that relates to a new theme/epic encompassing a minimalist topic center, Set the framework for the topic by expressing the domain goal that is identified in the feature roadmap and the text of the theme/epic. You're effectively setting up an empty "framework" or "template" topic and adding only the text that describes the domain goal that the topic supports.
- In this first story, your team is building out one feature among many that all work together to support the domain goal that the topic supports. For this sprint, flesh out your topic with the information about this one feature that "fits" the context of the topic. And here's the important part: act as if this one feature is the entire way that your product helps the user achieve that domain goal, even though you know that more features are going to be added in subsequent sprints that actually change how you would use your product to achieve that domain goal. At the end of the sprint, you have a minimalist topic that squarely addresses a specific domain-oriented goal and it accurately describes how to use the new feature from this sprint to achieve that goal. Granted, an end user at this point might go "What? That's it? Your product doesn't really do much to help me achieve my goal" if the product were actually shipped at the end of this sprint, but that should be a rare event if your product owners are working carefully to ensure that entire epics/themes are built out before your next release date (or at least that each epic/theme is mostly built out).
- In the next sprint, you pull another story from that same epic/theme, so you go back to that topic and revise it to include everything about this new feature that is germane to the domain-goal of the topic. Again, the key is to wrap up the topic as if the first feature you documented and this new feature together compose the entire way that your product helps the user achieve that domain goal. Never leave any obvious holes or "To be authored" placeholders in the topic. Always assume that none of the other stories/features you know are still left to be done will actually get pulled and built out.
This iterative, evolutionary approach can help you build your user guides from the ground up in a minimalist style, while still meeting a strict "definition of done" for the user doc at the end of every sprint. But again, this is only possible if your product management and your teams are working from some fairly detailed strategic roadmaps that are similar to the type of detailed functional specs you find in a waterfall shop at the start of each new release. Which some agile shops would argue isn't an agile approach.
So what's the fallbackback approach if you don't have this ideal environment?
In this case, your only real approach is to develop all new documentation in two major phases:
- Phase 1: In the sprint where a new feature is built, document it in a topic-oriented, feature-oriented way (because there is no domain-oriented big picture to see at this point). Your procedure topic is named something like "Turning on line numbers in EtherPad" (feature-oriented) instead of "Scrum Planning with EtherPad" (domain-oriented).
- Phase 2: In some much later sprint (or possibly even in a subsequent release), when the domain-oriented applications of this feature and other related features have become clear, you put documentation stories on the backlog that say something to the effect of:
AS A (domain-oriented role name) I WANT the user documentation topics for features A, B, and C to be revised into a minimalist topic describing how to achieve (domain goal X) SO THAT I can clearly understand how the product provides value in helping me acheive my important domain goals.
One final note: minimalist documentation is not faster or easier to write
As a final observation, I want to address another tangential fallacy about minimalism that I often hear repeated. It is not faster or easier to write minimalist documentation. In fact, it requires much more skill and craftsmanship to author minimalist documentation. In the case of my Web Content Management guide, the background was that we had an old product using Cold Fusion technology that we were replacing with a new product using ASP.NET technology that was better integrated with our core product and which set the stage for easier 3rd-party extensions. Overall, the general domain goals supported by the new version of the product were essentially the same as those supported by the old version of the product. The original user doc was written in a more typical topic-oriented manner that was very product-centric instead of domain-centric. It was 504 pages long, spread over two books that were titled (and organized) around the two different products that together delivered our total Web Content Management solution. My minimalist documentation for the new version of the product was a single book titled
Web Content Management (the domain it supported) that was 136 pages long. That's literally 25% the size of the original two books. The new book was hailed as "unpredecented" by one of our VARs demonstrating the new product at our annual user conference shortly after its release.
However, it was hell to write. And it took just as many hours, if not more, than it took to write the 504-page epic that it replaced. Why? because writing in the minimalist style is much more difficult. You are constantly making very hard choices about what's relevant and what's not, and you have to become something of a junior domain expert just to be able to ask yourself the right questions as you're writing it. Anecdotally, at one point two writers were asked to help out by authoring a few of the easiest task-centric topics. They'd had multiple internal presentations about the style and structure of this minimalist doc structure that we were essentially trialing and fine-tuning with this product. They had access to detailed "fill in the blanks" topic templates. They had access to fully completed topics to model their own work against. One of them nailed the style and appropriate content depth. The other didn't even come close; what they wrote was much more traditional and required complete revision on my part. I'm not knocking that writer--they're a strong writer. It's just that they had other priorities and things going on and they weren't getting the hang of minimalism right on the first try. It reminded me of my similar experiences trying to teach a department of writers how to "think" in terms of Information Mapping once upon a time--some folks really had trouble grasping the concepts and techniques. One experienced contract writer even flat out refused to do it, saying it was "a stupid approach" after they became frustrated.
So the point is that minimalism is about improving the end-user experience and removing all the bloat that our more typical authoring methodologies produce. Minimalism is not about speeding up the authoring process or making it easier in any way. Quite the opposite.