When you are employed as a developer, you usually don’t get a chance to choose on what you will work. It might be a new application that must be written, it might be an old one that needs maintaining, or it might be a legacy system in which you have to plug holes just to keep it at float.
Whatever the case, there is one thing that is always the same: “deliver the thing before the X date in perfect working condition”.
Ideally you can choose when the X date will be (more or less). You make an estimate of the work that needs to be done, you present this to upper management, they take it to the client, the client says “No... that’s too late” management trims the deadline etc, so you get more or less a delivery date around date X.
But sometimes the client comes and says “I need this working like a charm before X date. Period!”.
Now, it might be a development that takes too much, it might be fixing an application that needs to be put out of its misery and the fix takes too long.. etc.. etc.. but something that can’t be humanly feasible until the X date, much less working like a charm.
Upper management won’t tell the client to take his stuff and go somewhere else, so you are stuck with it. No matter how you choose to do the stuff, no matter how many people they bring on the team, some day the s**t hits the fan.
How do you convince upper management that it can’t be done? (and may I add “Period!”)