If it is true that time is money and, once lost, can never be found again, it should be no surprise that the “work smarter, not harder” mantra has become the drumbeat that agile developers must march to. One pillar of project estimation is having a solid grasp of how long will a given task take, and how long to complete the entire project.
Even for those who have a strong grasp of this concept, delivering truly accurate estimates can become a frustrating, time-consuming process that results in projections that are far off the mark. Why? Because falling prey to the wiles of the “time trap” is easy, even for the most seasoned professionals.
Conventional wisdom dictates that tracking time against estimated tasks enables more precise comparisons between actual and planned estimates. In theory, this should allow for greater accuracy and better estimation practices.
However, the truth is that more often than not, time tracking becomes a trap—a perilous sinkhole masked by a seductive façade—that sucks in developers, project managers, and whole teams. One of the greatest dangers posed by the time trap is inaccurate estimates that result in hazardous outcomes, including overruns and a drop in the perceived value of the project (and by extension, individual developers and the team at large).
Some people can become bogged down in the minutiae of accounting for every minute spent on tasks or projects. The relentless drive to capture more and more data can become a serious obstacle, a bottleneck leeching away productivity that prevents project stakeholders from completing critical work at hand. Too often, it seems that time tracking can devolve into an intrusive burden, imparting the feeling that Big Brother is peering over people’s shoulders.
With so many diverse tasks needing attention throughout the workday, accurately tracking and recording time spent on each individual item is inherently troublesome. So, while most developers try to honestly account for their day, trying to make the numbers add up to a full eight-hour day can result in unintentionally fuzzy time-keeping, ensuring that future estimates based on this data are inherently inaccurate.
Another fundamental hazard of the time trap is the temptation to build project estimates based on time logs from previous efforts. On the surface, it appears to make perfect sense: If it takes a developer X hours to complete task Y, then it would stand to reason that similar tasks will take a like number of hours.
But, of course, no project is ever exactly identical to those that have come before. Natural differences introduce an element of unpredictability that, unless addressed, can render estimates imprecise at best, and wildly wrong at worst. Even if teams can achieve high accuracy rates for actuals versus planned against tasks, there is no good way of leveraging that data to improve the estimation process. For instance, if a team’s actuals exceed its planned by 10%, should a 10% pad now be added to the next estimate? It’s just not that simple.
Although the premise of time tracking as an effective means for creating accurate project estimates initially appears sound, closer examination reveals it to be an imperfect solution. To summarize, it is easy for time tracking to become a bottleneck that relies on erroneous data, which doesn’t always take into account the natural variances that exist between projects.
But is there a better way? Yes! There are more efficient means for gathering and assessing data. Alternatives like lean cycle times and story points that enable the creation of more accurate estimates, aren’t unknown to agile teams; they’re just rarely implemented or not implemented fully.
The most treacherous fallacy of time tracking for estimation comes in its façade of productivity: Developers and teams employing time tracking generate immediate, tangible data. This data may be inexact and based on fuzzy record keeping, but it is available the minute a value is entered into a spreadsheet, thus fulfilling the need for instant gratification. Options such as lean cycle times and story points, on the other hand, require calibration time and a shift in mindset.
Moving from time tracking to alternate methodologies is not trivial, and it requires a concerted effort by all stakeholders, from individual developers right up to the company CIO, to think differently. Generally, the end goal for agile teams is to improve trust between corporate leadership and IT, specifically, trust in IT’s ability to accurately answer the question of “How long is it going to take?” The only way to build trust is to achieve predictability, and that means a paradigm shift in the way data is gathered.
The solution is simple: Stop estimating! If a task can be measured, why expend time and resources unnecessarily to estimate it? Instead of providing an estimate, consider taking a measurement of how fast your teams can deliver, using proven alternatives to time tracking. For example:
• Cycle times—the measure of wall-clock time between when a task starts and when it is finished—provide hard, statistical data that can be used to generate more accurate forecasts, rather than an estimate based on wishful thinking. Cycle time variation, a staple in lean manufacturing and an underpinning of Six Sigma strategies, supplies firm data that can be used to reduce cycle time variations in successive projects. It also offers a framework for minimizing disruptions that can have substantial efficiency and quality impacts. Once teams have control of their cycle times, it is far easier to take productivity measurements that can be used to create more reliable forecasts.
• Story points—the practice of comparing stories, assigning relative size points, then anticipating sprint velocities to determine how many points can be delivered in a given sprint—is another solid option for building accurate forecasts. Story points offer insight into relative complexity, allowing teams to calculate future iterative results based on size and scope rather than by time or effort. Because story points represent a more evidence-based approach, as more iterations are completed, the more accurate story point forecasts become.
The idea of not estimating is so radical in its simplicity that it can be hard to accept. However, the more projects delivered using these outlying options, the more each forecast can be fine-tuned to account for project variables and requirements. Once teams have the requisite hard information for determining average task times, they can use these averages to present more accurate forecasts, reset expectations, and interject that much-needed predictability into the agile environment.
The decision to take the path less traveled may be a difficult one, but it will also make all the difference.
This post was originally posted on SDTimes