Recently someone in Redmond caused a bit of a stir with a blog piece about causes for the delay in Vista. We’re not going to ship Vista until it is ready, and we thought it would be ready by one date, and we were wrong. Why ? People, like me, who work outside development simply don’t know and people who do work in development are too close to be completely objective. However I came across this tonight in Jason Kolb’s blog. It gives some indication why forecasts go wrong.
people who have never written software themselves think of the development process as something like building a house.... [it] is more akin to solving a Rubiks cube: you know what needs to be done and how to do it, and you have a very rough idea of how long it will take you. Sometimes, in fact, it'll only take you a couple of minutes because you get lucky and try the right combination within the first few minutes. Most of the time, however, it's a process of trial and error, and you really don't know how long it's going to take. You could ship it early, but it's probably not going to have solid colors on all sides.