I just put up the beginnings of the "Understanding the source" section of the wiki. Writing documentation has got to be the hardest job in the realm of software development. There's no set way of doing it, and being this close to the code makes it pretty hard to remove all the little things that I take for granted in the code. It's those little assumptions that can either make or break the documentation. One advantage I have is that I have been in a lot of projects where I was the new person. I have been in the situation where I needed to learn the basics of the codebase in a hurry.
Mentally, what I have to do is ask myself "If this is a new client with a codebase that I have never seen before, what do I want to know?" Other questions that I ask myself are:
- What dependencies does the code have?
- What are the major code groupings?
- How is the code organized?
- How is the code wired together? Interfaces or concrete classes?
I hope that the documentation is helpful to our visitors. If you do see something that you want explained, please do tell us! You can either post a comment to this, post in the forums, or email me at fastalanasa AT wheelmud DOT net