Estimation is the most disputed practice in software development. The reasons include:
- It's difficult. We can't know every atom in the universe.
- It's easy to be out of date. Things changed frequently.
But the real reason is some kind of human being's fault:
- People pursue certainty based on uncertain estimation, and they spend too much time on it!
People do develop adaptive ways to reduce the requirement of certainty, but we still need to predict something in some cases (actually, precise prediction is the most exciting ability that scientists or society pursues. and I won't argue that the best way to predict future is create it ). so the question is:
- How cocould we predict the future without spending too much time on estimation?
Statistics comes to rescue.
The development effort is always different between individual stories. One story needs 2 days while another needs 5. But given 20 stories and another 20 stories, the effort is almost same.So, how about just use the completed story count as the velocity?Then you can predict future by just counting, not estimating!
Does this method require less variance among stories 'size? It does at the first glance. but again, statistics comes to rescue. it doesn't require less variance among stories 'size; it just requires less variance among stories 'size variance. it is true by nature. as long as stories 'size follows the normal distribution, the bell curve, using story count as the velocity is a good enough estimation.
I find someone else has same opinion as me. For more explanation, see the following article: story-points-considered-harmful-or-Why