Tools for Writing Documentation

Software technical documentation software may seem useless when you are just starting out, but once you start developing software and adding new features it becomes essential to have a place where you can store all of your documentation.

Knowing how to write technical documentation is essential for software engineers and IT professionals. This is because documentation helps users/clients of a software/IT system understand how to use the software and its features. Also, if there are any change in the feature, it can be reflected via the documentation. Today, in this article, we’ll look at some of the best tools that can help you create professional-quality technical documentation.

You might think of software documentation as boring, but there are actually many ways to spice the text up. Yet not many know of the resources available, and go on to write boring documentation just because they don’t know any better. But what this comes down to is creating how-to manuals that are fun to read.

If you’re curious about software to create technical documentation or looking for software technical documentation examples, you should read this article on software documentation tools. Software technical documentation is an important part of every software. Even though it’s not as glamorous as some parts of the code, it’s very important and serves a crucial role.

What is software documentation?

In the software development process, software documentation is the information that describes the product to the people who develop, deploy and use it.

It includes the technical manuals and online material, such as online versions of manuals and help capabilities. The term is sometimes used to refer to source information about the product discussed in design documentation, code comments, white papers and session notes.

Software documentation is a way for engineers and programmers to describe their product and the process they used in creating it in formal writing. Early computer users were sometimes simply given the engineers’ or programmers’ notes. As software development became more complicated and formalized, technical writers and editors took over the documentation process.

Software documentation shows what the software developers did when creating the software and what IT staff and users must do when deploying and using it. Documentation is often incorporated into the software’s user interface and also included as part of help documentation. The information is often divided into task categories, including the following:

  • evaluating
  • planning
  • setting up or installing
  • customizing
  • administering
  • using
  • maintaining

Why is software documentation important?

Software documentation provides information about a software program for everyone involved in its creation, deployment and use. Documentation guides and records the development process. It also assists with basic tasks such as installation and troubleshooting.

Effective documentation gets users familiar with the software and makes them aware of its features. It can have a significant role in driving user acceptance. Documentation can also reduce the burden on support teams, because it gives users the power to troubleshoot issues.

Software documentation can be a living document that is updated over the software development lifecycle. Its use and the communication it encourages with users provides developers with information on problems users have with the software and what additional features they need. Developers can respond with software updates, improving customer satisfaction and user experience.

Types of software documentation

The two main types of software documentation are internal and external.

Internal software documentation

Developers and software engineers create internal documentation that is used inside a company. Internal documentation may include the following:

  • Administrative documentation. This is the high-level administrative guidelines, roadmaps and product requirements for the software development team and project managers working on the software. It also may include status reports and meeting notes.
  • Developer documentation. This provides instructions to developers for building the software and guides them through the development process. It includes requirements documentation, which describes how the software should perform when tested. It also includes architectural documentation that focuses on how all the components and features work together, and details data flows throughout the product.
lists of different types of software requirements
Software requirements are detailed in internal software documentation.

External software documentation

Software developers create this documentation to provide IT managers and end users with information on how to deploy and use the software. External documentation includes the following:

  • End-user documentation. This type gives end users basic instructions on how to use, install and troubleshoot the software. It might provide resources, such as user guides, knowledge bases, tutorials and release notes.
  • Enterprise user documentation. Enterprise software often has documentation for IT staff who deploy the software across the enterprise. It may also provide documentation for the end users of the software.
  • Just-in-time documentation. This provides end users with support documentation at the exact time they will need it. This allows developers to create a minimal amount of documentation at the release of a software product and add documentation as new features are added. It is based on the Agile software development These can be knowledge bases, FAQ pages and how-to documents.

Best practices for creating software documentation

There are six common best practices for creating software documentation. They are the following:

  1. Understand user needs. Developers must understand user needs and pain points from the start of the development process. The documentation should address those needs and provide help around pain points.
  2. Write easily understood documentation. Documentation should be concise, simple and avoid complex jargon. It should use terms and phrases that the intended audience would use.
  3. Include internal subject matter experts. It can help to have experienced team members and subject matter experts in the software documentation process to ensure that it is accurate.
  4. Use analytics feedback. Analytics applications provide important feedback that can be incorporated into documentation.
  5. Ask for user feedback. After a release, ask users what they liked and disliked about a software product and use the input to improve both the product and its documentation.
  6. Provide continuous maintenance. As software is updated and maintained, the accompanying documentation should also be updated. Teams must constantly improve documentation as IT and user questions reveal additional needs.
diagram of Agile development lifecycle
Software development methodologies such as Agile follow a continuous cycle of development and improvement. Software documentation should follow a similar continuous improvement cycle as new features are rolled out.

Examples of software documentation

Some examples of software documentation include the following:

  • System documentation. This includes architectural diagrams that detail the structure of the software and its technical design.
  • Application programming interface (API) documentation. This is the reference documentation for calling APIs. It establishes standards for API communication and ensures that different APIs work smoothly together.
  • README files. A README file is a high-level representation of software that usually comes with the source code.
  • Release notes. Release notes review the new features and bug fixes included in each release of a software program.
  • How-to guides. These take IT staff or end users through the steps needed to deploy or use the software.
  • Tutorials. Tutorials take users through a series of steps to learn how to use the software or about a specific feature.
  • Reference documents. These provide IT and end users with technical documentation of the software.
  • Explanations. These clarify a particular element of the software for the user.

Software documentation tools

Various tools help vendors and developers automate the documentation process. Some important features of leading software documentation tools include the following:

  • Markdown and HTML support. Markdown and HTML are two programming languages that software documentation is commonly written in. Markdown is an abbreviated form of HTML.
  • Feedback. A good documentation tool will have the option to collect and review user feedback. In some cases, users contribute entire code examples. This feature may connect users and developers via email or a comments option. Some tools allow users to look at and make changes to certain code.
  • Access control. This feature enables multiple documentation writers to contribute to one piece of documentation. It controls access with roles and permissions.
  • Click-button APIs. With this capability, users are able to run APIs from the documentation.
  • Table of contents. Documentation tools should enable writers to create a table of contents to simplify navigation.
  • Publishing control. Writers can publish and unpublish pages as needed.

Click here to access the Development Process!

To get this template, either log in and add it to your dashboard, or sign up for a free trial.

This template is a perfect example of a process that you can follow every time you want to build and deploy a new or updated piece of code.

It has clear steps that will guide you through the whole process, from creating a branch to work in, to putting your changes live. These steps will make sure nothing gets missed and that the entire process goes smoothly, every single time.

We’ve designed this template to be used as a guide to help you create a development process that works for you. Every company is different, every software project is different, and every development process is different.

You can edit this process and add in the tasks that are relevant to you, your company, and your project.

This brings me back to software documentation. You could add ‘software documentation’ as a task into this development process, or any other process you create. That way, anyone working through it will be reminded and encouraged to complete it, as part of the process.

I’ve got a few more premade process templates that might be of use to you, which I’ll include at the end of this post.

Before we get to that, let’s look at where you can store your software documentation.

Software documentation hosting options

It’s no good having just a bunch of text files living on your computer. They need to be accessible by developers and users, which you’re most likely going to do by hosting the docs on the internet since it isn’t the 1980s.

Use Process Street to document any recurring process

software-documentation
Source

For training new developers and keeping your documentation living all in the same place, Process Street is a solid choice for software documentation.

First, you could create a process for writing your documentation, to make sure you capture all the right details and make it as useful as possible.

Then, using the following easy-to-use features, you can write up and store your documentation in one single place:

Creating and storing all your recurring software documentation within Process Street means it can be accessed by everyone in the company. You can share it with others, send it for approval, set reminders to review it, and update it easily.

It’s simple to set-up and even easier to use. Here’s a sneaky look at one of our checklists in action:

process-street-software-documentation-d

If something can be documented, it can be documented in Process Street.

Sign up for a free trial here and see for yourself.

Document360

document360
Document360 is a software documentation tool that gives you complete 360 support for your project documentation. You can create rich documentation with ease using features such as the Markdown & WYSIWYG editor for efficient and structured writing. Other notable features include an uncompromised authoring experience, a rich theme, built-in analytics, enterprise-grade backup & restore, versioning capabilities, and so on.

With simple configuration features, you can manage various project documentation, configure numerous users, and examine analytics to help you maintain your knowledge base content fresh and relevant. It offers robust security like IP Restriction, Custom Domain Mapping, Enterprise SSO, Cookie Consent etc.

You can also integrate with a variety of third-party helpdesk, chatbot, and CRO technologies, such as Zendesk, Intercom, Hotjar and Zapier. As a result, it is appropriate development software for all business sizes

Read The Docs

It’s remarkable that Read The Docs is free when you see all that it can do. Similar to GitHub, you can create as much open-source material as you like that gets openly indexed on the site, but it’s going to cost you if you want to make the docs private and internal to your company. For our purposes, it’s likely you’re going to be alright with having the docs readily available for users on the web.

Read The Docs-d

The reason Read The Docs is so good is that you can effortlessly import documentation from any version control system including Git, Mercurial, Subversion, and Bazaar. It also supports webhooks so the docs get built automatically whenever you commit code.

Check their Getting Started guide to get a feel for how it works and how your docs would behave when hosted there.

GitHub (& GitHub Pages)

If you’re using GitHub to manage version control for your software, you have, at the bare minimum, a README.MD file in the repository. To use GitHub for documenting your software, like millions of others have done in the past, just fill that README in with markdown.

A great example is sferik’s t repository, screenshotted here:

GitHub Software Documentation for t

If you want more than just one sheet of formatted text, you can take advantage of GitHub’s Pages tool (you get one free webpage + hosting with each GitHub account, and you can even route a custom domain to it). Pages even has great looking default themes that make your documentation look professional.

Electron Software Documentation-d

Above is atom.io documentation for Electron hosted on GitHub. It’s a smart choice because it automatically works with GitHub’s version control, just like the rest of your software. See the site’s repository here.

Dropbox Paper (for internal use)

For internal software documentation use, Dropbox Paper is an excellent choice. Like its predecessor Hackpad, you can use it to create a private wiki for employees. You can link documents together, insert code blocks, images and page jumps, just as you’d demand from any documentation tool.

Dropbox Paper Software Documentation

As you can see from the comments on the right, you can also use it to go through approval processes and collaborate over the creation of documentation. Overall, it’s a great tool for internally developing and creating documentation, perhaps with the view to publicize it later, or just keep it for internal use.

Atlassian REST API Browser (for API use)

Atlassian’s REST API Browser (RAB) is included in JIRA Server, Confluence Server and Stash instances by default. It’s built for discovering APIs available for use in JIRA/Confluence environments, and also a place to host your documentation. If, of course, your API fits the bill.

RAB Software Documentation

Document your API using this tool to give your JIRA/Confluence compatible API more exposure. Check here for Atlassian’s documentation on doing that.

Tettra (for internal use)

software documentation tettra
Source

Tettra is a kind of knowledge base software where you can document your development, or anything at all.

We use Tettra internally at Process Street for a bunch of use cases. Day to day, I use Tettra to have a single place where all my processes are documented so that I never forget how one relates to another or how the various automations we’ve built have been set up.

Tettra is great if you’re looking to create a library of sorts. This means it’s brilliant for software documentation or even just as an internal wiki for your company.

Given that Tettra is specifically designed for knowledge management, it comes with a host of other supporting features too. For example, it can make suggestions as to what extra content or sections you might want to add to give a more complete picture of your org and how things fit together.

You can see a little video here for how a dev team might look to use Tettra: How Product & Engineering Teams Use Tettra.

Or, you can go here to read about how we use Tettra alongside Process Street: Automating Workflows and Checklists: Process Street Case Study.

Check it out!

Apiary (for API use)

As well as being a place where bees live, Apiary is a dedicated host for API documentation. Write in markdown, add mock API calls and Apiary collates that into something like you see below:

apiary software documentation

Anyone can test the API without having to go into the app or actually program a call, which makes it a super accessible way to share your API, document it in-depth, and boast about what it can do.

Apiary 2-d

We’ve discussed where to store your software documentation, now it’s time to look at how to write it.

Writing tools for software documentation

Software documentation is often written in markdown to allow for hyperlinks and formatting while keeping it plain text so it can live alongside the code files in version control. That means that a lot of my choices for writing tools are simple markdown editors that make the writing experience enjoyable. Additionally, there are also a couple of very effective non-mparkdown solutions thrown in there.

MarkdownPad (Windows)

With a free and premium version — both with a ton of great features — MarkdownPad is the most popular markdown editor for Windows. It’s optimized for blog posts, websites, articles, READMEs, and, of course, software documentation.

MDE-d

You can get MarkdownPad for free, or get the premium version for $14.95.

iA Writer (Mac)

iA Writer is a simple, beautiful markdown editor with a library feature meaning you can easily reference back other documents in the sidebar. It’s missing internal links between documents like you’d expect there to be in software docs, but you can always do a pass on those when it’s in its final form (that is, if it’s going to end up on the internet in a site).

If you write your whole documentation in one, broken-up page, you can use page jump anchors to help users navigate.

iA Writer costs $9.99 from the Mac App Store.

ProProfs Knowledge Base

ProProfs Knowledge Base is a fantastic little tool for all stages of document creation; from writing and editing, to customizing, setting workflows, and publishing. You can add multimedia, import existing content from word docs, PDF, or PPTs, save multiple versions of the document, and restore them when required.

software documentation
Source

But the real beauty of this tool lies in its useability. Anyone and everyone can use it to write software documentation. Whether you’ve been documenting software for years or have only recently started, it’s an incredibly simple and easy to use tool.

ProProfs is free to use, or you can upgrade to the premium package which is $112 per month.

SimpleMDE (browser)

While you can technically write markdown in any text editor because it is a way to format plain text, not strictly a ‘tool’, it won’t surprise you that it’s also possible in your browser! SimpleMDE is a both a functional markdown editor built on JavaScript and an open-source project to learn from and adapt for your own use, if necessary.

MDE-d

SimpleMDE is 100% free! Get the source on GitHub here.

reStructuredText editors

Markdown is one of the two most commonly used languages for writing software documentation, but there’s another we’ve not looked at so far, and that’s reStructuredText. It’s very similar to markdown, but worth learning for software documentation purposes.

Docutils, the creator of reStructuredText, has put together a list of reStructuredText editors here, which includes:

The point of reStructuredText is that it’s easy to convert between different formats, especially from plain text to a static website. See more info here.

Tools to automatically generate documentation from source code

There’s nothing like the human touch when it comes to documentation (it’s clear in the docs of Slack and Giphy, to name a couple). However, as a starting point (especially for huge source libraries), it’s best to generate the skeletal documentation automatically. This work by analyzing the source’s functions and comments, and there are a few different options depending on language:

  • Doxygen (C, C++, C♯, D, Fortran, IDL, Java, Objective-C, Perl, PHP, Python, Tcl, and VHDL)
  • GhostDoc (C#, Visual Basic, C++/CLI, JavaScript)
  • Javadoc (Java only)
  • Docurium (Ruby)

Before you go ahead and rely solely on automatic generation, I’d suggest reading this StackExchange thread which weighs the pros and cons.

Essentially, we’re talking internal documentation created by and for the dev team in reference to a specific tool or software.

Because of the specialized nature of their software, dev teams typically look for document collaboration tools that can be tailored to their specific needs.

Such as…

GitHub Wiki and Pages

Github Wiki screenshot with software documentationSource

GitHub Wiki is one of the most commonly-used tools for software and technical documentation — among many other processes.

Each new repository comes equipped with a wiki, through which dev teams can create and share technical documentation for their software. The tool can also integrate with Jekyll via GitHub Pages, allowing teams to further customize the structure and appearance of their documentation.

Overall, GitHub Wiki makes for a user-friendly alternative to the plaintext, interface-free README files dev teams often work with.

GitHub Wiki and Pages Features

  • GitHub Pages offers numerous customizable themes for Wiki pages
  • Integration with Jekyll enables further customization
  • One free customized domain name allowed


GitHub Wiki and Pages Pricing

  • GitHub Wiki and Pages are available through GitHub Team at $4/user per month
  • GitHub’s Enterprise tier starts at $21/user per month


Read the Docs

Screenshot of open-source software documentation tool Read The Docs Source

Read the Docs is an open-source software documentation tool that promises to simplify the process for dev teams by automating building, versioning, and hosting their technical documents for them.

Developers can import projects via GitHub, then use Sphinx to further customize their proprietary documentation tool. This includes tweaking document and library structure, along with the tool’s overall user interface.

Read the Docs Features

  • Docs viewable as web pages, PDFs, HTML, and eReader files
  • Branching and versioning ensures no overlap when updating docs
  • Free hosting with a custom domain


Read the Docs Pricing

  • Free, open-source tool and hosting for one build
  • Premium Options:
    • $50/month for 2 builds, 48-hour support response time
    • $150/month for 4 builds, analytics features, and advanced customization options
    • $250/month for 6 builds, advanced analytics, and 24-hour support response time


Haroopad 

Screenshot of software document tool HaroopadSource

Haroopad, by HarooPress, is a highly-visual document processor for technical and development teams.

The charm of Haroopad is in its simplicity. As stated on the team’s website, “Markdown is simple, but has…portability and extensibility. The goal of the Haroopad is also simple: To be a web friendly document editing tool.”

Still, Haroopad manages to deliver the functionality and customizability we’ve come to expect from these open-source solutions.

Haroopad Features

  • Themes, skins, and customizable UI components
  • Import files from YouTube, Twitter, Vimeo, Slideshare, Flickr, Instagram, and more
  • Export documents to Workpress, convert to PDF/HTML


Haroopad Pricing

  • Haroopad is completely open-source.


Top Overall Software Documentation Tools

Software documentation also encompasses any documents created with the user in mind.

Incidentally, “the user” may refer to the various members of your team, or it may refer to your customers.

A few examples here include:

  • Onboarding tutorials
  • Advanced how-to guides
  • Troubleshooting documentation


While the dev team may also have a hand in creating user documentation, the process may also involve marketing, sales, customer services — and any other customer-facing department within your organization.

That said, you might want to consider looking for a software documentation tool that’s more user-friendly to your less technically-minded team members.

Such as…

Helpjuice

Helpjuice's knowledge base software being used for software documentation

Helpjuice’s knowledge base software is an all-in-one solution for your team’s knowledge management needs — software documentation processes included.

With Helpjuice, teams can create, publish, and deliver helpful software documentation to internal users, and to the customer. On the user’s end, Helpjuice presents this documentation through an intuitive, user-friendly interface — allowing for maximum browsability and digestibility of information.

Overall, Helpjuice allows you to develop software documentation with the end-user in mind. 

In some cases, this may mean diving deep into technical explanations and information. In others, it may mean delivering technical information in a more simplified, comprehensible manner.

Either way, using Helpjuice to create a knowledge base will ensure you can create and share great documentation with the relevant stakeholders.

Helpjuice Features

  • Limitless authoring, formatting, and editing of text and multimedia content
  • Templates for streamlined knowledge creation and organization
  • Advanced search functionality makes finding the right document a cinch
  • Permissions ensure individuals only have access to the necessary areas of your knowledge base
  • Integrations allow content to flow freely from your knowledge base to other tools and platforms


Helpjuice Pricing

Regardless of pricing tier, all Helpjuice users get access to all of the tool’s features.

  • For 4 users: $120/mo
  • For 16 users: $200/mo
  • For 60 users: $289/mo
  • For unlimited users: $369/mo


Confluence’s Atlassian

Screenshot of Atlassian's Confluence for documentationSource

Confluence’s developer, Atlassian, refers to the tool as a “team workspace where knowledge and collaboration meet.”

Confluence is another all-encompassing knowledge management solution, with software documentation being one of the tool’s main focuses. The focus on collaboration means all stakeholders will have a hand in creating accurate, comprehensive, and user-friendly software documentation.

Templates also ensure team “spaces” and “pages” (i.e., knowledge base sections and individual documents) stay organized and uniform. Though customizable, Confluence’s templates are designed with specific use cases in mind — once again, including software documentation.

Confluence Features

  • Real-time collaborative features and task management processes keep all team members on the same page
  • Personalized feeds keep stakeholders focused on important documentation tasks and processes
  • Integration with all Atlassian tools (and thousands of others) allows seamless delivery of documentation


Confluence Pricing

  • Free: Up to 10 users, 2GB of storage, and basic documentation features
  • Standard: $5/month per user, up to 20,000 users, 250GB of storage
  • Premium: $10/month per user, up to 20,000 users, unlimited storage
  • Enterprise option available


Process Street

Process Street is a business process management tool that allows teams to develop workflows, checklists, and other process documentation for recurring procedures within their organization.

Focusing on software documentation, Process Street serves two purposes:

For one, it allows teams to create procedural guides to help users navigate a piece of software, or a specific feature within a given tool. Secondly, dev teams can use Process Street to outline their own development processes — and to track their progress over time.

Process Street’s unique drag-and-drop interface allows teams to develop various software document templates, and to adjust them to specific use cases with ease. This versatility makes it a key choice for teams looking to streamline their software documentation processes.

Process Street Features

  • Widgets make adding new content elements to documentation simple and easy
  • Customizable templates provide structure to documents while allows teams to tweak them as necessary
  • Process management and performance analytics allow for continuous improvement of software documentation workflows


Process Street Pricing

  • Free for up to 5 full team members and 5 workflows 
  • Pro: $25/month per user, unlimited full users, and intensive customer support
  • Enterprise option available


Bit.ai

Screenshot of Bit.ai templates for software documentationSource

Bit.ai is a powerful tool for workplace and document collaboration.

In fact, its heavy focus on interactivity and real-time collaboration is what makes Bit.ai such a prime choice for software documentation purposes. 

On the developer’s side, dev teams can add code blocks and other elements to documents as needed — all while working with other team members to improve the documentation in question. Less technical teams can also easily collaborate in-doc, adding multimedia and other content to software documentation as appropriate.

For end-users, the end result is an interactive document that delivers the exact information they need in the most convenient and digestible way possible.

Bit.ai Features

  • Minimalist, Markdown-supported interface allows teams to create and edit documentation to their liking without distraction
  • Portals, rooms, and passwords can all be used to allow or disallow access to certain documents
  • Integrates with over 100 other tools


Bit.ai Pricing

  • Free for up to 5 members, 50 documents, and 1GB storage
  • Pro Plan: $8/month per user, unlimited users and documents, and 500GB storage
  • Business Plan: $15/month per user for advanced tracking, access to customer success and support teams
  • Enterprise Plan available


Tettra 

Screenshot of wiki software Tettra for software documentationSource

Tettra is an internal, corporate wiki tool that focuses on delivering need to know answers to common questions as quickly as possible.

At the most basic level, Tettra acts as a sort of Q&A forum on which team members can ask and answer technical and operational questions for all to see. Basically, you can think of it as an organization-specific Quora.

For software documentation purposes, Tettra allows teams to collect frequently asked questions regarding product specs, technical processes, and troubleshooting info all in one place. Internal users can then use the Q&A database to find the information they need without having to reach out to the dev team or other SMEs.

Tettra Features

  • Content verification ensures answers are accurate and comprehensive — and provides SMEs the opportunity to expand on documentation as needed
  • Slack and MS Teams integrations allows users to find answers directly within these tools
  • Usage analytics allows teams and SMEs to make improvements to documentation over time


Tettra Pricing

  • Free for up to 10 users, basic Q&A features
  • Scaling: $8.33/month per user, up to 250 users, for all features
  • Enterprise available

Conclusion

Software documentation is a type of technical document just like user’s manual, quick reference, and help pages. The tools for creating these documents are varied and can be complicated when learning how to use them.

Software development is a complex process, and software technical documentation is a supplementary knowledge supporting the development. Doesn’t matter whether you’re creating software on your own or in a team, at some point during the development lifecycle, you have to worry about creating documentation, helping people understand how to work with the product.

Leave a Comment