&quot;So why waste valuable time to do all this, if you know it&#x27;s not the truth anyway ? The answer is to accept that you will learn things as you go along, and that things take as long as they take, and to rather deal with that.&quot;<p>This maybe is applicable for a company developing new products internally, but for projects delivered to third parties, delivery dates are part of contractual obligations.<p>Estimates are hard, but it&#x27;s not like predicting the future with a crystal ball. Good developers in general get better as they gain experience in the domain, and in estimating itself.<p>Good project managers in general get better at spotting murky requirements that might be causing problems down the line, and try to clarify them early with the customer.<p>It&#x27;s not a perfect science either, but it&#x27;s a necessity in many real-world scenarios.