When I go in to help teams suffering from incomplete or missed iteration goals, one area that I naturally look at is the iteration planning. How is the iteration planned? Does the team use velocity as a measure of “yesterday’s weather” with capacity as a double-check? Is the team empowered to say no to more work? Are they using a buffer in their capacity planning? If so, what is it? Has it been adjusted lately? How?
I also look at what happens during the iteration. Are the team and management respecting the buffer? How are critical fixes and production support being handled during the iteration? While there can be many root causes for a team consistently not meeting iteration goals, I do find that a misunderstanding of what the buffer is for--or simply not respecting that buffer--is a leading cause of missed iteration goals.
What is the buffer?
The buffer is calculated as part of capacity planning for iterations. It is, in a nutshell, time during the sprint that is “protected” in the iteration plan. If a team is planning out their iteration and fills it absolutely to capacity, then the sprint plan is extremely brittle. This is very risky, with teams usually discovering that for one or many reasons they can’t complete all of the work planned for the iteration.
The buffer is time that is used for various things