Documenting code is important, and I think Zach successfully explains why and how in his post. I often find documenting code quite tricky, since it forces you to make it really clear and concise. It challenges you to write good code, since another guy is supposed to understand how everything works from reading the docs. "Can I scrap this method? Do I have to refactor? Is this too tightly coupled?". When you're documenting, you might see the obvious flaws in the code flow, and it's a win-win.