Scrum is a popular project management framework for agile projects. Scrum projects are typically managed quite informally, with the only metrics used being various velocity metrics and burndown charts. Because these metrics only measure the speed of delivery, not the project’s cost or the business value it generates, many project managers are resistant to Scrum.
Kanban for software development is a newer kid on the block, at least in the US. Besides being just another word like Scrum that is not commonly understood in the English language, how does it stack up? Both Kanban and Scrum align with the well with the value system described in the Agile Manifesto. And they make an interesting pair.
As much as we love Scrum, even we would have to admit that it’s not perfect. Nothing is. In fact, a large part of the literature describes workarounds for various deficiencies that Scrum presents to us in certain circumstances.
One of the more commonly noted deficiencies in Scrum is that it plans its work a whole Sprint at a time. This “batch” planning process is often not agile enough to cope with the actual rate of change of requirements. In fact, PlaceHolder Stories, discussions of mid-Sprint Re-planning, and discussions of renegotiating the scope of a Sprint are common deficiencies that teams must cope with.
The new kid, called Kanban, which solves some of these deficiencies and presents others, is becoming popular for software development projects.
Altogether, Kanban, Scrum, XP and many other agile methods rely on a task boards and index card like systems to simultaneously decompose and manage the work. What’s new about task boards and index card systems? Index card systems have been around at least since 1925, when the first one was formalized by Dr. Crawford and used later to build NASA rockets. Increasing task orientation is a well understood method for improving team performance and has been well documented since the 1950s. Our goal will be to highlight both Kanban and Scrum and then touch on why we need to reinvent them ourselves so often.
- An overview of Kanban
- An overview of Scrum
- Stacking them side by side
- The Power of Index Card Systems and Task Orientation
- Can one reduce or evolve from one to the other?
- Why do we repeat ourselves so often?
- No way, they are opposites: Kanban is for flow / Scrum batch
- Yes, Scrum is old school big planning steps
- Yes, Kanban minimal planning / Scrum is heavy planning
- No, Scrum can reduce to KanBan
As much as we love scrum, even we would have to admit that it’s not perfect
. Nothing is. In fact, a large part of our book describes workarounds for various deficiencies that scrum presents to us in certain circumstances.
One of the more commonly noted deficiencies in scrum is that it plans its work a whole Sprint at a time. This “batch” planning process is often not agile enough to cope with the actual rate of change of requirements. In fact, Chapter 4.4 on PlaceHolder Stories, the discussion of the mid-Sprint Re-planning in Chapter 4.8, and the discussion of renegotiating the scope of a Sprint in Chapter 4.3 are all about resolving this deficiency.
There is another agile process, called KanBan, which solves this problem and is becoming popular for software development projects. In our upcoming book we will describe the main strength of KanBan and how to integrate it into scrum.
Brief Description of KanBan
The “KanBan for software” movement is really gaining some traction in the agile community. The main idea of KanBan is very simple and based on the Lean “pull,” “Just in Time” (JIT), and “reduce inventory” principles: eliminate planning inventory by making sure that you don’t commit to doing work until you are actually ready to start the work.
- A placeholder story is a sign of sloppy planning
- All work should be known ahead of time and planned during sprint planning
- Yes, this allows the Product Owner to dump things into the sprint as needed.
- Sometimes we have a history of unexpected bugs/issues of handle it now. This allows us to track how much of that is showing up and leave some slack for when it does.
- We often have work we know we will have to do but, don’t know what it is yet.
Comment: This is a way to track how much unknown work is showing up and manage the amount by triggering a conversation when needed. One of the most common issues for scrum teams is what to do about work that we expect to have to do during a Sprint, but don’t actually know the details about yet, such as bugs we have to fix in existing systems, or expected sales support efforts. Using Place holder stories is a a method to manage these “known unknowns”.
When does the word requirement truly mean what is says in English?
- The development team creates a spec.
- The Product Owner says it is.
- The business asks for it.
- There is a test which actually requires it to be there and fails when it is not.
Comment: We often find ourselves lost in the desirements trying to find the real requirements for our system. Those things which seem required often end up being only desired. The word requirement has suffered more from confusion and misuse than just about any other word in the IT lexicon of development. What is a “nice to have” requirement? I mean really! I have close to 20 years of experience in the industry including training and writing requirements. Even with all of that experience the word still makes me a little crazy. I like the word desirement because of it’s contrast with requirement. When there is a test that makes it required with a pass/fail then it is a requirement, until then it’s just a a desirement.
So, a more interesting question is …. When is a requirement truly required?
- The PO says go.
- The Teams says they are ready.
- The SM has determined a time box for the sprint.
- The team and PO agree to a time box
- The PO understands and is prepared to talk about the stories
Comment: There are a number of things you should do before you can even begin planning. The most important thing you can do is make sure that your Product Owner is prepared, and understands what the stories are about. Remember that the Product Owner is a role here, so what we’re actually saying is that someone on the Team knows about each story; that is, each story has its own champion (Story Owner) who represents the Stakeholder’s needs/wants to the Team. This may require that the Product Owner (person) coordinates the efforts of all the Story Owners.
- You get past work experience. And calculate the amount of work the team can handle
- Get estimates from the team and double the number they give you to determine work load.
- Meet with each individual and see how much work they can take on. Build a sprint plan from that information. Then gather everyone, show the sprint plan and kickoff the team sprint.
- Use the PO/SM powers to challenge the team to take big bites. Get as much loaded in the sprint as possible. The PO/SM can form a powerful pincer to overcome resistance.
- This is sprint planning. You commit one story at a time. Make sure the team is committing to sharp definitions of done.
Comment: After a Story is committed to, the Team (with the PO in the lead) has the option to reprioritize the Story list, and the Team takes the next one to consider. Once again, the Team comes to the “doneness” Agreement and commits to adding the Story to the list of already-committed-to Stories. This process is repeated until the Sprint is “full” and the Sprint Plan is complete.
- You should never add work during a sprint
- If the Product Owner wants it then put it in
- As we understand the work we adjust our view of the work to reflect what it takes to do the job
- This is really a question of granularity. If the adjusted work is in small bits then yes, as the bits get larger we risk loosing rhythm and consistency.
- Our sprint plan should have nailed it. Changes during the sprint is a sign of sloppy planning.
Comment: Changes to work forms an interesting tension. At a fine grained detailed level it changes all the time. Each person’s individual to-dos often change to reflect their understanding of what it takes to get the job done. As the level of granularity increases to task then it is a change to the team’s plan. If the number of changes is significant and adds up to more than one story’s worth of work then you better stop and adjust your plan, usually you want the product owner in on that discussion. And if there are several new stories that were suddenly found and are so important they must be done right now, then call a stop and reset your entire sprint with a sprint planning session. Generally, the commitment by the team to the sprint should not change. Note: definition of team makes this an interesting discussion. Bottom Line: The goal here is to help the team get better at expressing work they can do and following through on a commitment.