It's critical to remember that documentation is for users, not for you. It's pretty easy to get into a superior attitude when writing documentation, and lose track of the fact that these folks just want to get things working, and perhaps understand little of the rationale behind your seemingly arbitrary design decisions.
User documentation and developer documentation are fundamentally different. Users, for the most part, don't care how things run internally. They just want to know how to use it, and how to make it do what they need to get their job done. Tell them that, and then, as a secondary consideration, offer them more information. Don't make them slog through two pages of architecture diagrams to get to the one recipe they're looking for.
Key to this is getting an understanding of who your user is, and what they're trying to accomplish. In this section, we'll discuss these questions, and how you go about finding out. Then we'll talk about how to address those needs, once discovered.