But enterprise is so varied -- some places are amazing, some places are terrible. The trick is to find a group with whom you love going to battle. Find people who are looking to continually improve. People who believe in the campground principle -- leave code better than you found it. People at every skill level who are willing to get better.
If that's not your group, find a group that is. Better yet, inspire that in your group.
It's not about the company -- it's about the people with whom you sit at lunch.
(Okay, and sometimes the business owners... yeah, sometimes they suck.)
A: "Wow, things are really messed up. I'm out of here." B: "Wow, things are really messed up. There's opportunity everywhere."
Either can be right, depending on the person and situation.
Have computers do what computers do well, so people can do what people do well. That's the core of my approach to building software. A big part of the reason enterprise development sucks is because debugging is so manual. Automate parts vulnerable to automation, and engineers won't just be more efficient - they'll be happier.