My analogy to coding is cleaning. Most rooms need periodic cleaning. You can clean a room by moving each knick-knack to the side, dusting it, and dusting under it, then vacuuming all around the furniture. You can clean a room by putting all the knick-knacks in the room in a box, cleaning each piece of furniture, then moving it to the side, cleaning under it, then putting it back. You can clean by sending all the furniture out to be steam-cleaned, then steam-cleaning the carpets before returning the furniture. And you can clean by replacing the furniture, the carpets, and the knick-knacks. Each one is progressively cleaner, and which one you choose depends on how dirty the room is and how much time you have to clean. I tend to the belief that clean code is a mental health issue. I've actually referred to some people's code like being trapped in an episode of "Hoarders", and I ran across this recently http://blog.cleancoder.com/uncle-bob/2014/04/03/Code-Hoarders.html. I guess you could say I'm in good company. You'd probably also say I code with a spork.