pioneering outsourcing 2.0
14  02 2008

The “WHY” of Sprint Backlog : The Spirit of Sprint Backlog

Sprint backlog is a Scrum Artifact that many Agile teams find useful. A sprint backlog [as mentioned in Ken Schwabers Book] helps the team in following ways:

  • It allows them to see where they are and how much work is pending in a sprint
  • Provides them focus for working during any given day
  • Helps the team self organize by making them coordinate activities daily
    • In short, sprint backlog should help in implementation of Agile methods.

It is important to note why certain practices regarding “updating a sprint backlog” are designed the way are. In this post, we review the “why” of sprint backlog and practices regarding updating the sprint backlog:

  • Sprint backlog is incremental and iterative. The team tries and divides as many requirements as they can into tasks. However, even the most experienced teams would discover tasks/ dependencies on system [arrange installation of particular IDE for instance] during the sprint. The difference between effort required to divide the entire project backlog into a sprint backlog that is “100% complete” and “reasonably complete” during a sprint planning meeting is immense. Hence, the teams could decide [especially for sprints longer than 2 weeks] to just break part of project backlog into tasks and start the sprint. They can add the tasks as they discover them. It is important to note here that teams committ to the requirements from a project backlog [estimated using relative estimation techniques] and hence, sprint backlog tracking is not “directly related” to how many requirements they can complete in a given sprint.
  • A sprint backlog is a “team artifact” and they are not obliged to share it with anyone else. This is primarily because a sprint backlog is generally work in progress and can give only context based visibility. If the management or customers so desire, the team can keep a sprint wise project backlog of requirements and update the same when a requirement is completed. This is also important because Agile teams engage customers and management from requirements and features perspective. They would provide visibility from “this feature is done” perspective and not “this task in this feature is done, while feature is still work in progress”. The latter is not meaningful information as either the requirement is completed or not. In case management or customers wish to know how long it is to complete a requirement, they can ask the question during the sprint review meeting. The teams can decide to share the sprint backlog with the management or customers, probably after explaining how it works.
  • Sprint backlog promotes teams “self organization”. One of the main rules of doing work is to plan effectively, revisit/ revise the plans and make effective decisions. Discussion of who would take what task and self volunteering for the same help the team collaborate and engage each other. This promotes self organization, as does the ability to take on tasks being done by someone else [if your task is completed or you find an important task is lagging behind]. In addition, every single team member updates the sprint backlog and its not a responsibility of one member alone. All the above are designed to have members talk to each other regularly, depend on each other and be one unit.
  • Sprint backlog is “collective”. There is no such thing as “all tasks of A are done” and “two tasks of B are not done”. The team fails or succeeds as a team and not as an individual. Hence, the incentives are to be a team rather than lone rangers. This is again in keeping with the central Agile philosophy.
  • Sprint backlog is “look ahead” at “work remaining” artifact. The team always focuses on “work remaining” as that is the thing they need to plan, organize and manage. Its no good knowing we have done “all this” till we know “this is what we still need to do”, as completing that would get the team to “done”.

As long as the teams maintain the spirit of sprint backlog as highlighted above, it would provide them a powerful tool [along with some others] to self organize, inspect and adapt during a sprint.

Popularity: 14%

10  02 2008

Updating the Sprint Backlog

In our last post we provided a brief introduction to Sprint Backlog, we discussed, how at the end of the sprint planning meeting, the team comes up with a reasonable estimate and breakdown of effort involved in converting the requirements to completed functionality. The detail of effort needed is usually called “task breakdown” and can be equated to “work breakdown structure” as mandated by “defined process control”. Often, this would be captured in a document format and at the end of sprint planning meeting, this looks like this:

Sprint Backlog - Initial

After devising this backlog, the team gets down to work. However, the team visits the backlog once a day [typically after the daily stand up]. Basically, the team would update the backlog in these ways:

  • They will update the hours remaining for each of the tasks. This is a subtle shift from traditional methods. The team is not recording “how many hours they spent on a given task” but “how many hours are left”. This is important because measuring how much you have come to makes sense in a defined journey [going from Los Angeles to San Francisco for instance] but not in software where you can only “estimate” the journey. Also, at all stages you can only manage whats coming ahead rather than whats past. However, some teams would track hours spent for tasks. This can be for purposes like estimation information for future or timesheets. However, like all things in Agile, it is left for the team to decide if they want to measure the time spent or not.
  • The team can add/ edit/ delete tasks to the sprint backlog. There can be tasks that are discovered, as they work on requirements during the sprint. The team can take a task and break it into two or three or more tasks. The team can find that a given task is not needed [for instance UI secondary review or training for any technology] and hence, delete these tasks or keep the time remaining for these tasks as zero, from the day they discover, they don’t really need these tasks. This is especially true for tasks which can be completed in many ways [you can organize training for two people or get two new people on board for instance]. For each task deleted/ added/ edited - the team would discuss the reasons why the same had to be done during sprint review, especially if they are not able to complete the sprint target [complete all given requirements to working features].
  • The team can re-assign a task to another team member either before the task has been started to be worked on or while it is being worked on. The “Responsible for” person column then has two names rather than one name.

After about 3 days of working, our backlog, after 3 days of regular updating, could appear like this:

Sprint Backlog - In Progress

Looking at above, lets understand sprint backlog a bit more:

  • It appears that there are some tasks went fine - the team took them on and completed them [most of the tasks in white belong to this category]. However, on a closer inspection of the backlog, you don’t really know. You don’t know if the task was completed fine in the time the team originally estimated or whether team did it in less. This is because at the end of sprint, the first question you want to know is whether the task [and requirement] is completed or not. If all requirements are being faithfully developed into functionality, consistently and the team performance is improving every sprint, details of time spent/ exceeded seem trivial.
  • Similarly, lets review the tasks highlighted in blue. We know at end of day 3 - the time remaining for the tasks is as much as we estimated. However, we do not know if the team has been working on these tasks at all or working hard enough but getting stuck after 8 hours of work. Interestingly, the task in yellow “Integration Testing” has more work left after 03 days. This can be due to rework, stringent or new quality checks or poor coding. Such details and patterns are easily observed using a “time remaining approach” and the team can discuss the same during sprint review meeting and possibly come up with root causes for why this is happening. Once, the root cause is identified, the team can devise a solution to overcome that.
  • The task in green [last task] was discovered on third day and added to the backlog that particular day, while load testing of Member Sign In was assigned to two people.

After 05 days of updating, and before the sprint review, the sprint backlog could look something like below [this is ideal and hopefully the teams would get there after 3-4 sprints]. Any task not completed means corresponding story is also not completed.

Sprint Backlog - completed

In our next post, we will review the philosophy behind “time remaining approach” and “why is sprint backlog designed the way it is”.

Popularity: 12%

Next Page »