and Tversky found that human judgment is generally over optimistic. People tend to underestimate the costs, completion times, and risks of planned actions, whereas they tend to overestimate the benefits of those same actions. (so called inside view)Daniel Kahneman
A more accurate way is to predict the future by looking at similar past situations and their outcomes. (so called outside view)
As all programmers know, the only thing you can predict about dependencies is that there will be more than you expectPaul Graham
I think there is more stuff on this in Rationalist Guide to Galaxy