Part of an ongoing series called Scrum By Example. The series covers ScrumMaster Steve and his team as they develop an online bookstore.
Last time we read about our team they were suffering from a very high rate of interruptions after the product had gone live: The Story of Production Support.
After another couple of sprints using the one “person off” strategy the production support problem wasn’t completely fixed but the team was starting to spend less time on support. However Steve started to notice a new problem, even though production support wasn’t the primary cause there were still alot of interruptions, he still noticed that team members were being interrupted (a mix of drop by, phone calls and email).
Steve spent the next few days just taking notes on the interruptions. Discounting friends dropping by for coffee or smokes and calls on personal phones (presumably family or friends), he could still see that his team members were being bothered 2-3 times a day. Taking the best notes he could without outright spying on people, some of the interruptions were obvious:
- a couple of people called Martin every time there was a database problem (big or small)
- team members attended meetings (corporate, HR, …) sometimes more than one
- Tonia (the world’s best Agile Tester) has become a focus for Agile testing questions with people stopping by her desk 2-3 times a day to ask questions about Agile testing.
To track these issues Steve didn’t need to spy, he just watched the flow of people in and out of the team space, listened for phone calls and read the email trail that filled his inbox.
Once Steve noticed the issue he mentioned into a standup and asked people to start tracking what sort of interruptions they had. In the retrospective the team discussed sources of interruptions (again using a timeline as reminder).
- Corporate meetings that don’t aid directly in the delivery of software
- Several team members are the only ones who know their respective areas (Database Architecture, QA), as a result for issues big or small everyone asks them for help.
- People outside of the development group don’t appreciate the cost of interrupting the team. In particular they don’t understand the costs of context switching (allow 20-30 minutes to recover if working on a complex task).
Caveat Emptor: Remember the Lean Principle: “Optimize the Whole”. In this case ensure that the strategies benefit the whole system and not just one team.
The key issue at play is that your brain can sustain 4-5 hrs of focused “Flow” work in a day. The question at hand is how can we help team members utilise that time?
First the team needs to make the cost of the interruptions visible to the organization. Very often these things happen because people think about their own needs: i.e. Martin knows the database and can answer my question quickly. vs. I can spend 15 minutes trying to figure things out for myself before turning to Martin yet again. This assumes the person with the question isn’t on Martin’s team, perhaps not even in the development organization.
Things the team can do:
- Implement Core Hours – example 9:30 – 3:30 (with a break for lunch). During this time the team will focus on development (includes Test/Documentation/…) work. Interruptions from other development teams are expected but people from outside development are asked to wait. This does risk setting up an us vs. them relationship so it has to be handled well. The key is good communications: explain the problem, give specific example of the effects, tell people how core hours will work and seek their feedback after 2-3 sprints.
- Email is turned off during core hours. Its best if email is checked ~3 times a day.
- Pairing to share knowledge i.e. people from other teams should pair with Martin and Tonia to learn more about the specifics of their work.
- Run lunch and learns to share knowledge that’s known by only key people
- Reduce committee involvement. For corporate meetings and other events that won’t help the team deliver ask how many people from all of development need to attend.
- Move meetings outside core hours. Most meetings don’t require the same amount of mental energy as development. Consider moving them after core hours.
- Consider removing company phones from team members desks. This may just shift the problem to people’s cell phones.
- Get people to spend at least 15 minutes trying to solve their own problem before asking for help. If nothing else this will deepen a persons knowledge in that area making it less likely they will have to call for help next time.
Perhaps most important make the cost of interruptions visible to the organization. I often use signs at the edge of the team area.
Update: When I say development team I don’t mean coding I mean the people involved to getting the application out the door (Coding, QA, Docs, UX, … – assuming you have separate roles still).
An aside on tracking sprint and release progress, burndowns and interruptions
Images via: http://photodune.net/