I couldn't agree more. The lack of good documentation is a plague which is not emphasized quite enough. To me it is as (or even more) important than writing tests: debugging code is easy in comparison to figuring out what it is supposed to do in the first place.