the first thing you need to consider when writing documentation for your project is audience. An end-user will want documentation that's primarily instructional - a How-To. While some technical concepts can be mentioned (and explained), the emphasis should be on the interface, not on the back-end. Another programmer looking at the documentation will want additional information: technical details of how program elements work, where in the code actions occur, and if applicable, how to extend the code. Writing for one audience shouldn't preclude writing for the other, but you should consider separate documents
via readwriteweb.com