Chapter 7. Documentation
Documentation: for most development programmers it's a millstone, but for maintenance programmers it's a life-line. More importantly, very few programmers are exclusively in one role or the other. Most developers write code that they then have to maintain themselves. Or else they have to maintain other people's code in order to develop their own.
The problem is that any code of your own that you haven't looked at for six or more months might as well have been written by someone else[*]. The young, smart, optimistic youwho's creating the codewill undoubtedly find it tedious to document your understanding of what that code does and how it does it. But the older, wiser, sadder youwho later has to fix, extend, and adapt that codewill treasure the long-forgotten insights that your documentation preserves.
In that sense, documentation is a love letter that you write to your future self.