What are story points?
It’s an estimation strategy that tries to overcome some of the pitfalls of time estimation. It has been proven again and again that hours are not well suited for estimating how long it will take somebody to design/implement/test a piece of software.
A story point encapsulates:
* Level of effort
* Task complexity
* Uncertainty (higher if a feature has not been scoped yet, or if no Acceptance Criteria exist for it)
* Degree of connectedness (how much integration will be required?)
It’s hard to think about all of these things simultaneously, but it’s important to keep this list handy during story estimation so that everyone can be reminded of what are the things we ought to be thinking about before deciding on a particular estimate.
Another thing to keep in mind is that story points will naturally differ depending on the (size of the) team and the resources available at estimation time.
October 6, 2011 Update:
I just ran across Mike Cohn’s blog post about story points where he argues that story points really represent effort, not complexity, and that risk and uncertainty should also be taken into account. The reason for this is that everybody cares about “When will my team be done with this project?” and not so much about “How hard will the team have to think to develop this project?”.