I never know how to document a system in a way that other developers will find it easy to use and/or maintain it. Documentating the source code is good and required for that, but I don't think it is enough to give a good overview of the application itself.
Java seems to keep most of its documentation in the source code, which describes only basic usage of certain classes - creating a DecimalFormat object for using a comma as the decimal separator is non-trivial if you stik to the (generally quite verbose) API documentation only (as far as I understood from their documentation it involves the DecimalFormatSymbols and Locale classes, but the point is: I can't tell for sure without further information). The missing parts are then tried to be covered by separate Java tutorials, which mostly describe distinct special use cases of their library.
The Ogre3d graphics engine, on the other hand, created special pages for the general description of their application, which is available as the ogre manual and they try to explain the wholeness of their engine there.
I know, the scope of the libraries are not the same here, and I'm not bashing Java, but thought it would be an appropriote comparison of documentation philosophies.
We recently started putting all our documentation into the source code in our company, which made me wonder: How do others document their applications and how does it work out for them (or more importatly: for other developers joining their project)?
EDIT
I guess I need to clarify a bit: When a project grows beyond a certain (code-/team-) size it gets hard for other developers to join it. I know that code documentation is very important for them to understand the code, but I don't think it is sufficient to get started working on the project. Either someone else has to give him a tutorial (explaining why things look the way they do), or it needs to be documented somewhere.
So the actual question is: What documentation do you provide to new developers and how useful is it to them? Do they read the 200-Page system documentation? Do they dive into the code first? How many and what kind of questions do they ask after reading them?
I'm not after the reactions of your colleagues, but the efficiency of your documentation process (just mentioning the reactions as an indicator).