It is well known that developers do not like writing documentation. But although documenting the code may seem dull and unrewarding, it has definite value for the writer.
When you write the documentation you gain an insight into the algorithms, design (or lack of such), and implementation details. Sometimes you see neat code and say "Hey, that's genius!". But sometimes you discover small bugs or chunks of code that beg for refactoring. In any case, your understanding of the system significantly improves.
I'd like to share the experience I had with Linux memory management documentation, what was it's state a few months ago, what have been done and where are we now.
The work on the memory management documentation is in progress and the question "Where do we want to be?" is definitely a topic for discussion and debate.