The word ‘neck’ can be replaced with an appropriate one!
In our last sprint we were not able to complete nearly 60% of the stories in our sprint. On the last day before the end of the sprint, everything was still in progress (say 70%) but nothing was done. Welcome to the real world!
I figured out that the stories as they are broken down were typically taken on by only one person. Other people have experience in certain components, and strangely enough, they pull those stories matching their expertise. So the specialization of individuals on the team plays an important role in how stories are completed by the team. And it happens in almost all the teams I am working with these days.
Stories that are written in a way that cater to specialization further aggravate the problem.
For example, stories really shouldn’t be broken down into UI, backend and DB layers. To do so is to create a story that can ONLY be accomplished by a specialist. Our stories should require everyone’s involvement. So in essence, often times we are guilty of creating stories that can only be accomplished by a specialist. Each specialist on the team pulls a story that they have expertise in and we end up with one story per team member per sprint.
Independently, each team member works as hard as they can to finish the story by the end of the sprint. As a whole, no stories are completed until the last day of the sprint.
So how do we avoid this? Here are a few things you can take care of (of course! if you like them)
1. Try to write stories that reflect implementation of multiple skills (vertical slices through the system).
2. Try not to break the stories down when you are in sprint planning.
3. Another idea is to only allow stories to be pulled by pairs of people. This will focus more resources on each story. Note, this is not pair programming – it’s working together.
4. If you have 8 stories only allow the team to pull two at a time, and don’t pull the next two until the first two are done.
5. Reward people for taking on new stories that are not in their realm of expertise. Don’t give in to time pressure – you will be able to make up later the time you lose now.
All that really matters is that we deliver high quality product every sprint. If a team can do that, I’m not going to try to micromanage how they do it. Keep in mind that it’s a balancing act, and that we are ultimately not trying to create pretty graphs, but rather to satisfy our customer’s needs. Always!