[This is part 3 of The big elephant in the scrum meeting room]
One of the things that you can do now and pay for later, is to bind resources to work on items before they are ready for the work to begin. This early binding didn’t accomplish anything in reality, and either limited, or at best imposed more hurdles for the team to jump over should things need to change. One of the things that we were looking for when we decided to look at agile processes was to be more flexible, thereby requiring empowerment of the team, which ultimately allows the team to get more done.
With our standard scrum framework, we are used to having a sprint planning meeting and selecting what stories we will include in the sprint. If the team has extra cycles, you may or may not like the idea of augmenting the sprint with extra work items. And, if production issues develop that take of 50% of your resources for 2-3 weeks, you could just declare the sprint a failure. Both of these circumstances aren’t rare, in fact they have actually been known to happen (with some regularity).
One of the reasons that these issues remain problematic, is due to the way that it has been mitigated. Scrum attempts to address this by defining a short cycle time (the sprint of 2-3 weeks) and therefore minimizing the window in which these types of things can happen. While that sounded like a good idea on the surface, a 2 week cycle time is 2 weeks longer than the 5 seconds it takes to have a serious production outage. The change, in fact, needs to be in the way work is managed, so that it is queued in just in time fashion. One way we can handle this is by implementing scrumban. This is what I did, and it was an important first step towards achieving true team empowerment, and realizing some of the greatest efficiencies of any team in a very large organization.
With scrumban, like scrum, we still work with velocity calculations. There are just so many man hours of work that can be performed in our time box allocated towards each development cycle. (iteration, sprint, release....). Weather you measure things in story points (if you use ‘user stories’), man hours, or something else – the effect is the same. There’s so much work that can be expected to occur in this period. As mentioned above, with our scrum framework we have already allocated our velocity towards stories to include in this scrum, and if we have mis-estimated anything, or external events occur to upset our plans, we have to decide how to handle this. Since these things are more common in the typical fast paced business environment than not --- it’s clearly better to have a framework that accommodates these issues. That is what managers focus on, is it not? We intend to manage our business with processes that support it.
With scrumban, we aren’t going to allocate our velocity for the sprint at our sprint planning meeting. All we really need to do is to ensure that the product owner and scrum master have more than enough stories developed and in queue to cover what the team could ever possibly accomplish. With work in queue and not bound to a resource, it’s a simple process manifestation to have the team pull from the top of the queue when they are ready to being their next task. This queue, we call the WIP queue.
One of the benefits of not binding tasks to people early on in the process is how we can be more accommodating of events that occur as the sprint progresses. Production issue? Just put it at the top of the WIP queue. Why would we let production issues cause us to do something inefficient like always leave a 25% resource under utilization to accommodate for these types of events should they occur? To make the rest of our processes work, we need to carve out headcount and set it aside to handle 'just-in-case' events? Your managing this? --- really? Or maybe we fail the sprint so that we can deal with these issues, which is even worse. It is sad, but a large percentage of teams that I talk to actually do this.
As leaders in our business endeavors, we facilitate process improvements through retrospectives to accommodate the business issues that we deal with. The process changes to suit our business environment --- THAT is scrum.This is one of the reasons we empowered our teams with the scrum framework to begin with…. Isn’t it? To fail to make this leap is failure itself.
As leaders in our business endeavors, we facilitate process improvements through retrospectives to accommodate the business issues that we deal with. The process changes to suit our business environment --- THAT is scrum.This is one of the reasons we empowered our teams with the scrum framework to begin with…. Isn’t it? To fail to make this leap is failure itself.
I believe that moving to scrumban was one necessary step in a process evolution that allowed for some of the greatest process improvements. It is not a simple change to make, and your team will have to think through how to work with the product owner to have sufficient, prioritized, meaningful WIP queued and ready. If you are using kanban cards and a board, you will probably end up adding a few columns to your board. One common change would be to pull work from the WIP queue to a “ready” queue. I may come back to this later and define what we had implemented at this point, but you will need to utilize your teams to evaluate the alternatives and develop the best method for your company.
One other thing that has happened, which is pretty important, is that we have implemented a pull system. The developers are pulling work through the system as it as needed. They are doing so “just in time”. They aren’t doing it too early and it isn’t happening too late. This… is a massive improvement. This is just the beginning of our lean improvements.
