>The engineer has 1% say, the other 99% go to the executive.
This has also been my experience. Not to mention "fighting back" usually comes at personal cost in various ways from reputation to creating more unpaid work for yourself, including the time you spend on trying to make things right that now means you are behind on your "real work".
Don't forget you "no longer work well with others" if you start standing up to mediocrity that everyone else is either too stupid to notice, or too afraid to fight back against because they don't want to harm their career.
I am mostly starting to make my peace with all this and learning when is a good time to really fight (hint: almost never).
And I don't quite buy HN's group-think of "find a better job, duh". The market has been difficult in the last years and also the "better jobs" are nowhere nearly as accessible as privileged people believe.
Best way to handle things, I have found, is to dress the decisions in money and time. Position yourself as a realist who speaks numbers and if you are lucky -- meaning you don't get contested by other techies who simply want to shine in front of the boss -- then you will have at least the product people on your side.
All that being said, of course at one point you should leave. In no form of relationship, work, friends, intimate, should you let yourself be walked all over for a long time. Start fighting the good fight in the company... and start polishing your resume and go do interviews.