| If you work in the software industry, you will know that documentation plays an important role in many projects. Among other things, documents describe user requirements, software architectures, design decisions, source code and management issues.
There can be a lot of value in such documents. Documentation can contribute to the success of a project by making necessary information available to the team members. Documents can preserve knowledge within a team, and prevent the team from re-inventing things when team members leave and new people join. Documents can capture expertise gained in one project and make it available to future projects. When knowledge has been committed to paper, it cannot be lost.
However, we are living in the information age. We are surrounded by much information, often too much. It can become difficult to filter what we really need. Projects sometimes suffer from too many documents and too long documents. If this is the case, team members looking for specific information can easily get lost. Some things are also much better communicated face-toface than via written documents. Too much documentation is as bad as no documentation at all.
It is also hard to keep documents up to date when their subjects undergo change. Keeping documents up to date is especially hard when a project is busy and many other things require attention. But outdated documents can easily lead readers onto the wrong track – outdated documents often do more harm than good.
This book takes an agile approach to documentation – an approach that is both lightweight and sufficient, in the same vein as the agile approaches to software development that recently have become popular (Cockburn 2001, Highsmith 2002, Ambler 2002). |