Software with good documentation is far more valuable than software without. Software that needs to be reliable will be subject to a code review. Good documentation makes the review go more smoothly, and makes it more likely that the review will accomplish its intended purpose. [ref] Good software documentation, whether a specifications document for programmers and testers, a technical document for internal users, or software manuals and help files for end users, helps the person working with the software understand its features and functions.

  • Documentation helps at software development
  • Documentation keeps software-quality at high levels
  • Documentation makes it easy to transfer projects [ref]

The more technical documentation is developed within the program's source code to begin with, the easier it will be to update and maintain along with the code, as well as to document various versions of the original application. [ref] Technical documentation helps end users to gain insight about using the product, developers to communicate the design with the team, and sales team to promote and improve sales of the product.

[ref]

There are many benefits of extracting documentation from software code:

  • It provides all the information important to the person using the software.
  • Enhance the clarity of your source code. [ref]
  • Make your code easier to use and maintain.
  • Creating documentation directly from your code gives you a complementary high-level view that helps you and your peers while coding and at maintenance / refactor time.
  • Extracting the documentation directly from the sources makes it easier to keep the documentation consistent with the source code.
  • It allows a programmer to quickly look up an arbitrary function or class. [ref]
  • Many programmers like the idea of auto-generating documentation for various reasons. For example, because it is extracted from the source code itself (for example, through comments), the programmer can write it while referring to his code, and can use the same tools he used to create the source code, to make the documentation. This makes it much easier to keep the documentation up-to-date.
  • It makes code comments clean, readable and familiar.
  • The appearance of the documentation can be easily customized.

  • Software programs in scientific and engineering domains typically contain complex and extensive computations that are additionally optimized concerning running time or memory requirements. As a consequence, the actual computations are often hard to comprehend from the source code only. Extracting documentation from source code reveals the actual computation. [ref]

In order to extract the documentation from software code it is recommended to use tools, because a large amount of duplication is normally involved when code and its documentation are written and maintained as separate entities. As code grows, so does the complexity of the related documentation and the effort needed to maintain both in sync. So, a proper source code documentation tool solves this problem.

Summary

It cannot be overstated just how important documentation really is to writing good software. When we code a project, we are not thinking about the future. We are most likely thinking about the present and getting the program finished. In most likelihood, what we write will need some kind of updating, modifying, or fixing. It may be we and it may be some other person dealing with these issues in the future. The code we write today will probably look terribly confusing in the not too distant future. Technical Documentation will help greatly to alleviate this difficulty.