Your code is messy. Trust me. I’ve seen it. It’s not that you haven’t tried. You’ve created UML diagrams, flow charts, state diagrams. You’ve used Visio, and Photoshop and Balsamiq to try and come up with a good clean design. Despite all your best efforts at getting a good design and sticking to it, it’s messy. You promise yourself that thenext project will be better, you won’t make the same mistakes. But at the end of that project all you want to do is throw it away and start over. Things are duct-taped together and in 8 months when you go to add a feature, you can’t remember what code did what or where this next feature should go. If there’s a bug the easiest way to find it is place a dozen breakpoints and step through the code.