I have been confusing about documentation in XP for a long time. After reading Ron Jeffries' articles, I get it. The following is a compilation of these articles(thanks to Ron Jeffries): XP is designed to use face to face human communication in place of written documentation. XPers prefer conversation to documentation, for effective conversation is faster and more effective than written documentation. This goes with the natural instincts of people (and of programmers). Since programmers don't like to write documents, they like to program. They like to write code; they like to make it work. Thus:
When documenting requirements, they communicate requirements. So comes on-site customer. And the requirements are documented in the form of automated tests(acceptance tests) that verify the results of using the software.
When documenting design, they communicate internal design. Draw suffient diagrams, encourage communication.
When documenting code, they use the code itself as the best documentation. Unit tests are also documentation. The tests don't say what we think the code does: they show what the code actually does.
Make the product as easy to use as a web site instead of write a big manual. Your customer hates big manuals.
Always keep in mind that the primary value of documentation is communication. Any thoughts? [ February 21, 2002: Message edited by: Doug Wang ] [ February 21, 2002: Message edited by: Doug Wang ]
Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep