I'm usually mentoring a new programmer who I hope will eventually take over the code I'm writing. I write with that in mind. Explaining along the way makes the code better. Structure helps newbies. I do get lots of nice comments about my code. And it generally works and lasts. Teach someone to write code and your own code will get lots better. Pet peeve about other folks code - saving a few letters makes functions, variables, etc absolutely mystifying. Classic... "OPhone". We spent days working on this thinking it was "Office Phone", turns out it was "Old Phone", but the previous programmer didn't waste the "l" or the "d" so we haven't run out yet.