We want to build to a DONE culture where teams strive to get every Story DONE, every Sprint.
Taking a relaxed attitude to finishing Stories in the following Sprint doesn’t help set the expectation that DONE is something to strive for.
Partly DONE Stories can lead to an test heavy plan in future Sprints as developers code right up until the end of the Sprint instead of swarming on the Stories the team have already committed to and getting them DONE.
Not DONE Stories are wasteful.
Like it or not, Team’s often equate SP to credit. They often ask, “how do I get my points (credit)”? By letting Team’s take their credit/SP in the following Sprint it sends the wrong message about working towards DONE. Only giving SP/credit for DONE Stories incentivises teams to think about getting Stories DONE if they want the SP/credit.
Team’s velocities are calculated by summing all of the DONE SP and dividing by the number of Sprints. This leads to a slight overestimation of what the team can actually get DONE as it includes SP that got done and SP that the team could not get done. Overestimation leads to over-planning and this has costs associated with it:
- Unsustainable pace https://www.benlinders.com/2013/working-in-a-sustainable-pace/
- Quality decreases
- Technical debt
- Team morale damage
- Cultural damage
- Staff turnover
- Onboarding new people takes a lot of effort and impacts the amount of value the team can deliver
Striving to complete the Sprint backlog that the team committed to in Sprint Planning encourages the team to master core Scrum practices that will help the Team get their Stories DONE eg
- Story writing
- Cross functional behaviours eg developers testing
- Actively talking about how to get all of the Stories to DONE
- Scrum ceremonies
Teams need to do some sort of re-estimation of any partially completed Stories so they know how many SP are left for new Stories in the coming Sprint. If some sort of re-estimation of remaining work isn’t completed then there is a risk that the team will be over-planned.
Quick and informal re-estimation of Stories that didn’t get DONE eg by the dev who is working on a Story, are likely to be less accurate than a formal re-estimation process eg whole team and planning poker.
If you are re-estimating anyway, why not update the Stories in the next Sprint with the more accurate numbers?
If a team re-estimates SP but doesn’t update the Stories then only insiders in the team with the secret estimates can accurately read boards, Sprint Burnup/Burndown.
If Stories aren’t updated it makes it difficult for outsiders (RTE, PM, Sponsors etc) to assess how the Sprint is progressing by looking at boards and in tools like JIRA eg if an 8SP Story
hasn’t been started with 3 days to go on a Sprint, is that a problem or not?
If Stories aren’t updated with the new estimates then it can be difficult to interpret reports like burndown charts eg how did the team get a 5SP Story done on day one of the sprint? If the 5SP being burnt on the first day obviously isn’t an accurate representation of effort expended then how can we trust any of the other changes in the Spring Burndown Chart.
Sprint plans with accurate, re-estimated Stories are more honest and transparent. Because of this, better decisions can be made.
Every Story that is partially DONE within the Sprint still has to go through some of the following Steps to get DONE in some future Sprint.
- The PO must prioritise the Story again
- The Team must review and rewrite the story removing the parts that are not required and adding any missing detail and conditions of satisfaction
- If the Story is much larger than originally estimate then it may need to be split
- The Story must be re-estimated so the team can make a good Sprint Plan
- The Story has to be tasked out on the Team Board
- The Story must be coded
- The Story must be code reviewed
- The Story must be retested from scratch across all test cases on all systems, devices and browsers etc
- Bugs have to be raised and fixed
- The Story must be signed off
- Throughout the Iteration the Team must update JIRA/Rally, talk about the story at Standup and communicate with each other in a timely and effective manner to ensure it passes through the Team’s Iteration workflow.
In short, any story that does not get DONE, even stories that are “99% DONE” will still require a fair amount of work from several people in the Team in the next iteration. Teams should be aware of this and they should focus on getting the maximum number of Story Points DONE.
A simple checklist for planning a Sprint Backlog.
- Quick refresh of change suggestions from previous Retro
- Set a Sprint Goal
- The Sprint Goal is an objective that will be met within the Sprint through the implementation of the Product Backlog, and it provides guidance to the Development Team on why it is building the Increment – The Scrum Guide
- Goals should be SMART eg Specific, Measurable, Achievable, Realistic and Time-bound.
- Capacity Plan – Log team availability in the coming sprint (including feature owners)
- Agree Velocity – Based on previous Sprints’ velocity, adjusted for capacity changes
- Re-write and re-estimate any not DONE Stories from the previous Sprint (if they are still a PO priority)
- Finish writing any incomplete Stories from Grooming
- Split Stories where possible – smaller is better
- Write Stories according to INVEST http://codesqueeze.com/how-to-invest-in-your-user-stories/
- Write tasks on postits
- Estimate using planning poker – use fingers for 1, 2, 3, 5, 8, 13, 20 …
- Pull prioritised and Estimated Stories into Sprint Backlog until the Velocity is reached
- Hold a fist of 5 vote to check Team’s confidence in getting every Story in the Sprint Plan DONE http://agileanswerman.com/5-reasons-a-scrum-master-should-use-fist-of-five-voting/
- Team Commit to getting all of the Stories DONE
- Team put printed Stories from Rally and Tasks on their Board
- Team hold a mini-huddle to agree the tasks that each Team member will start on first (probably after lunch). Move tasks into In Progress with Avatars.
- Update the started Stories in Rally!
I ran a workshop with my Scrum Masters recently asking them what makes a great Scrum team board. This is what we came up with:
- A big team name banner / board title
- Team sheet showing clear photos of everyone and their names
- Velocity (with label eg a number by itself is not enough)
- Specific Measurable Achievable Realistic Timebound (SMART) Sprint Goals
- Clearly labled columns
- Continuous improvement activities
- Stories and tasks are colour coded
- Key explaining what the colours indicate
- Leave calendar showing when team members will be on leave (up to date)
- The Team’s Definition of Done
- Neat writing that is legible from a distance
- Avatars clearly showing ownership of Stories and Tasks
- Up to date, accurate and tidy
This is my new Blocker template for use on Scrum Boards and other visual management boards (VMBs).
I use blockers when I want to clearly visualise that something is blocking a story or stopping a team from meeting it’s planned goals.
The characteristic of a good blocker are:
Big blockers can’t be missed and they give plenty of space to write the cause of the owner of the blocker on the card. I’ve attached a template below but I usually print about six per A4 page.
Red is a warning colour and we avoid using it unless we want to call attention to a problem.
Have a space on the blocker to write brief details about who or what is causing the blockage. Some team only put a red X on the impacted work, I call these mystery blockers, because there is no information about what the blockage is.
Blockers should also be dated as soon as they are placed on the board. This way everyone will know exactly how long the blocker has been an issue. If blockers are an ongoing issue for a team the dates can be recorded and tracked as a metric like average blocker cycle time (how long from a blocker going on a boar to being cleared). Different blocker strategies can be trialed and you can see if they have a positive or negative impact on average blocker cycle time.
Blockers should also have a clearly identified owner who takes responsibility for clearing the blocker and get the work progressing again.
The blocker should be placed right next to, but not on top of the task, story, feature etc that is blocked.
Printable Blocker Template
Product Owners definitely do not vote or otherwise influence the Team’s estimates during Planning Poker (unless they are also developer).
Basically, the best people to give estimates are the ones who will actually being doing the work.
The PO Fallacy
The PO Fallacy is that if the PO convince the team to give lower estimates then they can get more work done. They mean well as they are probably thinking about strategic goals, what their leaders wants or customer satisfaction. But the likely net result of compressing Story Point estimates is some or all of the following:
- Overloaded Sprints
- Not getting all of the Stories DONE that the Team committed to
- Stories that do not meet the Team’s Definition of Done
- Quality drops as Stories are rushed
- Tech debt caused by the Team taking shortcuts to get everything completed
- Unsustainable pace as the Team work evenings and weekends to complete the work they committed to
- Unhappy developers
- Staff turnover
- Reduced velocity in the future as new team members are brought up to speed
How do PO influence estimates?
PO are often unaware of the effects of encouraging teams to compress their estimates. In this situation they might do the following:
- Directly ask the Team to give a smaller number
- Challenge the legitimacy of the estimation even though they lack the technical knowledge to do so
- Challenge team members who give higher numbers during the initial rounds of estimation
- Let the team know in advance what “has to be done”
Sometimes POs are aware that they shouldn’t be challenging the Team’s estimates so they use less direct methods.
- Let a confederate in the team like a Scrum Master or a senior technical person know exactly what “has so be done” in the Sprint prior to the estimation session. The confederate then compresses the Team’s estimates on behalf of the PO
- Give subconscious cues like laughing, making faces, rolling eyes when the team or a team member gives an estimate that they think is too high
What should the PO do during estimation?
Generally the safest approach is for the PO to stay silent and still and trust the team to come up with an accurate estimate.
More information https://www.infoq.com/news/2010/08/product-owner-planning-poker