In Agile software development, the Fibonacci scale consists of a sequence of numbers used for estimating the relative size of user stories in points. The Agile methodology is based on the concept of working iteratively in short sprints, typically two weeks long, where the requirements and development are continuously being improved. The Fibonacci sequence consists of numbers that are the summation of the two preceding numbers, starting with [0, 1, 1]. Agile methodology uses the Fibonacci sequence to achieve better results by reducing complexity, effort, and doubt when determining the development time required for a task, which can range from few minutes to several weeks.[1]

Procedure

edit

It is easier to determine the relative complexity of a task rather than figuring out how much time it requires. Due to this, when working with agile, the Fibonacci scale is used in terms of points to estimate the work, as opposed to the traditional measurement of time.[2] To calculate the size of stories in points, the following process is used:         

  1. The product manager sits down with the team to estimate the user stories.
  2. Each member estimates a number on the Fibonacci scale that he/she believes represents the size of the task.
  3. All members are ordered to disclose their number at once.
  4. Any differences in the numbers will be followed by a discussion until a consensus is reached.
  5. Each user story is added to a bucket which represents the corresponding point on the Fibonacci scale.
  6. The steps above are repeated for all user stories.
  7. The buckets are added to the backlog.

This process is like the game of Planning Poker. Giving each member the opportunity to think individually reduces pressure and results in a more accurate representation of the feature’s size. As the team goes through multiple sprints and the estimation process is improved, the product manager will be able to determine a stable velocity. The velocity is determined by calculating the number of story points completed in each iteration.[1]

Significance

edit

People estimate user stories with smaller points more accurately than user stories that have higher costs associated with them. As the numbers increase, the difference between two succeeding numbers increase exponentially and lead to more inaccurate estimates.[3]

  • Using Fibonacci series is helpful in this scenario because the larger user stories (i.e. stories of size greater than 8) that tend to lead to inconsistent estimates between each team member can be grouped to the nearest estimated Fibonacci number of the corresponding bucket in the backlog.
  • In case of small user stories the bucket difference is small and hence the final cost of resource and time could be finalized more accurately.

One good way to estimate the cost is to express it in terms of multiples of other known user stories' cost. This way, it will be easier for each team member to estimate the relative cost. The estimation process of comparing a story with two previously estimated user stories is called triangulation.[3]

The product manager can include a "0" value in his scale indicating that the user stories need very less time or resources.[3] Also, the user story that was assigned 0 cost cannot be used as a relative scale to estimate the cost of other user stories (i.e. we cannot say a story is 10 times harder than a story of size 0).

An advantage of Fibonacci sequence is that it allows us to disaggregate a user story from one large bucket into two preceding buckets (since a bucket is formed by adding the size of two preceding buckets).[3] This process helps to create optimal user stories used in Agile development.

Other estimation scales

edit
  • Linear Scale – Increments in a fixed value
  • T-shirt Size – (S<M<L<XL<XXL<<XXXL)
  • Playing Cards – Mostly used in planning poker ( A<2<3…)
  • Exponential series - ({a^n} for some a and for all n>0)

See also

edit

References

edit
  1. ^ a b "Sizing and Estimates Overview | CA Agile Central Help". help.rallydev.com. Retrieved 2017-02-10.
  2. ^ "Agile Project Management (PDF Download Available)". ResearchGate. Retrieved 2017-02-10.
  3. ^ a b c d Cohn, Mike (2005-11-01). Agile Estimating and Planning. Pearson Education. ISBN 9780132703109.