When I first encountered CodeIgniter, I was pretty much at the end of my rope.
I'd spent seven years building up a thriving little web development group and had hitched my little wagon to various technologies (like SMARTY and PEAR), and things had run very well for a long time. And then it happened. What is "it"? Well, "it" wasn't exactly any one thing that you could point to and say, "There, that's the problem right there!" It was more like a combination of things. Regardless, "it" hit me with the force of a torpedo, and I felt my professional outlook implode.
I've shared my story with lots of developers over the past year, and they all seem to agree that in the life of every web geek comes a moment of clarity. This happens to us whether we're the worst decision maker in the world or some kind of digital wunderkind.
What am I talking about? I'm talking about some kind of tipping point where you look at everything you've done, and you don't want to deal with it any more. I'm talking about making one more really great choice (about architecture, performance handling, security, blah, blah, blah) and putting it in the box with all your other "great choices," and what you end up with is a box full of complexity, a kind of reverse Pandora's box of confusion and mischief.
The upshot is pretty simple. You end up with extremely complex code that you can't understand. Your mind can't stretch around all the hundreds (if not thousands) of little changes and one-off decisions ...