A formative moment for me was when I was the software manager for a company, and we had two clients with emergencies going on at the same time. The reality was, we couldn't really fix both problems at the same time. I went in to the president's office, and told her that we couldn't fix both problems right now, and I needed her to decide which client was going to suffer. She yelled at me, told me to get the hell out of her office, and figure out a solution that doesn't force either client to be the loser. I fumed and left, she obviously didn't understand the reality. But once I finished pouting, I realized there was a way I could implement a temporary fix for one real quick, and then work on the other...
There are business realities, and there are engineering realities. A business needs to manage both to deliver something awesome, or get overtaken by somebody else that will.