Estimating Agile Tasks for Developers
One of the biggest goals in Agile software development is minimizing extra work and documentation. Scrum teams reduce the paperwork around tasks and go for the most direct approach possible. One might think that task estimation would be something that Agile would cut out. After all, why would a Scrum team waste time estimating tasks when the developers can just begin working on them? On the contrary, estimating tasks is still a valuable part of Agile software development. There are a number of benefits to task estimation that outweigh the time it takes.
How Estimations Help Developers
So how exactly does task estimating help the developer role of Scrum teams? Most notably, it gives developers a consistent pace. Any developer can complete a task given the specification. However, completing a task without estimates is unpredictable. Time to complete any given task can vary wildly. Small tasks take almost no time, while larger and more complex tasks could take upwards of weeks. Without estimating, though, there is no way to know which tasks will be large and which will be small. By estimating tasks, developers have a general idea of how long a task will take. There will certainly be exceptions, and bad estimations at times, but a Scrum team’s estimates improve with time.
With a more consistent pace, missed deadlines and wasted time are reduced. This yields a more efficient development team. If developers take on tasks that are larger than expected, they may not be able to finish development by the deadline. In the case of Agile, deadlines usually cannot be pushed back. The next release simply will not have the feature that is still in development. This may not be an issue in some instances, but stakeholders often expect to receive features that they have been promised. If a large feature is pushed back to the next service pack, stakeholders can be disappointed. On the other hand, developers may work on tasks that are smaller than average. If developers finish their work far earlier than expected, it may be difficult to reallocate work. Instead of continuing to work on new software through the duration of a sprint, they may have to look around for more work. In either of these cases, the development team efficiency suffers. Estimates minimize the risk of inefficiency.
In addition to improving the efficiency of the development team, estimation gives developers a fair amount of time to complete tasks. This results in less stress for the developers. Knowing how much time a task should take from the beginning, allows developers to approach a task more confidently. Also, it allows developers to make informed decisions based on their own abilities. A more senior developer knows that he or she may be able to complete a task faster than a less experienced developer. Likewise, a new team member should realize that they may take longer than the estimated average.
From a more general perspective, estimates improve progress tracking. Tools like kanban boards are useful for showing how much work has been finished, how much is currently in development, and how much remains to be started. Task estimation gives weight to the tasks on a kanban board. Instead of just a number of tasks, the Scrum team sees how large or small each of these tasks is. Having five finished tasks, and five tasks to go doesn’t represent the halfway point if the five finished tasks were large and the five remaining are small.
How Estimations Benefit from Developers
The role best equipped to make these estimations are developers themselves. In addition to benefiting from estimating tasks, developers can help to create more accurate estimations. One reason for this is because developers are familiar with development. From problems that might come up, to the necessary amount of detail in specifications, developers have more of an intuition for estimation. What sounds small to other roles may be a red flag for a large task to a developer. Take the example of a checkbox in an interface. To those unfamiliar with development, it may sound simple and easy. However, this could be much more complicated, depending on the environment. A developer who has worked on the interface before may know that there are many steps to add a new checkbox. Furthermore, it may require resizing and shifting around of other elements in the interface. What sounds like a few minutes of work to most people, maybe closer to a day or more for developers.
Our Favourite Agile Books
We found these books great for finding out more information on Agile Scrum: