2 observations from my experience:<p>1 - You can fix the time or the scope of the project, but not both.  I can say, &quot;I will deliver project X in 4 months&quot; but you have to be willing to let me toss out scope, and the earlier the better.  This does work.  Just like I can say, &quot;I will promise to deliver all the scope in project X, I just can&#x27;t promise how long it will take.&quot;  Agile helps break this into smaller chunks, and allows you to get more visibility into what&#x27;s realistic more quickly.  I&#x27;ve seen too many waterfall projects slip by 3-6 months at a time only when the final deadline approaches.<p>2 - I&#x27;ve seen more projects slip because of &quot;Unplanned work&quot; and &quot;Missed Dependencies&quot; than due to &quot;Misestimated work&quot;.  It&#x27;s either scope creep, or &quot;I didn&#x27;t realize we needed to test integration&quot; or &quot;Person X didn&#x27;t give me what I needed.&quot;  The only counter-examples I&#x27;ve seen are when engineers aren&#x27;t consulted in the estimates.