You may think that the title is utterly ridiculous, but bear with me. I recently had the opportunity to sit through a class with Allen Holub on Designing for Volatility and it was there that he disrupted one of my long held beliefs. I was trained on Scrum by Ken Schwaber in 2008 and again in 2012, so I was sold but now I am thinking a little different. I want to explore the question of “Is Scrum Agile“?
Scrum works on a timed boundary that begins with a planning session and ends with a review/retrospective. These are designed to setup an interval (sprint) where the work is immutable. Typically a team sets an interval boundary of two, three or four week intervals. If there is a necessary change in the work, it does have an allowance to abort the interval and start over.
Aborting a sprint is a significant decision and activity and is not to be taken lightly. In this event, the team would stop what they are doing, button up, and start over with a planning session to plan the new work. This seems to be agile, but… What I see all too often is where we try to make sure we have enough work for the team to work on. As opposed to make sure that we are delivering the most value to the customer as fast as a quality job can provide.
I believe that trying to find enough items so that each member is busy may start to divert from agile. If this is your practice, you will inevitable set lower value items higher in the backlog to fill the team’s time. That seems to stand in the face of the agile principle of delivering the highest value items as fast as possible.
“Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software” – Agile Manifesto
The team should always be working on the next highest priority items, no exception. I would guess the question that follows that statement is, “What will the rest of the team members do during the sprint?” It is a good question to ask, but it is also easy to answer.
In a development cycle, there are many activities that have to take place such as requirement refinement, test case development, test automation and of course development. Teams can rally around a single item to see it through to the release. I was very skeptical about swarming around a user story and I assumed it was full of waste, but I have since been proven wrong.
Swarming around the user stories is the optimal activity of a self-organizing team. If you have a cross functional development team (quality, development and business) then you execute on another one of the principles.
The best architectures, requirements, and designs emerge from self-organizing teams. – Agile Manifesto
Another comparison that is a divergence from agile is the idea of continuous delivery. The models that I have seen, creates the activity of deployment at the end of a sprint. This is in opposition to the first principle in the agile manifest.
Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software – Agile Manifesto
Now to be fair, there is nothing in scrum that says you cannot deliver software as often as possible. The goal of each sprint is to complete a potentially deploy-able increment of software. At face value, this end of sprint demarcation promotes deployment at the end instead of when it is ready.
One of the main things that Allen drove home was how agile means that you are always working on the highest priority without the need for artificial boundaries. I think I agree with that. Scrum has several ceremonies that occur every sprint and I wonder how many of them are needed in that regimented fashion.
Whether you are moving around backlog items to fill time or you are waiting till the end of the interval to deploy, you have to ask if you are really an agile shop. The team that I am on is taking a more agile approach. We are a scrum shop, so we have to operate at some level within that process. We have only been taking in one work item at a time and we swarm until it is done and then we ask the product owner what is next. As a self-organizing team, we have decided that this is what allows us to be agile and how we can deliver quality stories to the customer and it works. This are just my thoughts, but I would love to debate this further. Cheers