Your backlog is normally comprised of requirements in the form of User Stories which depict the resulting value required by the users of the system. During iteration planning, teams take the highest value requirements and assign them to the current or next iteration, filling the iteration to capacity. Agile teams typically do not decompose requirements into work tasks until they are assigned to an iteration. Agile teams spend the first few hours of each iteration going through iteration planning, and a part of that process is the decomposition of requirements into work that can be completed by team members. This is more commonly referred to as just-in-time work decomposition.
Task decomposition is not typically done until the requirements are assigned to an iteration. This ensures that the entire team can collectively review and discuss each requirement and determine a common approach to proceed. Task decomposition prior to iteration planning may result in considerable rework and waste.
Just as there is much benefit in the entire team reviewing and understanding each backlog item/requirement, there is similar value in the whole team working to collectively decompose the work required to deliver each requirement. For example, junior members of the team get exposed to the knowledge and techniques of more experienced team members. Teams can also reduce errors and increase quality by contributing to the implementation approach together. They can further help each team member have a strong understanding of all parts of the system regardless of which part they worked on.
Agile teams not only timebox their work and decompose requirements into tasks “just-in-time,” they assign tasks to developers only when justified by their workload. In fact, instead of having a project manager assign work to team members, Agile teams much rather have team members assign work to themselves; a technique called “pulling work” as opposed to “pushing work.” Agile teams want to ensure that they are working together as a team as much as possble. As work needs to be done, team members are encouraged to assign it to themselves. This way they can promptly do the work rather than sitting idle waiting to be assigned tasks.
Agile teams follow this practice to keep the amount of work-in-progress as low as possible. Work-in-progress is the amount of work that has been started, but not yet completed by the team. An Agile team values “done” work. Having team members pull work when they need it prioritizes completing existing work first and naturally acts to balance the workload across the team.
Do you want to know more about Agile planning? You can download our e-book, The Ultimate Agile Planning Handbook- for FREE.
It also explores:
Do you need a tool to manage your agile projects? Try TeamPulse, for FREE!