From http://www.aqee.net/it-ships-when-it-ships/
It is very difficult to predict when a task can be completed. All the software engineers I have ever met have a headache, including myself. Some people will overestimate the time required to develop a function, while others will greatly underestimate the workload at hand. But is this a real problem? No, this is not a problem.
I don't know who invented it to set a deadline for one thing, which is meaningless. Even if you do one thing and all the tools are on your desktop, it shouldn't have a deadline. Our goal is to release software as quickly as possible. It's like a football match. When your opponent is 1-0 ahead and only has 5 minutes left, all the team has to do is to make every effort to score as soon as possible. In this atmosphere of great pressure, what players should do is to stand up and give full play to their own levels. No one can ask the team members when to score the first goal. Not before the competition, not in the competition.
I firmly believe that managers do not need to worry too much about the deadline. What they should do is ensure that all players know what the goal is, how to achieve it, and ensure that all players can work together. A team works together to maintain super work efficiency no matter how the work progresses. The only measurement criterion is productivity.
[It ships when it ships]