Is Kanban Right for your team? Yep.
This is a nice post from the folks at Breath Agile.
This is a nice post from the folks at Breath Agile.
Lots of us use a personal kanban to visualize our daily work. Kanban is a great way to see what you’re doing and what needs to be done. This article addresses a couple of real problems with kanban. How do I handle different types of tasks? What is the ‘right’ level of detail? I found this useful and I hope you will too.
Bob H 10/28/2016
This question comes up not only in Personal Kanban but also for teams and enterprise (portfolio) kanban boards as well. It is a great question – and quite often tricky to answer! What should be the level of work breakdown that gets visualized on the Kanban board? Should each card on your Kanban board be a project or a mini-project? Or should be each task that you can think of that you need to do at the lowest (smallest duration) level?
Click the link to continue to the article: How Granular should my (Personal) Kanban Board be? | The #1 Blog on Agile, Kanban and Project Management – Digite
Alex Yakyma is a thought leader in the SAFe community and this is a great article on the how’s and why’s related to kanban within the Scaled Agile Framework (SAFe).
By Alex Yakyma
The use of Kanban techniques for managing workflow is growing in software, as well as in other industries. Originally a technique derived from lean manufacturing, Kanban is a lightweight way of visualizing and managing work of any kind. It’s easy to adopt and provides sophisticated constructs for continuing improvement as teams master the method.
While not a software-specific method by original intent, its application in software development can be quite useful. It provides a more granular view of the flow of work through the team, illustrates bottlenecks and delays to be addressed, and increases flow by application of work-in-process limits. Properly used, Kanban provides a powerful set of constructs that every software enterprise should be able to apply in the scaled systems context. This article describes how Kanban can used by SAFe Teams in the content of their Agile Release Train.
There has been some noticeable increase in interest in Kanban recently, with a number of people asking for more basic info, and more people writing new blogs and articles. This is my attempt to describe in more detail my take on it all, which I refer to as Kanban, Flow and Cadence.
A Kanban system is a mechanism for controlling the work in the software development system. Kanban can be defined as “visual card”, as shown below – kindly written for me by Kenji Hiranabe [?] at Agile 2008.
“The two pillars of the Toyota production system are just-in-time and automation with a human touch, or autonomation. The tool used to operate the system is kanban.”
Kanban is what enables a pull system for just-in-time work.
What does a Kanban System look like for software development? Very simply, there is a queue of work, which goes through a number of stages of development until its done. When work is completed in a stage, it goes into a downstream queue for the next stage. When someone needs new work to do, they pull it from their upstream queue. This can be depicted as below.
That looks very like a typical Agile Task Board, with maybe a few more steps, although there is nothing to say there can’t be a single development stage. However, there is one more important element which really defines a kanban system – limits. There are two basic limits – Queue limits and WIP limits.
Queue limits are designed to avoid premature work. This how just-in-time is achieved. The limit should be large enough to keep the team busy (i.e. there is always something in it for the team to start work on), but small enough to avoid premature prioritisation (i.e. having things sitting in the queue for too long before they are begun). Ideally the queue should be FIFO, although this is a guideline rather than a hard rule, as sometimes available skills or other resources mean that it is not always possible.
Work In Progress limits are designed to reduce multi-tasking, maximise throughput, and enhance teamwork.
Reducing multitasking is beneficial for two primary reasons.
1) 20% time is lost to context switching per ‘task’, so fewer tasks means less time lost (from Gerald Weinberg, Quality Software Management: Systems Thinking)
2) Performing tasks sequentially yields results sooner. As the diagram below shows, multi-tasking A, B and C (on the top), delivers A much later, and even C slightly later, than sequentially (on the bottom).
A great exercise to demonstrate the effects of multi-tasking was described by Clarke Ching.
Throughput is also maximised by decreasing WIP. Simple examples of this effect are traffic jams, where traffic speed reduces as more traffic builds up, and CPU load, where application performance goes down as CPU load increases. The effect can be be explained by looking at Little’s Law for Queuing Theory:
Total Cycle Time = Number of Things in Progress / Average Completion Rate
Therefore, to improve cycle time there are two options; reduce the number of things in process or improve the average completion rate. Of the two, reducing the number of things in progress is the easier, and once that is under control, then the more challenging changes to improve completion rate can be applied.
Finally, by having fewer work items in progress, then the team is able to focus more on the larger goals, and less on individual tasks, thus encouraging a swarming effect, and enhancing teamwork.
Limiting Work In Progress like this can seem unusual for teams, and there is often a worry that team members will be idle because they having no work to do, but are unable to pull any new work. The following guidelines can be useful to help in this situation.
They key question here are what constitutes lower priority investigative work or other interesting work. Essentially it is work which won’t create any work downstream, will improve future throughput and can be paused as soon as existing kanban related work is available. Lower priority work could be spikes or analysis for known impending work. Other interesting work could be refactoring, tool automation, personal development or innovation.
WIP limit sizes can depend on type of work and size of team and should be adjusted to achieve maximum flow. One approach is to start small (e.g. a limit of 1) and increase as necessary. Another is to start larger (e.g. a limit of half the team size) and reduce until the sweetspot is achieved.
The consequences of using a kanban system are that the Product Backlog can be eliminated, because the immediate queue is the only work of interest, timeboxed iterations (i.e.Sprints) can be eliminated, because work is pulled as necessary, and estimation can be eliminated, because work is not planned into iterations.
Flow describes how the work in the system can delivery maximum value. As Mary and Tom Poppendieck write,
“In lean enterprises, traditional organizational structures give way to new team-oriented organizations which are centred on the flow of value, not on functional expertise.”
In particular, Lean emphasises ‘One Piece Flow’. This means moving one piece at a time between stages in a workflow as opposed to moving batches of work between stages in a workflow. The ‘One Piece’ in a Kanban system for software development can be thought as the Minimal Marketable Feature, as described by M Denne & H Cleland-Huang in Software by Numbers.
“A minimal marketable feature is a chunk of functionality that delivers a subset of the customer’s requirements, and that is capable of returning value to the customer when released as an independent entity”.
The kanbans should be minimal so that they are as small as possible in order to enable progressive delivery to realise the product sooner, reduce feature bloat and focus on the the core features which are the most important, and minimise complexity because each feature has a cost to a user.
The kanbans should be marketable in a number of ways.
A useful guideline is that an MMF is marketable if it is something that could be written about on a product blog.
The kanbans should be features which are distinct, deliverable and observable. The INVEST acronym (Independent, Negotiable, Valuable, Estimable, Small, Testable) as described by Bill Wake, can also be useful for applying to MMFs.
The Marketable element of MMFs means that they may sometimes be larger than typical User Stories, which often break work down such that while they can be incrementally delivered, and show some element of value, they are not marketable in their own right. Therefore, it is important to understand an MMFs Value Stream in order to deliver the whole MMF as quickly as possible. A value stream describes the steps, delays and information required to deliver a product, and can often be used to decide the steps in an initial kanban system. With large MMFs, the User Stories become more of an analysis technique in order to enable incremental delivery of an MMF, without losing sight of the overarching MMF. I describe how a continuous flow can be achieved with MMFs in The Anatomy of an MMF.
A number of techniques can help manage the relationships between MMFs and User Stories in order to realise the benefits of both. One is User Story Mapping, as descried by Jeff Patton.
I have also recently been working in a regulated environment where User Case Goals and Sub Goals have provided the MMFs, with the detailed scenario paths and steps providing the additional details.
A further enhancement is to use two-tier Kanbans, with one tier for the MMFs, and another for the User Stories.
The consequence of applying the concept of Flow is that emphasis is placed on using larger, value-focussed MMFs, rather than smaller, more incremental Stories.
Cadence is the approach to achieving commitment and reliability with a kanban system. I often get a question something along the lines of,
“If the team isn’t estimating or planning with fixed time-boxes, how can it make reliable commitments?”
To quote Mary and Tom Poppendieck again,
“A regular cadence, or ‘heartbeat,’ establishes the capability of a team to reliably deliver working software at a dependable velocity. An organization that delivers at a regular cadence has established its process capability and can easily measure its capacity.”
The time-boxed iteration is one form of cadence, which couples planning, review and release together. A kanban system de-couples these events and allows them to have separate cadences, as well as adding two additional ones. Throughput is the amount of output of a process in a given period of time, and Cycle Time is the length of time to complete a process. The relationship between the two is:
Throughput = WIP / Cycle Time
Throughput allows forecasting of future capability, without needing to specify what might be delivered. Cycle Time allows commitment by becoming an SLA with the business (see Kanban Commitment). Where the size of work varies, from large new features to small fixes and change requests, then a classification of MMFs can enable a range of cycle-times. Both Throughput and Cycle Time can be charted and trended, in a similar way to XP’s Velocity, as a means to encourage the team to improve. A Cumulative Flow Diagram can also make visible how the work is flowing through the system and highlight bottlenecks.
For longer term forecasting, a quarterly planning cadence focusses on quarterly goals and objectives. MMFs can subsequently prioritised to meet those goals and objectives. A regular release cadence will build up trust that the team will work to its full capacity and throughput.
Other cadences, are daily stand-up meetings, and regular retrospectives and Operations Reviews as described by David Anderson. Some teams are using a Retrospective Kanban to signal when a retrospective is necessary, and I have already blogged briefly about Kanban and Retrospectives.
The consequence of Cadence is that commitment and reliability is achieved though measurement as opposed to planning.
They key points of Kanban, Flow and Cadence are:
Further resources and information can be on my Kanban Page, including most of the material which has influenced and directed my thinking.
While this short video has nothing to do with software development, it is a great overview of the benefits of implementing a kanban system.
As I was looking for kanban software I came across this post from the pros as the Agile Scout. It seemed very “un-lean” to do anything but repost the info here!
reposted by Bob H
Top Agile Tools – Best Kanban Tools
Kanban is growing like wildfire. Many organizations are finding value in this simple process via a “pull” system: The production of work is determined by the demand from the customer.
You have a choice:
1. You can build a Kanban board.
2. You can use a tool and an actual board!
Here is a list of the best Kanban tools out there today.
JAM Circle: *Open Source
Scrumy: *AGILE SCOUT REVIEWED!
Simple Kanban: *Open Source
I became a kanban advocate after implementing a kanban system for our instructional design team during my time at Delta. Before implementing the kanban, leaders assigned work to team members. As is the case in most organizations, we rewarded our top performers by giving them more work. With the kanban in place, the entire team was responsible for moving work through the process. Not surprisingly, our top performers still did more work, but since the work process was now transparent, all the instructional designers improved their performance.
As I work to discover how kanbans can work in the software development process, I found the follow blog posts helpful. I hope you enjoy them and I encourage you to visit both sites for more info on how lean works in software development.
Bob Hubbard April 2011
Scrum vs. Kanban
by Matthias Marschall on August 10, 2010 · 9 commentsWhen inflexible and wasteful processes are making your organization inefficient, it’s time to introduce agile methodologies. Scrum vs. Kanban then becomes an essential question: Which one is better suited for my own situation?
Scrum – A Fundamental Shift
Scrum is a well defined process framework for structuring your organization. Introducing Scrum is quite a change for a team not used to agile methodologies: They have to start working in iterations, build cross-functional teams, appoint a product owner and a scrum master, as well as introducing regular meetings for iteration planning, daily status updates and sprint reviews. The benefits are well understood: Less superfluous specifications and less hand overs due to cross-functional teams, more flexibility in roadmap planning due to short sprints, etc. Switching your organization to use Scrum is a fundamental shift which will shake-up old habbits and transform them into more effective ones.
Scrum Leverages Commitment As Change Agent
The initial introduction of Scrum is not an end in itself of course. Working with Scrum you want to change habits inside your team: Take more responsibility, raise code quality, increase speed. As your teams commit to sprint goals, they are intrinsically motiviated to get better and faster in order to deliver what they promised. Scrum leverages team commitment as change agent. It’s amazing to see how much teams demand from themselves – often way more you as a manager ever dared ask for.
Kanban – Incremental Improvements
Kanban is way less structured than Scrum. It’s no process framework at all, but a model for introducing change through incremental improvements. You can apply Kanban principles to any process you are already running (even to Scrum . In Kanban, you organize your work on a Kanban Board. There you have states which every work item passes through from left to right. You pull your work items along through the in progress, testing, ready for release, and released columns starting from the right hand side based on the allocated capacity of each of the columns. And you may have various swim lanes – horizontal “pipelines” for different types of work. The only management criteria introduced by Kanban is the so called “Work In Progress (WIP)”. Nothing else needs to be changed to get started with Kanban.
Kanban Leverages Work In Progress (WIP) Limits as Change Agent
For every column (state) on your Kanban board you should define a “Work In Progress”-Limit (WIP Limit). The WIP limit tells you how much work items are allowed to stay in a certain state. If the state is “full”, no new work can enter that state. The whole team has to help clear the filled up state first. That way your team will find out about bottlenecks in the progress simply by looking at the Kanban Board and is challenged to change the way they work to avoid such bottlenecks in the future. In that way, the WIP limit acts as change agent in Kanban.
Scrum vs. Kanban
Looking at both agile methodologies it should be more clear what to introduce when: If your organization is really stuck and needs a fundamental shift towards a more efficient process, Scrum seems to be more appropiate. If you already have working processes, which you want to improve over time without shaking up the whole system, Kanban should be your tool of choice.
Scrum and Kanban — different animals
On my last blog post Simple Scrum, Karl Scotland commented:
“Nice description. It also gives me a nice way of contrasting a Scrum and Kanban. Kanban says nothing about Roles, Artefacts or Ceremonies, but leaves the team to self-organise what works best. Instead, Kanban (as I describe it) suggests focussing on understanding the value stream, visualising it, limiting work in progress, establishing a cadence, and continuously improving […]“
Karl’s comment helped me to see clearly that any comparison between Scrum and Kanban is utterly pointless. It is like comparing a hammer with a screw driver, or an soufflé with a kangaroo. Which is better?
It was that phrase “value stream” that did it. It has always made me vaguely uncomfortable when I have heard it spoken in relation to software, and I wasn’t sure why. I have been thinking more about it, and I think I understand. There are two things.
Firstly, I fundamentally disbelieve that there is any such thing as a “value stream” when you are working in a complex environment, in a creative process, building new products or generating new ideas. Once you have mastered something, and go into building variations of it (e.g. web sites, or hand-crafted wedding dresses) then perhaps value-stream mapping comes into its own (there would need to be more similarities than differences). But before such time of repetition I suggest that to focus on a value stream is specious, and misleads people into believing that the creative process is mappable and repeatable. It is not.
Secondly, and more importantly, Scrum is a framework for organizational change It is people-centric. The focus of Kanban —as described here by Karl— is on business value. It is profit-focused. Focusing on profit will rarely transform an organization. Focusing on people and culture stands a better chance. The goal of Scrum —or at least, the goal of the Scrum Alliance, of which I am a member— is to transform the world of work. To do that, we must start with the individual, and we must focus on human values, not business values.
It has become clear to me that Scrum and Kanban are in place for different reasons. Sure, using Scrum you may increase your productivity and build better products (one would hope so!) and using Kanban may make people happier at work, but these are secondary concerns.
And lastly, a word for XP. If you are working with a software team, regardless of the process, and they are not using the principles of software craftsmanship suggested by XP, then please start there. Anything else will be a facade.