On the other hand, we may spot from time to time the sentence "Estimation is waste". So, where's the Truth? Is it waste or not? And is estimation a fine skill to have? Here is my personal opinion:
Estimation is a Good Thing when we want to answer questions like:
- how many months will pass until the project will have been finished? (if the unit is weeks, don't bother estimating)
- can we do the work that is ahead of us with the staff the we have, or do we need more people / more teams in order to do it? How many do we need?
- in order to satisfy customer needs, we can implement solution A, B or C; the solutions have different costs and different attributes in terms of scope, risk, maintenance, etc. Estimation of cost helps us with making the right choice
- we have some work ahead of us that we need to undertake now, regardless of cost
- we have ahead of us a chunk of a bigger effort, such as a small feature or a group of user stories and we feel this work will take us just several iterations, or less, to accomplish
The last bullet may be surprising at first, but let's honest about it: a team of N people is working on something. The team is asked for an effort estimate for several next user stories. Usually, the person asking the question imagines that the effort associated with this work is X. The development team is telling them this is twice as much or half of X. What serious decision can be made in this situation based on comparing X with 2*X? Providing any number in this case opens possibility for endless discussion. The best thing the team can do is to work on these user stories and do not waste their time arguing what the "real" effort estimate should be. Velocity is much important and tangible measure here, than effort.