Sten Vesterli has an interesting post regarding Useless Documentation.
In short the most useful documentation is:
code comments & architecture diagrams. The rest is marginally useful … at best.
I couldn’t agree more.
Combine that with strong unit and integration tests and you’ll find your deliveries contain fewer errors and overall implementation speed will increase. Why? Because implementing just got easier. The information you need is available in the code and the tests help you discover errors early.