There are many kinds of documents a software project can have, from low-level documents that refer directly to the code, to design papers that provide a high-level overview of the application.
For instance, Scott Ambler defines an extensive list of document types in his book Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process, John Wiley & Sons. He builds a portfolio from early specifications to operations documents. Even the project management documents are covered, so the whole documenting needs are built with a standardized set of templates.
Since a complete portfolio is tightly related to the methodologies used to build the software, this chapter will only focus on a common subset that you can complete with your specific needs. Building an efficient portfolio takes a long time, as it captures your working habits.
A common set of documents in software projects can be classified into the following three categories:
- Design: This includes all the documents that provide architectural information and low-level design information, such as class diagrams or database diagrams
- Usage: This includes all the documents on how to use the software; this can be in the shape of a cookbook and tutorials, or a module-level help
- Operations: This provides guidelines on how to deploy, upgrade, or operate the software
Let's discuss the preceding categories.