I want to try to apply scrum to a project. For the purposes of my question, let's assume that there are no other problems I'm trying to solve; I just want to practice scrum.
Over the summer we're hoping to have 3 full-time developers (two working half-time on the project) and 1 or 2 interns.
Unfortunately, management insists that they must be able to pull resources at a moment's notice whenever they deem it necessary, and they refuse to commit personnel for even a 2-week sprint. I think at most they will pull two people from the project, leaving at least one senior engineer and two interns on the project. I still want to try scrum, but how can I work around this? Do I just convince the other team members to try it with me, and do it without management's blessing?
I know the foundation of scrum is that team members must be permitted to work uninterrupted for the duration of a sprint, but is there a way to work around this if management will not guarantee the resources? Certainly in the real world people must get sick or leave the team in the middle of the sprint once in a while. How does the scrum team deal with this and track its acceleration in a meaningful way?
My idea at this point is to do the following:
- Implement scrum with 2-week sprints but only allocate resources that are less likely to be pulled. Others may work on the project, but not necessarily as part of the scrum team's development crew. (Maybe they focus on testing or documentation, or pull work items from the project backlog instead of the TODO list.)
- If we are interrupted after a sprint has started, make a note, reallocate resources and tasks, and restart the sprint with the remaining resources.
- If the team was rarely interrupted, or if the sprint was usually interrupted only a day or two from the beginning or end of the sprint, try to use that data to convince management that scrum would not be that disruptive to the other projects. (This is assuming we can demonstrate that scrum worked at all for the duration of the summer.)
Is it likely this will work, or is it not really worth the effort to try to implement scrum if we cannot guarantee that the team won't be interrupted? Are there any other practical solutions to this problem?