Friday, October 16, 2015

CIOs as Chief Improvement Officer: How to Make Accurate Estimate in Agile

Regardless of the method used, the most important thing with estimating is that it becomes more and more accurate the more you use it.
Many organizations are shifting from Waterfall to Agile mode. Agile does not take less discipline but needs more engineering and management discipline. Practically, Agile means short release cycle and better customer satisfaction. Technically, Agile needs to break down a large project into small blocks, in order to management it effectively, which estimate tools or methods do you prefer to use in Agile?

In Agile environments, there are two main estimate techniques: Fibonacci and Hours. It’s worth mentioning that Agile teams estimate tasks only in hours. Tasks are parts of a User Story; something very small that should take a couple of hours or so—definitely no longer than a day to complete. The larger the task, the lower the chance of estimating the exact number of hours associated with delivery. Estimating in Fibonacci is an Agile estimation technique that uses attributes. Fabiaschi numbers are example of an exponential estimation scale while multiple people work on estimation in parallel, it limits the team on possibilities to break down a task equally into smaller tasks. Fibonacci is associated with Story Point Estimation (using Story Points to estimate larger pieces of work). Story points are used to estimate larger pieces of work ( User Stories and Epics).

As the size of work increases, accuracy in estimation increases. In Fibonacci series, the difference in number keeps on increases. A lot of teams also use geometric series (like 2, 4, 8, 16, 32, …) instead of Fibonacci numbers.There are two main reasons for using Fibonacci; you get to choose whether it's a good idea in your context. Secondly the size between the buckets is proportional and gives a fairly good match to the differential in size that's both easy to calculate and sufficiently accurate. So while some people use the 'doubling' method, Fibonacci gives you a bit more precision without losing any significant accuracy. Because it's much easier to accurately estimate small tasks and the larger they are it gets increasingly more difficult to be as accurate. That's why Fibonacci works so well for story estimates in agile since the estimate range increases as the estimate gets larger.

Select the estimate tool you feel comfortable with via practicing, practicing, and practicing.  In the beginning, new teams will get it wrong by over or under estimating. This is perfectly normal. Like anything new, it’s important to stick with it long enough to determine if the method will work or not and will probably be something to discuss at the sprint retrospective. Some recommend new teams starting with a simple system whilst they learn and as they become more proficient the method they use can become more complex. Fibonacci sequence is used because, as the estimates become bigger so does the bucket size. Use Fibonacci, use exponential, use an arbitrary time-based scale, it doesn't matter that much in the long run. Once you complete stories you have real data, so set yourself up to react to real information as quick as possible without inferring more into your sizing than you should.

Growth in size jumps in time. In most cases, this doesn't take an hour, but takes two, something that doesn't take a 3 days, but takes a week. The size of work does not grow linearly to time spend on it for many reasons, psychologically and sometimes just how complexities compound the larger the work gets. At the end of the day, there are no rules about what system to use to estimate. The team can use whatever works best for them. Most agile teams are likely to experiment with different methods after researching what others are doing or based on the experiences of those in the team. Regardless of the method used, the most important thing with estimating is that it becomes more and more accurate the more you use it.


Post a Comment