Don't Fear the Refactor
In the programming world, refactor means to change something for the betterment of the code. You see, over time you make a lot of small changes without the big picture in mind and things can get messy. Sometimes you just have to rip apart the engine and re-build it.
Many developers are afraid of major refactors, as it may upset the status quo. It's much easier to duck tape it back together than too fix the root of the problem. "If it aint broke, don't fix it" right? Depends on your definition of broke.
Recently we've done a lot of refactoring here at Doodlekit. When we upgraded the frameworks that run our software we pulled apart core pieces and re-built them. Since then our downtime has dropped to virtually nothing and the system as a whole performs much faster. Doodlekit wasn't broke, but there was room for improvement.
This concept of refactoring goes way beyond programming. My wife and I have been renovating our house for the past 7 years, and one thing I've learned is that most of the time it's better to rip the whole thing out and start from scratch. A few years back we bought a new front door that it didn't quite fit in the current door frame. Our first thought was to frame it in a little to make it fit. When we realized that would'nt look too cool, we started taking out the whole frame and saw that there used to be a transom window above the door. We rebuilt the whole frame, put in a new transom, and now we have a much more beautiful front door than we imagined.
Don't be afraid to pull the rug out from something to see what happens. It's a really good feeling, I promise.