writing man pages is so useful to check if your interface actually makes sense from a user perspective.
writing specifications for protocols is similarly essential for understanding and revising overlooked details, misplaced assumptions and plain embarrassing decisions made during development.
i'm currently writing man/specs for klutshnik but had the same epiphany also during other projects.
if you don't write docs, you rob yourself of a very powerful and simple review technique.