As pointed out in the comments on the article page - programmers are actually pretty good at estimating.
They are very bad at defending their estimates, though, and are often forced to adjust down unrealistically. Which raises the question - why ask for the estimate in the first place. And the answer is "to have a scapegoat"
The manager gets credit for success, and the developers get the blame for failure.
The manager gets credit for success, and the developers get the blame for failure.