There are (at least) three other types of documentation that aren't covered here. These are stakeholder (traditionally user) requirements (or needs) defining what stakeholders want to achieve through the system. These may be used as the basis of "how to" documents and user guides. The there are system requirements documents defining what the system actually does. Developers too often confuse these two. Finally design documents describing what the system is - ideally with explanations as to why particular design approaches were taken and decisions made.