Reference documentation contains specific references, descriptions, error messages, tips, and other keyed information for technical people and users. Software documentation explains how a program works. User and reference documentation explains what a program does and how to use it. Writing the documentation is the final step in the system development life cycle, but ideally it is a process that continues throughout development. Even though the final details cannot be written until the programming is finished, waiting until the end of the project to begin writing often results in poor documentation.
Good documentation is no accident.
It is the result of careful planning and development, just like the software itself. In fact, the user often contributes to producing the system's documentation, both during and after development. In the 1980s, it became apparent that most documentation was written by technical professionals for their peers, not for the novice user. In fact, documentation became so abysmal that people began writing and publishing books that attempted to overcome the problem. The first publisher in this field was Osborne Books, started by Adam Osborne, who was himself a technical documentation writer who saw the problem.