I don't know man. Middle management is a really shitty job. You have to do stuff that you don't believe in (because upper management says so, and they _might_ be right, even if every fiber in your body tells you they're wrong). As a dev, even as a very senior dev - I find that it's ok to be true to yourself, and say that you don't believe in it even if you have to do it. You can also easily switch teams. As a manager - you _have to_ be positive and sell it to your subordinates, who may be (should be!) your friends too. If you don't sell the vision well, there's no real way to know whether it failed because it really was a bad idea, or it failed because you didn't motivate your team to work on it.
This, I found, is too much for me. I have no remorse if I demotivate my managers; and I can keep my mouth shut and not say anything, to avoid demotivating my junior-dev colleagues. But as a manager, "keeping my mouth shut" is not an option.