To Split or Not to Split, It’s Really Complicated.
At our most recent sprint review, a team I’m coaching completed all but three stories. So at sprint review, we were trying to decide what to do with the stories and whether to move them into planning or split them. All three stories had outside dependencies. All three had completed tasks and two of them were still blocked by the dependencies. While there could be a lot of second-guessing as to how we got ourselves into this fix, the burning question at the time was what to do about the points. We looked at three possible scenarios:
- Moving the story to planning and all the points with it.
- Splitting the story, leaving a 0 point story with finished tasks, and moving the story to planning with all its points.
- Splitting the story and re-estimating each part of the split.
Now, I will say that this team is new to Agile and has recently started tacking Velocity Variance and Story Completion Ratio in an effort to understand what impacts their predictability. As with all new metrics, the team is very focused on them. We are calculating the Velocity Variance as Velocity this sprint – the three sprint average divided by the three sprint average times 100. Story completion ratio is calculated Stories completed from sprint planning/ stories committed at sprint planning. You can see the angst this could cause with three stories affecting both measures.
Scenario 1 – Move the story, all its tasks and all points to the next sprint. I have worked in teams that took this approach. We did not mind a few lumps in our velocity trend. For this team though, there was an objection to inflating the sprint by three stories, one of which was a 5 pointer. They saw the extra points as a potential ding for the Variance calculation. Also they had just planned a big sprint about two sprints back and didn’t make the commitment so were shy of having a really large number. Also, having the story with its completed tasks they felt was misleading, as some of them were rather large so the math just looked funny. Day one of the sprint I have completed 15 hours toward a story.
Scenario 2 – Split off the completed tasks into a 0 point story and plan the remaining tasks in a story with all the points. This solved the problem of having too many completed hours in the sprint but still caused the sprint to seem inflated. The other benefit of splitting was in our tracking tool there was less scrolling and the team could focus on the tasks left to complete. The velocity on average would continue to be as accurate as possible though the Variance could still take a hit on 2 sprints, the Story ratio would only be affected in the “failed” sprint.
Scenario 3 – Split off the completed tasks into a story, move the story with incomplete tasks to planning and re-estimate each part of the split. Although not the classic way splitting is taught, it would alleviate the concern over velocity variation. This prompted a lot of discussion on whether the split actually gave value and could be a “real” story indicating that the story itself might not be small enough. When the team ran a couple of examples we found that most of the incomplete tasks were either data manipulation or testing. The team felt this indicated that the stories had been held by the blocking issues and not too large to complete with data and testing in the sprint.
The team chose to implement Scenario 2 with the modification that they would not plan blocked stories in a sprint. In the case of the two blocked stories, one was waiting on a data file and the other was waiting on wording from the legal team. This lead to another best practice for our team, plan stories only if all of the external dependencies have been resolved before sprint planning.
The biggest win was the lively discussion and the empowerment the team demonstrated resolving their incomplete work issue.
Comments (4)
Damien
I think scenario 1 is the option most of my teams have taken – just move the whole thing into the next lot. But then again we don’t track hours during the Sprint – we leave the tracking to completed stories – so a 15 hour hump isn’t visible to us.
And like your last statement – that was our biggest win too.
Thanks for your comment. I agree that helping the team work it out is the biggest win.
Jeevan Mathew
Hello!
I am not very clear on if the ALL the stories were not completed due to (external) dependencies – but assuming so…. I would have considered the following option (4th one?)
Leave the stories in the sprint where the team has completed their tasks. what is remaining in them is the testing and acceptance. Once dependent stories were also complete, I would test the 3 stories and accept them as well. Any defects will be addressed with in the upcoming sprint(s) – depending on the priority. This way your velocity & the variance won’t be affected. yes it carries something into the technical debt, but its a better option to me. I would DEFINITELY add this case during the retrospective and poke into why the dependencies were also not got completed together with these stories and future planning should reflect it.
Regards,
Jeevan
Ian Wermer Gibson
This is an interesting one. Our usual approach is to split, and allocate some of the points to the done part of the story, and some to the remaining part of the story and it’s tasks. Like you say, there are some issues with this, was the Story too big? Still, we need a pragmatic solution to the problem.
Our biggest issue, is that in the tool we use, if we split, then the conversations associated with the story remain in the original part of the story, and are no longer visible in the remaining/split part. Ideally, this should be solved in the tool, by promoting a Story to an Epic when splitting it, with the result that there are multiple child stories making up the split.
I’m considering moving incomplete stories into the next sprint without splitting, as a result of this issue with the conversations. What do you think?