I think management fails when they don't understand that the nerds hired them and not the opposite. We are the technology, we did it in the first place. We hired managers to help us. By default, we know better than them (because we are the one who do the tech), they should listen to us and not the opposite. Now, when everybody knows his place, we can collaborate and do great work.
I got the luck to work with great managers at amazon. From what I've seen, programmers are driving the company there - or at least, they have their word to say, often, and power that comes with it. On my team, decisions relative to product development were clearly strongly driven by us. Seems to work pretty well for amazon.