Recent conversations with some co-workers have prompted me to realize that both sides are equally right and equally wrong about the value that estimation provides.
Developers: Yes, it is what it is. Putting a number on a set of features will not change how long it will take to implement, test, and release. I think people understand that, and if they don’t then you should try to explain that to them. However, you do have to realize that without any idea of how large an effort something might be would result in a chaotic plan that would have no basis whatsoever. How else can one plan for the right amount of budgets, resources, or what expectations to set with say – users and marketing?
Asking for estimates, for these purposes – as long as managers understand that they are estimates, is only fair.
Project managers: The other side of the coin. Yes, estimation is important for the reasons outlined above. But, and I’m going to repeat myself – estimates do not (and can never) change the inherent amount of work that something entails. Estimates are only useful for high-level planning purposes when used with a list of risks and assumptions, and an understanding of queuing theory (which will help derive the right buffer sizes).
There is no substitute for actual velocity – and that is the only thing that is real. Also, accurate estimates is an oxymoron.