Estimation is a key step in any kind of work accomplishment and forecasting, and the IT world is no different. Historically, estimation was mainly carried out by individual experts. As we transition to the Agile way of working, instead of individual estimation, the culture is shifting toward cross-functional, team-based, collective estimation. It starts with size
estimation rather than focusing only on effort
-based estimation by an individual (mainly the developer).
By estimating, the team realizes a more accurate team velocity, which eventually helps the product owner forecast and plan better to meet an end-user expectation that is aligned with the overall company vision.
To that end, the Agile team carries out story point-based size estimation, whereby a story point is considered a unitless number that denotes the size of an item or an element of a requirement functionality and the user story. This number is picked from the Fibonacci series (1, 2, 3, 5, 8, 13, 21, 34 . . . ) or a modified Fibonacci series (1, 2, 3, 5, 8, 13, 20, 40, 100). Before assigning a story point (a number from the series), consider the following factors when assessing the user story:
- Complexity of the requirement
- Uncertainty associated with the story
- Volume of associated work
- Knowledge available within the team on that domain
The above factors, together with the relative comparison with another story (e.g., bigger/smaller, more complex to solve, less complex to solve), is also considered before assigning a size (in story points) to a story. For example, boiling water is a simpler activity than baking a cake. Therefore, if you assign 2 story points to the task of boiling water, then baking a cake could be given 5 story points, considering it is more than twice as complex as boiling water.
During the second half of an iteration planning meeting, while detailing the how
part of building the incremental value through small tasks, the cross-functional team estimates the story points by collaboratively playing the Planning Poker®
Below are some of the typical challenges a team faces during estimation:
- Teams have difficulty in visualizing the size of an item based on the above factors, without thinking about the effort it might take to implement.
- There is a tendency to oversize the story because the process seems lightweight and thought is not given to the relative comparison between two stories.
- Not having T-shirt size like XS, S, M, L, XL, XXL for user stories during the backlog refinement session leads to missing the trigger required to break the story down into smaller functionalities.
- There can be a tendency to preempt the collective discussion and have each individual story owner assign the story points to their project.
- Distributed teams, if they use only audio and WebEx, are not able to share their respective story point for an item together at one go, and that leads to bias stemming from other members' input.
- There is often lack of understanding of the need for story slicing; this leads to a situation in which, if the story is half done in mid-iteration, the whole story then moves to the next iteration and the team's velocity is affected negatively.
These challenges can be managed, as the team slowly matures around the estimation process, by focusing on the following best practices:
Coaching and mentoring from the team lead or a dedicated Agile coach
- An Agile coach or team lead provides focused a Agile estimation training session, including live examples/simulation-based exercises for teams that are new to this practice.
- The coach or lead supports the team throughout the estimation practice (part of iteration planning), providing real-time query clarification to ensure that the process does not appear one-sided and that everybody on the team participates actively.
- On a case-by-case basis, the coach or lead helps the team when they sense the need for reestimation and guides them in resizing the story based on the enhanced clarity or reduced uncertainty during the iteration.
- While conducting the estimation, the lead or coach encourages distributed teams to use collaboration tools, such as video conferencing, smart boards, and the Planning Poker site.
Iteration planning combined with story size estimation and task estimation, in ideal hours
- Estimate story size in story points, and estimate related tasks in number of ideal hours. Do not relate story sizing to ideal hours/effort for a simple reason: For the same story, effort may vary across team members.
- After completing a couple of iterations, have the team calculate the number of hours, say H, they put into implementing a story of size N to derive 1 story point. This equivalence of points to number of hours is not mandatory to know.
- Have a collective cross-functional team discussion about a story to break that story into smaller vertical slices. To better manage a story, consider the INVEST (independent, negotiable, valuable, estimatable, small, testable) criteria.
Knowing the value estimation brings to the team
- Story point estimation helps the team move from individual to team-based estimation, which unearths various aspects of a particular story when the members of the entire cross-functional team (developers, testers, analysts, etc.) come together to arrive at a consensus.
- With each iteration, estimation moves toward accuracy through comparison and retrospection. The team gains a better understanding of its true velocity and improves its velocity trend over its Agile journey.
Thus the Agile team can gradually elevate its Agile maturity where estimation plays a big role. It positively impacts the entire product ownership, whereby the product owner liaises between business stakeholders on one hand and the Agile team on the other to better forecast and plan for production releases. This method of work helps reduce the Cone of Uncertainty by building a solution through collaborative estimation and reflection to refine future estimations.