If you want developers and end-users to get as much value as possible from your software, you need to create high-quality software documentation.
But what is software documentation really, and how can you go about creating it for your project?
In this post, we’re going to dig into everything that you need to know about software documentation, including the following:
- What is software documentation?
- The different types of software documentation (with examples)
- How to publish your software documentation (the best tools)
- Some best practices for creating quality software documentation
Let’s dig in!
What Is Software Documentation?
Software documentation is content that helps end-users, developers, and/or your employees understand your software and use it to effectively accomplish their goals.
Typically, you’ll publish the software documentation on your website. People can then access it to learn more about your software and how it works.
Within that broad definition of software documentation, there are different types of software documentation. Let’s discuss that next.
The Different Types of Software Documentation
You can roughly divide the different types of software documentation into a few broad categories.
The first consideration is what type of person the documentation is intended for:
- User documentation – this is documentation that you’ve created for the end user of the product. It helps them understand how to use your software from the perspective of a regular user, who may or may not have any special technical knowledge.
- Developer documentation – this is more technical software documentation that you’ve created for developers, such as API documentation.
The second consideration is whether the documentation is intended for external or internal audiences:
- External software documentation – this is public-facing documentation that you’ve created to help your users.
- Internal software documentation – this is private documentation that you’ve created for your employees to help them work more effectively and understand key details.
For example, you might have one set of developer documentation for your internal teams to help work on the software and another set of public-facing developer documentation for external developers.
Let’s break down these types of software documentation in a little more detail…
Software Documentation Examples for Developer Documentation
- API documentation – show developers how to interact with your software’s API.
- Readme – introduce your software and explain what it does – typically the first thing people read.
- Release notes – document new releases of your software, including any important changes.
- Architecture documentation – show the structure of your software, potentially including diagrams.
- Data model documentation – document the different data structures in your software, including the relationships between different data structures.
- Process documentation – document key processes such as bug reports, roadmaps, quality assurance, testing protocols, and so on.
For a real software documentation example of developer-focused docs, you can look at Gravity Forms’s “Developers” documentation that covers various topics such as:
- PHP hooks (for WordPress)
- Data objects
- PHP API
- REST API
For example, here’s what the REST API documentation looks like:
Software Documentation Examples for User Documentation
- Getting started guide – show users how to quickly get up and running with your software.
- Tutorials for specific use cases – more specific tutorials for accomplishing specific tasks.
- Term glossaries/reference manuals – help users understand key terms and details.
- FAQs – answer commonly asked questions.
For a real example of what more user-focused software documentation might look like, you can turn to the same Gravity Forms example from above.
If you look at Gravity Forms’ more user-focused articles, you’ll see lots of step-by-step tutorials on how to achieve tasks using the software interface, along with glossaries and explanations of key features.
As compared to developer software documentation, you’ll see more screenshots and plain language explanations and a lot fewer code blocks.
How to Publish Software Documentation: Three Best Software Documentation Tools
To publish your software documentation on your website, you’ll want a dedicated software documentation tool or some type of knowledge management system.
In this section, we’ll quickly cover some of the best software documentation tools. Then, in the next section, we’ll go over some best practices for creating quality documentation.
Heroic Knowledge Base
Heroic Knowledge Base is a documentation and knowledge base plugin for the popular open-source WordPress software.
With Heroic Knowledge Base, you can self-host your documentation and maintain full control, while still accessing all of the features that you need to create effective software documentation.
Here are some of the core features that you get with Heroic Knowledge Base:
- Flexible content editor, including built-in blocks for callouts and other important style details.
- Automatic table of contents so that users can quickly see what content is covered in a documentation article and jump to specific sections.
- Revision control and version history via the native WordPress revision system.
- Content discovery features including real-time Ajax search with live suggestions, categories, and more.
- User feedback system that lets people rate articles as helpful or unhelpful and share feedback.
- Search analytics so that you can see what users are searching for, as well as any search terms that return zero results.
- Instant answers widget to let users search and access software documentation from anywhere on your site.
Because Heroic Knowledge Base and WordPress are both self-hosted and open-source, you’re also free to modify your setup as needed.
Heroic Knowledge Base starts at just $149 per year.
Read the Docs
Read the Docs is a documentation tool that’s focused on helping you create developer documentation.
If you’re specifically focused on creating technical developer documentation, it can be another good option to consider.
You can manage your content and revision history using Git and then deploy your docs to a frontend interface.
Here are some of the other notable features in Read the Docs:
- Built-in analytics to see what your users are reading and searching for.
- Supports multiple concurrent builds, which can be helpful if you offer multiple versions of your software – e.g. one set of documentation for version 1.0 and another for version 2.0.
- Export documentation in different formats including PDF, HTML, and epub.
- Live search suggestions to help users find documents.
Read the Docs is free to use if you have an open-source software project.
For commercial software products, there’s a paid Read the Docs for Business service that starts at $50 per month.
GitBook is another technical software documentation tool that lets you manage your documentation using Git, with support for both GitHub and GitLab repositories.
Or, if you don’t want to use Git, GitBook also lets you create your documentation using a text editor or import it from markdown or .doc files.
Here are some other notable features that GitBook offers:
- Version control to keep track of revisions and version history.
- Live team editing which is helpful if you need to have multiple authors collaborate on articles.
- Organize articles using “spaces” and “collections” – each space can have multiple collections inside it.
- PDF export option so that users can easily export your documentation as a PDF download.
GitBook is free for non-profits or open-source projects.
For commercial software projects, GitBook starts at $8 per user per month, with a minimum of 5 users. That means the cheapest monthly rate is $40 per month.
Best Practices for Creating Software Documentation
To finish things out, let’s dig into some software documentation best practices to help you create effective documentation.
Think About Users’ Goals and Needs
When you’re writing a software documentation article, it’s important to start by answering a few basic questions:
- Who is the user that you’re writing for?
- What is the user trying to accomplish?
- What level of technical knowledge does the user have?
Knowing the answers to these questions will help you understand what content to cover and how to structure the article in the most optimal way.
For example, let’s say you offer social media scheduling software and you’re writing an article that helps social media managers schedule their first social media post.
When writing your software documentation, you would want to focus on showing the most straightforward way for a regular end user to accomplish that goal.
If you also offer an API to let developers set up their own integrations, you would probably want to cover that in a different article (though you might mention and link to that method).
Include Software Documentation in the Development Process
When you’re creating software documentation, it’s easy to fall into the trap of waiting until a project is completed to document it.
However, this can quickly lead to documentation debt because you might be shipping new features or changes before they’ve been documented.
To avoid this, make software documentation a conscious part of the software development cycle. If a new feature or product hasn’t been documented yet, it’s not ready to ship even if the code itself is finished.
By making documentation a core requirement of the software development process, you can ensure that everything you ship is accompanied by proper documentation.
Use Consistent Formatting and Style
To help people work more effectively with your software documentation, it’s important that you use consistent formatting and style across all of your documentation.
Using the same formatting lets readers learn how your software documentation is structured, which will make it easier for them to quickly access the information that they need.
To help achieve this consistency, you might want to create a dedicated software documentation style guide.
Your software documentation management tool might also include features to help you achieve consistent styling.
For example, the Heroic Knowledge Base plugin includes pre-styled callouts to highlight key information or warnings. By using these, you can ensure consistent formatting across all of your documentation.
Use Experts To Write Technical Documentation
For user-facing software documentation, you might not need subject matter experts to write the content.
However, for more technical software documentation, such as developer-focused API documentation, you’ll likely want to assign someone with the relevant technical knowledge to write those documents.
This could be a dedicated technical writer with domain expertise, if your organization has the resources to hire for that position. Or, it could be one of your developers.
The important thing is that the writer understands the technical aspects of your software at a deep enough level to explain it to other technical users.
Make It Easy for People to Discover Content (Search/Filter)
As your library of documentation grows, it will become more difficult for users to find the documentation articles that address their needs.
To try to avoid this issue, you’ll want to focus on improving the discoverability of your software documentation.
One first strategy is to divide your documentation by type.
For example, you’ll typically want to separate your end-user documentation from developer software documentation.
Within that, you can also use categories to further divide articles. You can use categories based on features, use cases, add-ons, and so on – whatever makes logical sense for your software product.
In keeping with the same Gravity Forms example from above, you can see that Gravity Forms divides its end-user documentation by feature types.
Another useful discoverability feature is live search suggestions. Users can start typing a relevant query into the search box and instantly see documentation articles that match that query.
Many documentation tools include built-in live search functionality, including Heroic Knowledge Base.
Keep Your Software Documentation Updated
Because your software is always changing, your software documentation will always be a work in progress.
As things change in your software, you’ll need to promptly update your documentation to reflect those changes.
Otherwise, your documentation won’t just be “not helpful”, but it could be actually creating confusion in your users.
To make sure these updates happen, you’ll want to assign specific people to own the documentation and update process. That way, there’s no ambiguity about who’s responsible for keeping everything accurate.
Use Customer Feedback To Improve Your Documentation
In addition to having your own team work on reviewing and updating your software documentation, you’ll also want to factor in customer feedback.
Customers can provide valuable information about how helpful (or potentially unhelpful) a certain software documentation article is, along with details on how you might improve it.
To automate the customer feedback process, you’ll want to look for a documentation management tool that includes built-in features for customer feedback.
For example, the Heroic Knowledge Base plugin lets users rate an article as helpful or unhelpful and also optionally provide free-form feedback.
You can then view all of this information from your dashboard to quickly spot documentation articles that you need to improve.
Start Documenting Your Software Today
Software documentation helps you and your customers work more effectively and get more value from your software.
There are different types of software documentation, so you’ll want to think about which types match your software project’s needs.
You might have different documentation for internal or external teams, as well as for different types of customers, such as developers vs end users.
To create effective documentation, you’ll want to follow the best practices from this post.
To publish that documentation, you can use an open-source tool like Heroic Knowledge Base, which is based on the powerful WordPress software.
You’ll get the flexibility and ownership of a self-hosted platform, with all of the features and functionality that you need to publish high-quality software documentation.