For what it's worth, I'm not talking about dictating what the customer's requirements should be (as in "That's a stupid idea, I think this is what you should do instead"). I'm talking about "This will take three weeks even though it looks like a simple change because there are still plenty of unknowns" ... "But we have already promised the customer that this will be done in a few days (without consulting engineering), can't you just do it quick and then we'll fix it up later? (but later never comes)" type stuff. Or never being given the time to implement a test framework or refactor and then being criticized because customers find bugs. That kind of thing I find difficult and frustrating.