The Situation
There are two small teams, the help desk team and the network operations team, that work primarily in support functions. Each team has two kinds of work: some planned projects and a lot of unplanned support calls.
The help desk takes support calls for a huge variety of internal issues, everything from printers that need new toner cartridges, to email outages, to software upgrades and pc problems. The networking team supports the LAN, back-office hardware infrastructure, and software infrastructure. Planning and managing in these environments is extremely challenging due to the constantly changing issues, help requests, ever changing priorities, and lots of simultaneous efforts. No traditional plan would survive even a few hours in this environment.
In addition to the constant requests for support, these two teams have some traditional project work to deliver. Project examples might be email system upgrades, network upgrades, new hardware installs, etc. The project work needs to be estimated, budgeted, planned, and delivered like any project. Trying to deliver on project plans for the planned project work is highly difficult in this environment due to the interruptions coming from the constant support calls.
We had already helped the software development teams in this company move to agile/scrum processes and the management desired a similar approach for these two support teams.
Approaches
In a typical software development environment there is often a lot of planned development work combined with some unplanned support work. But here, the situation was reversed: a lot of unplannable support work with some planned project work. The idea of scrum with its time-boxed iterations didn’t seem like a natural fit. Help desk calls, network outages, etc don’t lend themselves naturally to well delineated, fixed-scope scrum iterations and a two-week delivery cycle on a network outage is nonsensical. While we probably could have made scrum work, we decided instead to take a kanban approach for these 2 teams.
What is Kanban?

Kanban transfers in even smaller buckets than scrum
In a traditional waterfall process, we use large batches and huge amounts of work-in-progress as the planning paradigm. We do all of the requirements elaboration, then all of the design, then all of the coding, then all of the testing. These huge batches typically take months to deliver.
Scrum uses much smaller sized buckets. In scrum, we break the transfer-batch size down to two-week chunks. We do a little bit of requirements analysis, a little bit of design, a little bit of development, and a little bit of testing in order to deliver a handful of features every few weeks. By reducing work-in-process (WIP) to these small 2-week sized buckets, we can greatly accelerate delivery of high priority features.
Kanban is yet a further step towards even smaller batch sizes and a move towards a more continuous flow. Kanban eliminates the whole idea of iterations or sprints. In kanban, like scrum, we work on highest priority items but when an item is done, we can deliver it immediately, sometimes within a day or even within hours! … very small buckets indeed! This seems like a perfect fit for help-desk and support work. Requests come in, we actively prioritize them, we focus on the highest priority items, and deliver fixes often within hours. Though continuous reprioritization and continuous delivery, we can create a highly responsive organization.
In scrum, we achieve fast delivery through short 2-week deadlines of fixed scope. So how do we ensure fast delivery in kanban? We use WIP limits instead. We leverage Little’s Law which says that cycle time is a function WIP. The more work-in-progress we have, the longer it takes to deliver any particular piece of work. If we want very fast delivery, we could have a WIP limit of 1 and ask that the whole team focus on only one help-desk ticket at a time. The result would probably be very fast delivery for this one item but a lot of help-desk tickets would go untouched. If we wanted to touch more help-desk tickets simultaneously, we could have a WIP limit of 20. This would mean that the team could focus on the highest priority 20 items at a time. In this scenario, 20 items would get some attention but overall delivery time would suffer since we are juggling so many simultaneous tasks. The trick in kanban, is to find a WIP limit that finds a balance between these two extremes.
Kanban doesn’t get into things like daily standups, retrospectives, etc so it is even less prescriptive than scrum. If you want some additional structure, you could borrow from both as we did.
Our Kanban Implementation
In the end, we decided upon a mixture of both scrum and kanban. We wanted the iteration-less, continuous flow nature of kanban but we needed some additional support mechanisms to facilitate communications and continuous improvement. Our resulting process utilized:
• Kanban with WIP limits of 8 (more of this later)
• Daily Standups (from scrum)
• Retrospectives (from scrum)
• Point estimates and Burndown charts for the planned project work (from scrum)
Or to put it another way, scrum without iterations.
Each team had 4 people on it and so we decided to try an initial WIP limit of 8 and this turned out to work pretty well. This means that each person could be working at most 2 items at a time. If one item was blocked for some reason, there was another item that each person could work on. The job of team leadership was to take all of the support requests each day and prioritize them into the top 8 items.
We enforced the WIP limit through our planning board. Our planning board has a column called EXECUTING that has a limit of 8. So no more than 8 cards can be present in this column at any one time.

Only a few items in EXECUTING but a lot in DONE!
Team members would meet each morning for a daily standup, review the priorities, and determine who is going to work on what. Periodically, we have retrospectives to see how the team is doing and where we can make improvements.
Realizations
First we set up a simple tracking board that had columns for backlog, WIP, and Done. We then asked the team to put all of the current work up on the wall. What we noticed was that there was a huge amount of work in WIP and only a few items in Done. Our goal was to turn that around. We instituted the WIP limit of 8 and within a few days, we had our WIP down to our target of 8 and we had many more items in Done! By limiting our WIP and focusing on the highest priority items, we were able to get much more work to an actual done state. And since these were the highest priority support items, we knew that we were delivering the most impactful work.
Working this way, we noticed that our team leadership needed to be more proactive about reviewing the work and assigning clear priorities. This became one of their primary functions. Daily standups have resulted in better visibility and cross-team communication, which the team has found valuable.
Finally, with this visual system in place, we noticed that our project work was falling behind. For actual planned projects such as email upgrades or hardware installs, we did typical scrum point estimates and release burndown charts. Tasks related to these projects were intermingled with the support tasks so that if there were no high-priority support-tasks, the team could focus on project work. After a few weeks, it was apparent that our project work was getting short-changed. So much time was going into support calls that there was little time left for the more strategic project work. While we had a lot of unplanned work in the Done column, and we were delivering outstanding support to our user community, our project burndowns showed that we were behind schedule for our planned projects. In other words, support work velocity was outstanding but project work velocity was falling short. Clearly, user support work was taking priority over more strategic projects. While we knew that this was probably the case, the board combined with the burndowns highlighted this problem clearly and showed quantitatively, how far we were behind on project work.
Next Steps
The obvious next step was to institute swim-lanes for the 2 kinds of work; planned project work and unplanned support work. We can keep the WIP limit of 8 since that is working well but divide it up into 2 parts. We can have a WIP limit of 6 for unplanned support work and a WIP limit of 2 for the planned project work. This means that we should always have 2 planned project tasks being executed at any particular time and this should allow us to start to make headway on the planned project work. Through experimentation with these 2 WIP limits, we can find a balance between delivering outstanding service and and delivering on the longer term strategic projects.
Team Feedback
Feedack from the team and management has been positive. The team reports having an improved system for managing support work, better visibility, and better clarity on priorities and WIP. Kanban is a deceptively simple but powerful system for visualizing and managing work. WIP limits force prioritization, focus, and delivery with minimal process overhead and high degrees of responsiveness. The kanban system has been a very natural way for these support teams to work that doesn't impose too much process overhead while still giving sufficient structure and visibility to managing the ever-changing priorities that are the nature of support work.

Subscribe to the RSS feed
7 comments:
That was a good read! Thanks for posting that!
Would you call your implementation of Scrum and Kanban, Scrumban?
Excellent read by the way.
Thanks for posting..
The part that most drew my attention was:
"By limiting our WIP and focusing on the highest priority items, we were able to get much more work to an actual done state."
In many organizations, it is first in, first out for trouble ticket items, which often hide much larger duration problems thus not realizing the most efficient use of the support person's time. (Also, when you do hit those long duration problems, you queue up a ton of customers all waiting for assistance, thus leading to frustration from your customer base.)
As I reflected on this topic, I wonder for the support requests if you might apply the old method used by Franklin Covey planner folks with the "A1, B2" type priortization, so that you could help further manage the herd and get to more customer issues. (I will leave it to the reader to research FC methods outside of this post.)
Kanban is an interesting way to deal with the support queue problem but I think the problem, while it sounds you successfully resolved it, will come back as the organization grows and the amount of issues are more then the current staffing levels can handle.
Very good ideas!
Ian, in our organization, we already use something called "Business Value" in our ticketing system (we use the Atlassian Jira even for the Service Desk) and this prioritizes most of the service, so value is perceived. The 97% and above satisfaction rate (has been this much for months now) proves it. Your mention of growth seems reasaonable - WIP Limit(s) and other definitions (whatever the method chosen) must be reviewd periodically, anyway...
And fellow Agile-ology said it right ... Scrumban :) You should register/copyright it, my friend before someone else does ...
Cheers!
I found this on a versionone.com blog. I am looking into implementing kanban into our DBA group. We currently use a ticketing system for DBA Requests. my question is, is your team using a ticket system for the issues and then writing them on the post it notes and placing them on the kanban board? Once they are done with the issue, they go back to the ticketing system and type in their notes? The way we work is we have a ticket come in and we work it, FIFO since most support requests are less than a day or hours work.
Excellent article.
Any solution, if customer does not want to limit WIP and changing the priority every alternate day?
One thing that can help is to have pre-defined service categories and SLA's against those service categories. This can help to take some of the constant thrashing out of the system by taking some of the ad-hoc decisioning out of the system. For example, suppose we defined something like this:
Serious Operational Defects with Material Financial Impact: Higest Priority and 4-hour turnaround time
Operational Defects with High Customer Satisfaction Impact: 2nd higest priority with 1-day turnaround
etc etc
By pre-defining the categories, you take away some of the customer's ability to game the system. At least they now have to justify thier priorities. And by putting in SLA's you take away their ability to ignore your WIP limits. If they try to break the WIP limit, then you are not going to be able to meet your SLA timeframes.
Granted, it is hard to get to this level of discipline but having some policy infrastructure in place can help to support your delivery process.
Hope this helps,
Roland Cuellar
Post a Comment