Professional Documents
Culture Documents
The relative size of each of the projects stories (that is, how much software functionality each
story delivers)
The development teams velocity (that is, how quickly the team delivers the projects stories)
Various methods have been devised for measuring and expressing software size and velocity in general,
and the size of stories and their delivery within Agile projects in particular. The decomposition of an
Agile project into features using stories and then sizing those stories using story points can be viewed as
similar to the way Function Point Analysis decomposes a software project into data and transactional
functions and then sizes those functions using function points. Likewise, the Agile estimation concept of
development team velocity, expressed in terms of story points (delivered) per iteration, is similar to the
Function Point Analysisbased estimation concept of speed of delivery, often expressed in terms of
function points (delivered) per month.
Because an Agile project consists of a number of fixed-length iterations, it makes sense that Agile
estimation focuses first on determining the number of iterations required. Once that number is known,
it is usually a straightforward procedure to calculate estimates for both project schedule and cost by
combining the required number of iterations with the iteration duration and the number and cost of
development personnel involved.
Story Points
In an Agile project the relative size of each story to be delivered is measured using story points.
4. The developers story point estimates for the current story are now compared and assessed. If
all the developers estimates align, then the estimation process is completed for the current
story. The number of story points allocated is recorded, and the next story is selected. If the
developers estimates do not align, then various techniques can be used to move the group
toward an agreement:
o If the estimates differ from each other by only one value on the story point scale, then
one of the larger, smaller, or more frequently occurring values may be selected as the
estimate. The rationale for selecting the larger value is that this is a safer, more
conservative approach. The rationale for selecting the smaller value is that it encourages
the estimators to think carefully before selecting smaller values, because they know that
in doing so they may be committing themselves to the delivery of more functionality,
and hence, more work, within iteration. The rationale for choosing the more frequently
occurring value is simply that it reflects the groups majority view.
o If the estimates differ from each other by more than one value on the story point scale,
then the estimators with the largest and smallest estimates may be called upon to
explain the rationales for their estimates. After this, the estimators will typically produce
new estimates, and the process will be repeated.
o If after three iterations of the estimation process a unanimous agreement cannot be
reached, then a decision should be made. This may involve eliminating any outliers or
having the facilitator make the decision based upon his or her understanding of the
story involved.
The review should investigate the actual duration and cost required to deliver each story and should
compare those actual values against the estimated values. Doing this will help the developers
understanding of how to effectively allocate story points to stories and will also help to fine-tune the
likely development team velocity.
Story pointbased estimation has been devised in conjunction with, and specifically for, the
Agile development approach. The concepts and terminology used in story pointbased
estimation align with those used in Agile development. This alignment includes references to
project iterations and stories.
Story pointbased estimation can be completed quickly and easily and does not require the
developers responsible for the estimates to perform significant additional analysis or to have
additional specialist skills. Estimation can be incorporated into the standard planning sessions
prior to the start of each project iteration.
Story pointbased estimation supports the Agile principle of developers taking ownership and
responsibility for the software they will deliver. Estimates are created by the developers
themselves. Developers therefore understand that poorly considered estimates can have a
direct impact on their own work situation.
Story pointbased estimation supports appropriate input into the estimation process by the
different project roles. Once again, the developers who are required to deliver the software
provide the development estimates. Occasional lapses of judgment or lack of understanding by
an individual developer are mitigated through the use of a Wide-Band Delphi approach.
Business representatives provide additional descriptions and clarifications of software
requirements when and if needed.
For story points, one claimed major advantage of being a relative sizing technique is that it can be
quickly learned and applied as needed in a particular context. Unlike with Function Point Analysis, the
use of story points does not require that estimators learn and understand a full set of sometimes
complex and prescriptive rules and guidelines.
On the other hand, potential disadvantages of a relative sizing technique such as story points over an
absolute technique such as Function Point Analysis are as follows:
The use of story points requires recalibration within each organization and potential
development team in which they are used.
It is difficult to use external repositories as sources of information on likely development team
story point velocity.
Story points cannot be easily used for comparative benchmarking across organizations.
There is no authoritative source against which to assess the correctness and consistency of
project sizing.