Firstly, for documentation, I would strongly suggest looking a semi open wiki. A small linux distro SME Server
http://wiki.contribs.org/ does a very good job of using a semi open wiki.
They manage this in a very smart way by having a defined Documentation team that reviews approves members to the docs group and constantly reviews (and improves wiki edits).
When a person is accepted into the docs group they are given guidelines on what to do, while any doc group member can edit anything (including the home page) nobody does they contribute where they are useful.
On a couple of occasions the site has suffered some defacement but by the very nature of wiki it was so simple to roll back it was only a problem for a couple of hours.
Secondly, For programming reference it should be possible to use doxygen docs++ or similar and embed the programmers reference directly in the code. It is a well know fact that programmers and hackers especially hate writing documentation but if it is right there in the code there is at least a chance it will get done.
Dave.