Featured Whitepapers
- Apples, Oranges, and Acorns - All Agile Development Tools Are Not the Same
- One's Enough for Agile Application Development Management
- Requirements Management 101 – 4 Basics Everyone Should Know
- Tips on Requirements Traceability – Learn How to Control Change and Improve Quality
- Scaling Continuous Integration to Large and Distributed Teams
|
The Problem To make matters worse, we were ending the phase of large scale stories and entering a phase where alpha clients would introduce small, discrete stories in the form of bugs. A stream of potentially high priority bugs was about to hit us requiring faster reaction than we could handle by collecting the bugs into two week iterations. We had to find a way to make our process more lean. While agile encourages change, the process cannot be chaos. Scrum requires thought out stories with enough detail that allows for a coherent conversation with the product owner. In our case, the product owner represented the wishes of a number of diverse stakeholders and a constant stream of bug fixes. The product was a new acquisition and everyone, including the product owner, was learning what it should do as we rebranded and integrated the product into the company line.
The Solution We looked to apply lean principles to Scrum’s meta processes and considered ways to shorten the sprint length, the estimation sessions, sprint planning, and sprint demo length even further. This was done with the goal of keeping people working on stories that were of the highest value and well thought out enough that the utility of the stories could be explained. We found that one-week sprints promised to be too long. After much brainstorming, we decided to use kanban as described by Corey Ladas. We broke sprints down from two-week timeboxes into a single story flow—conceptually a “sprint” became one story and we abandoned the timebox. We limited the teams working on each story to two people—which meant multiple teams were pulling from the backlog—and then kept the work in process (WIP) limited and used the pull technique. Additionally, we developed a ten most wanted list (MWL) for our stories before placing them on a kanban board, and held meetings several times a week to groom the list. Several stakeholders were able to contribute their priority to separate columns on a scale of 1 to 10. Each stakeholder had their own priority column. The columns were summed to get an initial cut at overall order and then the features were ordered based on consensus. The top ten were the focus of analysis during our grooming sessions.
Figure 1 Once the features were well analyzed and written as stories, they were moved to a pre-ready list and eventually to the ready state on our kanban board, which had a limit of two stories in the ready queue. Stories were moved to from the pre-ready list to the kanban board whenever the queue had enough capacity (less than two items remained) and the product owner felt the story was sufficiently detailed. The kanban board was further broken down to Ready, In Process, and Done. Our kanban board is shown in figure . The In Process list was further subdivided into Started (stories that were being analyzed and digested by the team), Code/Test (stories that were being coded via test-driven development), Awaiting Test (stories that were awaiting acceptance testing), and Pending Release (stories that were acceptance tested but were awaiting a patch build). We wrote each story on a green card with an orange tag indicating release build number and a blue tag indicating who was working on the story. Every day we held standup meetings where the day’s commitments were written on the purple tags next to the stories. There was also an issue list at the bottom of the board for technical debt or other items that needed to be addressed by either the teams or the ScrumMaster. It took less than three days for a typical story to progress through each list on the kanban board. As you can see in figure 1, acceptance testing and patch builds were batched due to staffing restrictions and other circumstances beyond our control. While the situation was not perfect, our kanban board made the batching under Awaiting Test and Pending Release highly visible. We used a work in progress (WIP) limit of three stories initially, which we found to be a reasonable number. Surprisingly, the transition from Scrum to kanban was smooth, due in big part to the team’s experience with Scrum. The new process was explained as an evolution to Scrum, so the team had a context for the changes.
Our retrospectives were the most difficult part of the process. We started holding retrospectives every other week (as we did with Scrum), but with the flow of kanban being at the story level rather than a set number of days, the retrospectives were more disruptive than helpful. We decided to hold retrospectives with the team that completed a story as soon as the story was completed. This wasn’t an optimal solution either, as the retrospective outcomes tended to be very myopic. By the end of the project, this problem was still not solved. See the link in the Further Reading section of this article for a full description of our process. For comparison purposes, we used story points per staff week—something that should be used with the same care as lines of code—meaningful at the project or macro level though not at the individual or micro level. We found that the metrics supported our feeling that kanban is more productive than Scrum given the right circumstance. I would expect that a reader would agree that our sheer size in productivity gain indicates that kanban merits investigation. We had one Scrum team working for a total of twenty-six sprints (fifty-two weeks). After fifteen sprints, we added a second sprint team for eleven sprints. Both teams pulled from the same backlog, which made coordination less difficult than if the two teams depended on each other. The Scrum team completed 655 story points in 518 staff weeks. That’s 1.26 story points per staff week. After twenty-six sprints, the first sprint team moved to kanban and absorbed one person from the second Scrum team. The remainder of the second team was disbanded. Our kanban team consisted of eight people working for ten weeks for a total of eighty staff weeks. During this time, we completed 340 story points. That works out to 4.26 story points per person week (340/80). These metrics are summarized in the table below:
A Discussion of the Metrics The Scrum and kanban teams were more or less the same people, meaning that variability inherent with changing team members wasn’t pronounced, but was something of note as the kanban team consisted of eight people rather than seven. This didn’t seem to be much of a factor since the “new” person was at one point a coworker with the original team, had worked on the product for some time, and was familiar with the agile techniques. There was a small impact on the process learning curve. When starting with Scrum, the development team took about eight sprints before velocity stabilized. We were learning the process and our estimation skills took time to mature. While this may seem to skew the Scrum metrics, even ignoring the first eight sprints had only a marginal effect on the comparison. Since the teams already collaborated well, understood many of the mechanics of agile development, and had experience estimating, the velocity’s stabilization wasn’t pronounced. Kanban was introduced as an evolutionary change from Scrum and many of the concepts carried over. In both cases, story point estimations were based on a list of reference stories using estimation by analogy. When a new story was estimated, it was compared to a reference list of completed, well-understood stories with already established story points. The new story was then assigned the same number of story points as the analogous reference story. While there was an inevitable degree of variability when estimating story points, having the reference stories on hand helped keep variability small. In Scrum, the reference stories had to be grown. By the time we began using kanban, the reference list was well established.
Perhaps the quality and size of stories was the biggest difference between kanban and Scrum. With Scrum, the story size ranged from 1 point to 13 points with a mean of 5.25, while kanban’s mean story size was smaller at 3.4 and varied between 1 and 8 points. The business team, while using Scrum, was too distracted with learning the product to be able to flesh out quality stories that could be collected into two weeks’ worth of work. With kanban, stories were fleshed out and prioritized just in time. The product owner was on his toes because he knew the story would be picked and worked immediately in the kanban world. With Scrum, our product owner assumed that a story may not be played until toward the end of a two-week sprint and by that time, the thinking went, the story could be fleshed out. This is usually the case with agile but in our instance, it was extreme—stories were very vague before the sprint began. Our product owner didn’t always have the appropriate motivation to create high-quality stories before being batched into a two-week sprint, but with kanban, the story was immediately addressed and, hence, had to be higher quality. Along with the effect on the business, kanban has a number of other advantages that worked in our favor:
Kanban does not come without a number of challenges, though.
Closing Thoughts Overall, kanban is worth trying in the right circumstances: small, loosely coupled stories with an experienced agile team. Industry reports (Kniberg and Banks among others) indicate that Kanban works best in this circumstance. Kanban isn’t a silver bullet; it should be applied carefully lest the process devolves into chaos. If you want to learn more, read Corey Ladas’ book Scrumban or David Anderson’s book on Kanban. I’d like to thank Linda Cook, Chris Farrell, and Johanna Rothman for their wonderful insights and assistance with this article.
Further Reading
About the Author Dr. Charles Suscheck is a nationally recognized agile thought leader who specializes in agile software development adoption at the enterprise level. With over 25 years of professional experience, Dr. Suscheck has held positions of Process Architect, Director of Research, Principle Consultant, Professor, and Professional Trainer at some of the most recognized companies in America. He has spoken at national and international conferences such as Agile 200X, OOPSLA, and ECOOP on topics related to agile project management and is a frequent author in industry and academia. Dr. Suscheck has over 30 publications to his credit and is also one of the organizers of the Agile Coach Camp.
Set as favorite
Bookmark
Email this
Hits: 14948 Trackback(0)Comments (11)
|
||||||||||||||||||||||||
| Last Updated on Friday, 07 October 2011 10:47 |
Agile Marketplace - Announcements and Special Offers
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper


Scrum is a great agile management framework for iteratively developing complex software systems, and it works well in many circumstances. Certain problems can arise, however, such as a highly fluid product backlog, which make kanban’s emphasis on backlog flexibility a more attractive alternative. Software experts like David Anderson, Corey Ladas, Dean Leffingwell, and Linda Cook point to small, loosely coupled user stories with an experienced agile team as key factors for productivity gains using kanban. Yet, few studies exist to show concrete metrics in productivity gain. In this article, I explain our application of reasoning for using kanban and then show how I computed that our productivity gains were more than 300 percent once we started using kanban. I conclude this article with thoughts on applying kanban in your circumstance.

