Program Documentation

Any written text, illustrations or video that describe a software or program to its users is called program or software document. User can be anyone from a programmer, system analyst and administrator to end user. At various stages of development multiple documents may be created for different users. In fact, software documentation is a critical process in the overall software development process.

In modular programming documentation becomes even more important because different modules of the software are developed by different teams. If anyone other than the development team wants to or needs to understand a module, good and detailed documentation will make the task easier.

These are some guidelines for creating the documents −

  • Documentation should be from the point of view of the reader

  • Document should be unambiguous

  • There should be no repetition

  • Industry standards should be used

  • Documents should always be updated

  • Any outdated document should be phased out after due recording of the phase out

Advantages of Documentation

These are some of the advantages of providing program documentation −

  • Keeps track of all parts of a software or program

  • Maintenance is easier

  • Programmers other than the developer can understand all aspects of software

  • Improves overall quality of the software

  • Assists in user training

  • Ensures knowledge de-centralization, cutting costs and effort if people leave the system abruptly

Example Documents

A software can have many types of documents associated with it. Some of the important ones include −

  • User manual − It describes instructions and procedures for end users to use the different features of the software.

  • Operational manual − It lists and describes all the operations being carried out and their inter-dependencies.

  • Design Document − It gives an overview of the software and describes design elements in detail. It documents details like data flow diagrams, entity relationship diagrams, etc.

  • Requirements Document − It has a list of all the requirements of the system as well as an analysis of viability of the requirements. It can have user cases, reallife scenarios, etc.

  • Technical Documentation − It is a documentation of actual programming components like algorithms, flowcharts, program codes, functional modules, etc.

  • Testing Document − It records test plan, test cases, validation plan, verification plan, test results, etc. Testing is one phase of software development that needs intensive documentation.

  • List of Known Bugs − Every software has bugs or errors that cannot be removed because either they were discovered very late or are harmless or will take more effort and time than necessary to rectify. These bugs are listed with program documentation so that they may be removed at a later date. Also they help the users, implementers and maintenance people if the bug is activated.