The only thing I have to say to this is that if you are programming for the computer, and not other coders, you are failing.  So the way you write applications has two audiences: the computer and your peers.  You need to make code readable by both the computer and by other people: * Self-explanatory code: Code should tell a story.  And the story should be, "I make sense." * Intellisense comments: So you can DRY but see your comments appear *anywhere* the code is used. * Exception messages should explain exactly what went wrong--to humans. I hate the coders I work with who think their job is to communicate with the computer.  In reality, if you want your code to gain wide acceptance and re-use, it's even more important to make it communicate effectively with people.