Recently I am in a position where new developers need to join on the project, and I would like them to have a basic understanding of how the project work without needing to crawl the codebase for hours reading dock blocks.
So I'm interested to hear how you achieve this, and have some advice to produce an effective documentation?
Thanks in advance, Have a nice day!
For large projects I write documentation similar to how one would write a book or article. I start with an outline of the big picture. Next I fill in the details. After that I ask peers to provide feedback. I do one final round of updates based on the feedback. This helps discover any missing information or areas I can improve the organization of the documentation. Once that is done I release the info onto a wiki. When new people are added to the project they will always have questions about the documentation. A wiki makes it easy for the new people to add to the documentation once their questions are answered. A wiki also makes it easy to update the documentation when it becomes out of date.
Nash
Scientific image processing
Use Doxygen : http://www.stack.nl/~dimitri/doxygen/