People occasionally ask whether I can help their software development team improve their documentation. As with all consulting questions, I initially respond that it depends, and we should talk.
The rest of this article provides a checklist of questions for an initial discussion about software documentation. These questions should generate useful discussions that will identify challenges and uncertainties. Questions that you cannot answer correspond to uncertainty risk.
Contact me if you’d like to have an obligation-free documentation discussion.
First, think about which problem you want to solve.
Which of the following problems do you experience?
- The documentation you have doesn’t deliver value
- The documentation you’ve written costs too much effort to maintain
- The team lacks experience with producing documentation
- No-one wants to write and maintain documentation
- You don’t have any documentation at all
- How much management- or executive-level visibility do these problems have?
- Has documentation become a political issue?
Next, identify which outcomes you want to achieve.
Which of the following do you aim to achieve with documentation?
- Knowledge preservation, e.g. to mitigate the risk of people leaving
- Efficient knowledge transfer, e.g. for new joiners
- Collaboration with stakeholders outside the software team
- Tangible deliverables or other proof of work
- Legal compliance
- Product differentiation
- How will you know if you have achieved these goals?
- What happens if you don’t have this documentation?
Now focus on whose needs you would address.
Who will the documentation target? For example:
- Internal developers
- Other internal stakeholders
- Software users
- Technical partners and their developers, e.g. API users
- How many people in which roles will read it?
- How will they use it? When, and how often?
- Are your teams co-located or distributed? Office-bound or remote?
Next, think about how to narrow the problem scope.
What do you intend to document, to start with?
- Software design and implementation
- Data models
- Public APIs
- Business rules
- Business processes
- How much of this documentation do you already have?
- Which aspects of your existing documentation work? Which don’t?
Now consider the how the software to document affects the context.
- How many years did the system go into production?
- How many more years will its planned lifetime last?
- How big is it?
- Which aspects of the system exhibit above average complexity or complication?
- How would you rate the system’s maintainability?
Finally, evaluate how much documentation you can have, and what quality level you can expect.
- How many people, in which roles, can spend up to half an hour per week contributing to documentation?
- How many of them have experience producing technical documentation?
- How many of them want to write documentation?
- How many of them can spend up to half a day per week?
- Do you have budget to hire a full-time technical writer?