What works for me is to write the code with a target audience in mind. That target audience is someone who learned the language for one term in college and doesn't know it all that well. The maintenance programmers have met those criteria, except for one person who didn't know the language at all.<p>I write programs in pseudocode first then add the code underneath, keeping the pseudocode as a comment. The code I've written from 1984 to the present day is still quite readable, apart from a parser I wrote in Perl.