Software documentation

From ArticleWorld

Software documentation represents explanatory text that accompanies computer software and explains how the software is to be used and/or how it works. Software-related documentation is built all along the creation process and is vital to the development and usage of it.

Code documentation

An important role is played by the documentation related to the software's source code. This type of documentation is normally written by the programmers who write the code themselves, in order to define and explain the less trivial parts of the code, or those that will be intensively re-used.

Programmers generally resort to specialized software that parses the source code and extracts documentation from the comments in the code (comments are parts of the code that the compiler ignores). This way, they can concentrate on the code itself rather than going through the rather tedious process of writing documentation.

User documentation

The user documentation is usually written with the users as a target, and takes many forms. Some of it may be online (accessible directly through the software), but some can also be printed or included as sets of PDF files, for example.

It is important for software not to have any undocumented features, so that the users can benefit from all of its features. User documentation must be easy to use and well indexed, and should consider the computer expertise of the target audience.

Writing user documentation is generally a tech writer's job. The kind of documentation generally depends on the writer: it has either a tutorial approach, useful for the new user, or a thematic approach, which describes all the features based on their general field of usage. Many documentation sets include both.

Design documentation

Design documentation details the way the software is built, but focusing on explaining the design process, the reasons behind certain choices or the architecture of the software itself. This kind of documentation is especially important in projects that have an unusual or new architecture for those who are designing it.