A Brief History of Agile Estimation
In traditional software development models, like Waterfall, estimation was typically a significant upfront activity. Project managers and architects would attempt to predict timelines and resources for the entire project scope. However, the inherent uncertainty in software development often led to missed deadlines, budget overruns, and features that didn't meet evolving user needs.
These challenges highlighted the need for more flexible and iterative approaches to both development and estimation.
Agile methodologies introduced a paradigm shift. Instead of detailed long-term plans, agile focuses on short iterations, continuous feedback, and adaptive planning. This philosophy naturally extended to estimation. Agile estimation techniques aim to be quick, collaborative, and provide just enough information for short-term planning rather than precise long-term forecasts.
The focus shifted from estimating absolute time to estimating relative size or complexity, which proved to be more reliable and less prone to wishful thinking.
Story Points: An abstract measure of effort required to implement a user story. It's a relative value, comparing stories to each other rather than assigning specific time units. This helps decouple estimation from individual developer speed or specific hours.
Planning Poker: A consensus-based estimation technique. Team members use numbered cards (often following a Fibonacci-like sequence) to anonymously vote on the effort for a story. Discrepancies lead to discussions, helping uncover assumptions and reach a shared understanding of the work involved. This is the core technique Agreemo facilitates!
Other techniques like T-shirt Sizing (XS, S, M, L, XL) also found their place for very high-level or early-stage estimations. The common thread is a move towards relative, collaborative, and just-in-time estimation.
While story points and planning poker remain widely used, teams are increasingly looking at flow metrics (like cycle time and throughput) to forecast delivery. The #NoEstimates movement also challenges traditional estimation practices, advocating for breaking work into small, similarly-sized pieces and focusing on flow instead of upfront estimation for each item.
The journey of agile estimation reflects the core agile principle of continuous improvement – always seeking better ways to understand and manage the complexities of software development.