Let me set the scene for you. Someone strolls up to you. It could be a manager, a customer, or even another developer. Let’s just call him Peter:
PeterHow long would it take to replace our billing system?YouIt’s pretty complicated, maybe a 8 weeks?PeterWe need it by the end of July.YouBut that’s in 2 weeks!PeterThis is really important, when is the soonest you can you get it done?YouWell we can shoot for 4 weeks.
How did you suddenly agree to do a 8 weeks work in 4 weeks?
This article hits close to home; I find myself in this situation almost daily. Personally, the most important take away is pushing the estimate until a complete scope of the project is provided. When I provided the estimate from the quick description of the scope included was a disclaimer on requiring the option to update the estimate later. In my experience, executing that disclaimer to update the estimate comes too late to change the schedule; you are then left to attempt to remove features or schedule overtime (paid or otherwise).
How do others handle these situations? Blocking until the full scope is provided is not always an option; at which point do you take a shot?