http://www.perlmonks.org?node_id=212007


in reply to Maintainable Code?

Document everything thoroughly, especially anything that isn't obvious (for some value of 'obvious'), even if it's just with a reference to where they can find more information.
# hash of hashes -- Advanced Perl Programming, pages 27 - 28 # does foo, because it's better than bar

You don't need to explain everything, just provide keywords and one line descriptions of what it does. Between the Camel book and Google most things can be found in moments providing people know what they are looking for.

If you're good enough to be using relatively advanced methods then you're good enough to code and document well, and even if some newbie never has to maintain you code, at somepoint your going to be working on it 2 years after you wrote it at 4am and may want a reminder of what (and why) it is.

In general I'd advocate not coding down, but allowing plenty of scope for a random maintainer to have to later figure out what you're doing. Coding will provide a definate benefit now, at a possible cost in the future; coding down has a definate cost now, for a possible benefit in the future.

Code up, use the time saved by coding-up to write more documentation :)