Sorry but disagree. Of course I was able to understand the code but it took me a while, and I don't want to go through this again. That's why I document it. Hopefully next person coming new to the code will benefit from this. 

I must insist on how important this is. It's not the first time I see a bunch of new programmers coming to a project they don't know and breaking the design just because they don't understand not what the code does but what's the rationale behind. Bear in mind we're doing agile development and that involves not all our design decisions are formalized. We have a cool wiki, but that's not gonna do all. It's not only about documenting what things do but also about why it was decided to do it that way if that's relevant. That information is extremely useful - a newbie may see a piece of code and think "I can use this" and then see an explanation of what is the intended use and rethink if that was actually a good choice.