I came across this tweet by Karen Greeves.
Scrum Master fail… Improvement action: Bigger stories where only few members can participate should be scheduled to run over 2 sprints.
After a quick twitter conversation, Karen explained.
It removes the ability to measure progress via working software at the end of the sprint
My response was
Working software is not the only way to measure progress in a sprint. And what if it works? I think it can.
It may well not be the ScrumMaster that failed when it was decided to have a bulkier story span two sprints. I appreciate that it is a whole lot better when a story is in one sprint, and that should be our default objective. However, it’s often not so trivial. Given that I don’t have a lot of context, I will be assuming a lot.
In this case, it is more likely a failure of the team that they (a) accept a story to develop over 2 sprints, or (b) was unable to do enough analysis to consider what can be done in one sprint. It can also be a failure on the product owner for not entering into a meaningful conversation on the details of the story, and then, again, a team failure on not engaging the PO significantly to take the problem forward.
If I encounter a story that spans two sprints, and that is more often than you think (often discovered mid-sprint), then I’m not interested in working software but seek clarity of understanding in that sprint. The outcome at the end of the immediate sprint is an unambiguous story (or maybe several stories) which is a statement of the problem domain, or even better, the solution domain. That is what I mean by working software is not the only measure of progress in a story. It is more important to “measure” increased understanding in each sprint, and good statements in the solution domain is at the heart of knowledge crunching.
The most neglected aspect of working software is a measure of understanding of the solution domain. In my experience, many teams are great at expressing the problem domain in software and their code reflects the analysis of the problem. Consequently, the code does not reflect the understanding of the solution. The end result is a weak design. Over many sprints that require work in the vicinity of the weak design, there will be a degradation in velocity because the code is just baking in the problem statement, and not a well crafted solution to the problem.
Next, let me deal with the case of just a few team members participate and not the entire team. I think that is completely feasible approach. I’ve done it many times to great effect and with great efficiency because the conversation is a lot more direct and contained. It is later that the distilled knowledge is shared with the team. This is largely crunching in the problem domain with some rough models in the solution domain. When I’ve included the entire team in the analysis, then the effect is one of dilution and inefficiency – too many people over a longer period.
Lastly, I asked “What if it works?”. While this may seem to be brash or provocative question, it is meant literally. What if it really does work? Hey, then what we’ve achieved as an odd case of delivery over two sprints instead of one. If it happens often enough, then we need to adapt accordingly: increase sprint duration, have people dedicated to analysis (oops, bite me ‘cos I’m creating a silo) and maybe more if we just think a bit about it.
So, in my opinion, it is absolutely OK to attempt the proposed solution because it is an admittance of ignorance, but if the team does not understand the actual situation they’re in, then it is the failure of the team not the ScrumMaster. I also think that we should understand the rules of the game a lot more deeply. Like I’ve said in the past:
It’s not the rules that matter, it’s what we do with the rules that counts.
To each their own, and life goes on.
The only comment I can make is it is hard to comment as I don’t understand the problem domain 🙂
Interesting. No comment on Karen’s problem but…
Sometimes there is a feeling that higher value could be perceived to be placed on completing the points instead of raising the flag that maybe we don’t know enough – so the team just do what they can. So I think this is a reasonable outcome – if the outcome is measurably more understanding and better design.
That said – it shouldn’t be the norm and does possibly point to other underlying problems about analysis and design.
My real issue is that the team (guided by the ScrumMaster) decided that if they encoutered the problem in future they would schedule the story over 2 sprints. I would hope that in the retrospective they could understand the real root cause, which I think is related to insufficient backlog grooming before the sprint.Instead of accepting that this would keep happening. I would like the team to look at how they could improve grooming to prevent it.
I think it’s a ScrumMaster failure, because it is there role to nmentor the team and remind them of the underlying principles we are trying to implement, and therefore guide their decisions towards addressing the root cause, not just dealing with a symptom.