Tasks

Work items are decomposed into tasks for implementation. Each task should have a label or description, and an estimate of how long they should take to complete, in ideal hours, to give some idea of the task's size. An ideal hour is one hour of productive, uninterrupted work. In an office, particularly when a person has other responsibilities, they will not manage many ideal hours in a day - whenever someone comes in to talk to them, or they must work on something else, or they are waiting for another person to finish something, they stop working, at least for a while. Thus, workers should not be expected to complete 7 or 8 ideal hours in a day, and an employee working full-time on a project may only manage 4-6 ideal hours, depending on how dedicated they are to a single task. Employees with their time split between several projects may only complete 3-4 ideal hours a day, due to interruptions and switching tasks.

Tasks are created during the initial meeting of an iteration, which is an estimation meeting. The team should use index cards to allow everyone to contribute equally, and index cards should be available later in case new tasks need to be added. The entire team should look at the different work items they will complete in the iteration, and work together to define all the tasks to be done for the story to be completed. For example, making a sandwich may require 4 tasks - getting the ingredients out, spreading butter on the bread, putting the sandwich parts on top, and putting the other slice of bread on top. However, one group member may point out that there may be leftover ingredients to put away, someone else may want to specify the different ingredients to be put on, and another person may want to put mayonnaise or margarine on the bread instead of butter. The whole team should be included in the meeting because discussing different points of view and challenging assumptions leads to a better understanding of the tasks needed. Some team members may come up with tasks that should be added, broken up, changed, or removed.

Once the whole team has agreed on which tasks are needed for the work items, they should estimate how long it will take to complete each of them, in ideal hours. Again, it is important that the whole team work together, because at this point it is not clear who will do each task, and reaching consensus as a team improves the quality of an estimate. Tasks are not assigned to specific people because someone else may have to substitute if the obvious person is busy. Team members should take into account how long similar tasks have taken in the past, and what (if anything) has changed since then that would influence the time to complete the task. Once all the tasks for a story have been estimated, the team should move on to the next one.

When the team has agreed upon all the tasks and their estimations, the task index cards should be put onto an iteration chart. The three most important columns on the chart are 'Not Started,' 'In Progress,' and 'Completed.' Other useful columns include 'Planning,' 'Blocked,' 'On Hold' and 'Abandoned.' If the team is new at this method, it may help to have a 'Testing' column, to make sure that every task is properly tested before it is marked completed. Since estimations of duration and task breakdown can change during the iteration, there should be space to add new tasks and the freedom to change ideal hours.

The tasks should initially be put into the 'Not Started' column. During the course of an iteration, the team members should put their initials on the index cards and move them into the 'In Progress' column. Generally, only one person will be working on a task, and each person should work on one task at a time. This prevents time lost by the person switching back and forth between tasks. When the person has finished their task, they should move it into the 'Testing' or 'Completed' column, write down how many actual hours it took them, then select another task to work on. This way, team members do not have to wait to be assigned another task and can determine which task is more important or more suited to them. The number of actual hours will help the team estimate the time it will take to complete similar tasks in future iterations.

After the iteration, there may be some tasks undone. This does not mean that the team has failed, only that they underestimated the required effort, and so took on more than they could do; the business may prefer this to the team having to find additional work to do for the final days of the iteration. In the final meeting of the iteration, or the first meeting of the next one, they should discuss what went wrong, what they can do to improve performance, and where they can improve the estimation process. In this way, they can define tasks and estimate duration more effectively in future iterations.