The previous sections assume that the big boss is the one who doomed you, but often there’s another interested party: the customer. The customer may be a single company you work for, a particular executive, a business unit, a person in marketing or sales, a "program manager," or someone else entirely.
One common problem that can accelerate doomed-ness is the customer and the big boss having different expectations. Perhaps one of the compromises I have described so far could lead to an outcome that is perfectly acceptable to the customer, but the boss (the liaison between the two groups) just can’t see it. Perhaps they disagree on a key feature, or quality expectations, or have some other issue that’s creating conflicting expectations—and you, as a contributor, cannot fulfill both at the same time.
Generally speaking, the person who is going to be hurt the most if you can’t make a delivery date is the one who is paying for the software—the customer. If the customer is not represented in the discussion above, negotiation may be impossible. This can be fixed by bringing the customer into the decision-making process. You can do this in a number of ways, such as suggesting, "Since we are not expecting delivery on date Y, you’ll update the project plan and discuss options with the customer, right?"
In Agile environments, you may be working directly with the customer, and the customer may see you as a living, breathing human being. In that case, the customer is much more likely to view the schedule as something flexible that can change, not a contract written in stone to be insisted upon.
So if you are doomed and the customer isn’t involved, try to get her involved. Make sure that she feels in control. Otherwise, we’re back to fight-or-flight.