In the Why Use OpenACS, we run across the following assertion:
"Excellent Documentation
Unusual among open source projects, the OpenACS is very well documented. Community members are encouraged to document and distribute their new packages as well as address any lack of information in existing documentation."
I wonder if this assertion still stands true. Some parts are well documented but others are poorly documented. It appears that application packages and individual modules are either out-of-date or not documented at all. Without proper documentation it makes it difficult, nearly impossible, for us to build on each others work. It also keeps the "knowledge" locked in the hands of a few, thus defeating the whole purpose of working in an open source effort. Having access to source code and the freedom of an open source license is important, but we don't leverage each other's work unless each person and organization is also making incremental investments in documenting the code.
How can we encourage everyone to invest more time and effort in documentation?
It might be worthwhile to review some good models going back to the ars digita days:
http://philip.greenspun.com/doc/
For starters, take a look at the documentation for chat:
http://philip.greenspun.com/doc/chat
The documentation provides rationale (why), approach, and data model. Shouldn't every application module have that as a minimum? And when someone makes a non-trivial change, shouldn't the documentation be updated?
Thanks for listening to my rant.