One of many reasons why I'm not a consultant is my fear of having to personally deal with the fundamental problem of software management:
If there's one thing every junior consultant needs to have injected into their head with a heavy duty 2500 RPM DeWalt Drill, it's this: Customers Don't Know What They Want. Stop Expecting Customers to Know What They Want. It's just never going to happen. Get over it.
I like to satisfy people, and if people aren't satisfied, I'm not satisfied. But I need a manager between me and my customer to keep that from getting horribly out of control.