Karl Scotland – Using Agile to Deliver Value
Posts tagged Kanban
A Pattern for Using Scrum and Kanban
Jul 27th
I’ve noticed a pattern that I’ve found myself using recently when I’ve worked with new teams that makes use of both Scrum and Kanban ideas. I’ve already said that I believe the two are complimentary, and this should help show how.
- I’ll often begin with a “Canonical Scrum” implementation. This gives a relatively simple introduction due to the ubiquitous language, standard training and often client demand. I also find that its a very good way of quickly exposing the real underlying workflow. Stressing a team by introducing a new way of working soon makes the current way of working apparent.
- After a few Sprints,once the team understands both what the desired outcome is and the current context is, I’ll ease back into what many people might call “ScrumBut”. Rather than continuing to highlight and struggle against impediments and constraints which are out of the teams control, I will apply kanban aspects to help the team acknowledge, but deal with their context without feeling dogmatic.
- Finally I’ll help both the team and the organisation improve, by seeing where the issues are, whilst continuing to be able to deliver. Sometimes the current workflow is appropriate for the team and it is smaller batches and queues that are needed. Sometimes the current workflow is a symptom of silos and poor collaboration.
So I find Scrum to be a good way of showing teams what could be possible, and finding out where I can help make improvements. Then I find Kanban a good way of enabling a smoother transition for those improvements in a way which is appropriate for the teams’ contexts.
Does A Kanban System Eschew Estimation?
Jul 14th
I was recently involved in a brief twitter conversation which started when Mike Sutton tweeted:
estimation is not about the number that pops out. It is about exploring effort and discovering that you don’t know stuff.
Paul Dyson responded:
spot on! This is fundamentally what I don’t like about the kanban “if people find estimation hard, don’t make them do it” mantra.
Which is where I jumped in:
where did you hear that “kanban mantra”? Not one I’m familiar with.
Only to be told:
err, it was actually in the talk you gave at mini-Spa!
Since then, Paul has blogged some more on estimation, and this is my response, hopefully clearing up what I said, or at least meant to say at mini-Spa, in addition to what I’ve already written on estimation and waste.
A simple summary and paraphrasing of Paul’s post would be:
Estimation, as part of time-box planning, leads to whole team interaction and collaboration, to create learning about past capability and forecasts of future capability
Lets start by drilling into these key points from Paul’s post. Essentially the implication is that by eschewing iteration, we cannot have whole team interaction and collaboration, cannot learn about past capability and cannot forecast future capability.
Whole team interaction and collaboration
I can think of 3 ways a team a whole team can interact and collaborate around planning a new piece of work without estimating in a time-box planning meeting:
- Cadence. The team agrees a cadence at which they will all get together to collaboratively plan new work. This planning cadence looks at what new items the team may be able to pull, given their current work-in-process, rather than estimating what items they may be able to complete.
- Workflow. The team explicitly models there workflow to make transparent that fact that they need to get together to plan new pieces of work when they are pulled. This stage could be a stage called “Planning”, or even ”Analysis”!
- Just do it! When the team pulls a new work item, they spontaneously swarm on it to plan it. This probably requires a small and high performing team.
Even so, this is assuming the whole team really does need to interact and collaborate on every piece of work. However, not every piece of work is equal, and there may be some smaller, simpler features that can be planned and delivered by a smaller group.
Create learning about past capability
We can learn about our past capability by measuring data such as cycle time, and tracking it with a Statistical Process Control chart. Common cause variation is to be expected within a stable system. However, special cause variation is something we can look at in more detail to see what we can learn (as long as we don’t change the system in response to special cause variation).
Forecast future capability
Once we understand our past (or current) capability we can use that information to forecast future capability. By understanding how long things have typically taken in the past (with natural variability) we can determine how long things will take in the future (with natural variability). Dennis Stevens has recently written some great posts discussing knowing when we will be done, using classes of service and service level agreements to manage variability.
So kanban teams do not eschew estimation simply because it is hard. Some teams choose not to estimate because they can realise the same benefits that estimation gives with a lower cost. The old joke does still apply (“Doctor, Doctor it hurts when I do this”, “Don’t do that then”). If it hurts to estimate, then find other ways to encourage whole team interaction and collaboration, learn about past capability and forecast future capability. On the other hand, if estimation doesn’t hurt, or costs too much, then it may be the right thing to do in your context.
What I think we do agree on is that when we are planning, we should decompose work for understanding, rather than sizing (thanks to Eric Willeke for this phrasing). As Mike says, the estimate is just a number that pops out of the discovery.
Aspects of Kanban in Methods and Tools
Jun 20th
I wrote an article on “Aspects of Kanban” which has just been published in the Summer 2010 issue of Methods and Tools magazine. Download it, have read, and let me know what you think!
Alternatively, there is now an html version available.
Kanban and Scrum – Intention and Implementation
Jun 17th
In my last post I introduced the idea of a PVC System – one which exemplifies Pull, Value and Capability – and closed by posing the question as to whether Scrum could be considered to be a PVC System. In answering that question myself, I realised that there is another distinction which I will describe in this post. In doing so, I am also re-entering the great Kanban and Scrum debate, with the goal of learning rather than fighting!
The XP Community popularised the concept of programming by intent; writing code which describes what it is doing rather than how it is doing it (programming by implementation). I believe the same distinction can be used to describe methods, and can help differentiate Kanban and Scrum. Kanban is an intention-revealing method. The intention is to reveal the workflow, visualise the work, limit work in progress, establish a cadence and continuously improve. How to do that is up to the team. They can use any workflow, visualisation, WIP limits, cadence or improvement mechanisms. Scrum on the other hand is an implementation-revealing method. The implementation is described in terms of the Sprint and the associated roles, meetings and artefacts. Even if the implementation is described in abstract terms, as Tobias Mayer does, (and Tobias’s interpretation of Scrum is one I respect greatly) I still consider it to be focussed on implementation.
This is not to say one is better than the other. An implementation is ultimately required, and Scrum has proven to be a very good one with which I have had considerable success. But is Scrum a PVC System? I think it can be, if implemented with an intention-revealing mindset. If the Sprint, roles, meetings and artefacts are implemented in way which reveals the workflow, visualises the work, limits work in progress, establishes a cadence and continuously improves, then it will be implemented with the right intent. I expect that most cases of “Good Scrum” will fall into this category. On the other hand, if the Scrum Sprint, roles, meetings and artefacts are implemented in a mechanical way, then I suspect that the workflow will remain hidden, the work will not be visualised, work in process will not be limited, a cadence will not be established, and continuous improvement will not happen. This is when we get cases of “Bad Scrum”. Thus ScrumBut is not when the Scrum practices aren’t followed per-se, but when they are followed with the wrong (or no) intent.
So Kanban and Scrum are like apples and oranges (to jump to an different analogy). Both are good for you, and both can go together – with other fruit – to create a tasty fruit salad. But they are different. Kanban is intention-based and Scrum is implementation-based.
Facilitating A Kanban Konversation
Mar 24th
As I mentioned in my Scrum Gathering Musings, I came up with a twist on the Goldfish Bowl format which I used during the Kanban Exploration Deep Dive. Here are some more details.
The Goldfish Bowl format works really well for facilitating a focussed discussion with a large number of people. It keeps the active voices to a manageable number, while being open for anyone to join in if they have something to add. Apart from providing a solution to my challenge – keeping a spirited debate under control – it also seemed appropriate that the limited number of chairs provided a means of limiting “Voices In Conversation”.
However, there was one thing about the Goldfish Bowl which didn’t seem appropriate. With a Goldfish Bowl, when someone wants to join the discussion, they fill an empty chair as part of the conversation, and force someone to leave to free up a seat again. That seemed to be like “pushing” in to the discussion. What it no-one wants to leave? So instead, I moved the empty chair out of the discussion, and made it a Queue. If someone had something to contribute, they could fill the “Waiting to Talk” seat, which would be a signal to the “In Conversation” people that one of them should leave when ready. I was pleased to find that this change worked really well. Rather than the discussions being interrupted when people moved around as they figured out who would leave, the conversations flowed smoothly as people moved in and out naturally. Initially the “Waiting” person had to wait some time, but once we got used to the system, this seemed to be less of a problem.
- 4 “In Conversation” seats and 1 “Waiting to Talk” seat
- Only “In Conversation” people may speak
- If you want to join the conversation, fill the “Waiting to Talk” seat (if it’s empty)
- When someone “In Conversation” leaves, that is a signal to move from “Waiting to Talk” to be “In Conversation”
I wondered whether we would evolve the system, by increasing or decreasing the number of seats in each state, but that didn’t happen. Its something I’ll look out for in the future. I’d also love to hear if anyone uses this format, or has already done something similar.
Process Safeguards and Ski Slopes
Jan 8th
One of the joys of working as a coach for EMC Consulting are the regular opportunities to have deep conversations on various topics with my colleagues when we are in the office together. For example, earlier this week myself and Simon Bennett began to discuss way of talking to our clients about process such that we can guide them towards the most appropriate choice. However much we may have our preferred approaches, they may not always be the best solution in any context. In the course of the conversation we compared various styles including waterfall, scrum and kanban, and looked at them on various scales, including risk, reward and control. None of these seemed satisfying as a language to use, until Simon suggested safety.
Different processes have different levels of safeguards built into them. Safeguards are used by processes to compensate for low skill, low maturity or low trust, but they also reduce speed or reward. With a waterfall process, the heavy up-front documentation is a safeguard to compensate for low trust (and often low skill and maturity). When a customer does not want to collaborate, then waterfall provides safeguards aimed at avoiding them rejecting the final delivery (not that those safeguards always work!). At the other end of the spectrum, extremely productive teams often have very few safeguards because of the high trust, collaboration and capability. Those safeguards that are in place (such as automated tests) are very different. Not having safeguards doesn’t make the process dangerous. It means that team doesn’t need them. So when we talk to customers about process, we can talk about the appropriate safeguards needed for the amount of trust that exists, the capability of the team, the desired delivery speed etc.
While exploring this idea, I became aware that at various points I was referring to kanban at different places on the safeguard continuum. At the high safeguard end was a kanban based process that looked like waterfall, but was limiting WIP and reducing queue and batch sizes. At the low safeguard end was a kanban process with extremely low WIP, no estimation and pure pull. That’s quite a wide range of processes. Similarly, we had Scrum down as a range on the continuum. Towards the high safeguard end, Scrum-but changes Scrum to add safety. Towards the low safeguard end, a highly productive Scrum team will just be using the raw essence of Scrum. Even at this end, however, the Sprint boundary in Scrum could be seen as a safeguard. It’s the opportunity to pause and reset if things are going awry.
In trying to articulate the different types of kanban system in terms of safety, I gave a nod to XP and labelled low-safety kanban “Extreme Kanban”, and high-safety kanban “Safe Kanban”. Not entirely happy with this we bounced some more ideas around and came to the Ski Slope metaphor. “Extreme Kanban” became “Black Kanban” and “Safe Kanban” became “Blue Kanban”. A further iteration led us to “Off Piste Kanban” and “Nursery Kanban”. The ski slope metaphor works quite well at a number of levels. Its a nice way of looking and risk and reward. As a beginner at skiing I don’t want to take much risk, but can get some reward on the nursery slopes. As my capability improves, and as I trust my ability (and instructor) more, I’m prepared to go onto more difficult runs and take more risk to get more reward. Nursery slope groups are generally more controlled, staying in a single file group. As capabilities improve, individuals are given more freedom to try things out for themselves. If I were ever to become an expert, I’d be happy to go off piste to get a high reward. Additionally, when I get to a level where I go off piste, I probably don’t need an instructor anymore, but I may need a guide.
Using the ski slope metaphor allows us to decide what level of process to start a new team with based on how good they currently are. We may want to stretch them a bit, but we may not want them to go straight onto a black run process. We also want the team to be able to move up to more challenging but rewarding levels as they improve. This is one of the reasons I prefer a kanban based approach. I believe it allows teams to start with an safer process to begin with and move to more rewarding processes later by removing or changing safeguards, as opposed to pushing teams straight into a process with less safety before they are ready.
Kanban Trail Markers
Nov 24th
When talking about Kanban Systems for Software Development, I always try to emphasis that the Kanban System is more than the tool, and is a System that should be owned by the team, rather than being imposed upon it. By owning it, and being part of creating it, a team are more likely to evolve the system as part of continuous improvement. Recently, I tried a new analogy to make this point, and while its not perfect, I think its good enough to blog about for further feedback.
The Primary Practices of Kanban that I describe, are not Boolean practices that teams either do or don’t use. Rather they are practices that teams should be constantly revisiting, and re-implementing, as they improve and their context changes. To recap, the primary practices I talk about are:
- Map the Value Stream
- Visualise the Value Stream
- Limit Work in Progress
- Establish a Cadence
- Reduce the Kanban Tokens
I currently describing these practices as like trail markers on the team’s journey of process improvement. At any point in time, the team’s Value Stream, Visualisation, WIP Limits, and Cadence identify where the team currently is, and when combined with Kanban Reduction, point the way forward. As when on a hike, only the group knows where it is, and only the group can decide where it should be going. The hiking group must work together, helping each other out and making sure that everyone reaches the destination. If you’ve read Eli Goldratt’s “The Goal” you’ll recognise the comparison to the one he uses.
Where the analogy breaks down is that a team’s trail markers are only ever unique to that team. They cannot be followed by other teams. Instead, they will only show the journey the team has been on in their quest for success.
Outcomes and Sync Steps
Nov 5th
I met up with Jean Tabaka last week for a coffee and we chatted over various things, including Lean, Kanban, “The Don”, Tufte, and Systems Thinking. One of the other areas was around the origins and original intents of Scrum. Jean mentioned an early paper(*) by Jeff Sutherland, written before the current terminology became standard, where he described his process in a very simple way
- Decide and agree on an Outcome, in terms of working software
- Use daily Sync Steps to decide how to best achieve the outcome
Since we had that discussion (which also touched on GTD), I have found that this a great a way of describing the essence of Agility. Inevitably it has also triggered thoughts on ways of comparing and contrasting Kanban with more traditional Agile methods such as Scrum.
In a Scrum based approach, the Outcome is defined by the Sprint Goal, with the Sprint Plan being a means of making a commitment to the Outcome. There is a single Outcome, which is constrained by the length of the Sprint. The Sync Steps are provided by the Daily Stand Up Meeting.
In a Kanban based approach, the Outcomes are the limited work items in the system. There can me multiple Outcomes in progress at a time, but the WIP limits constrain the Outcomes. Planning, and as a result any commitment (or SLA) on the Outcomes is done per Outcome, and Just In Time. The Sync Steps are usually provided by the same Daily Stand Up Meeting, but could also be formed by other forms of Cadence.
So both Scrum and Kanban focus on team Outcomes, with regular Sync Steps to achieve the Outcomes. The way in which those Outcomes and Sync Steps are managed are different.
(*) Unfortunately, I don’t have a reference to this paper. If you recognise it, please let me know!
Update: Jeff actually calls them SynchSteps. References can be found in this 2001 paper, and in early emails. He also refers to Outcomes as Mutations.
Is Kanban A Relabeling of Scrum?
Oct 20th
Firstly, this post is not an attempt to be divisive or competitive. Instead it is meant to be exploratory. What would it mean for the statement in the title to be true? Actually, the full statement was “People have so misunderstood Scrum, that they’ve reinvented it and called it Kanban”. It was made by Jim Coplien at Scan-Agile, after (but not necessarily the result of) a conversation over dinner where myself and a few others were describing how we used Kanban. Each time we described different aspects of our processes, Jim would say something along the lines of “but I do that with Scrum”.
So what would it mean for people to have so misunderstood Scrum that they have reinvented it and called it Kanban?
- It might mean that at their heart, Scrum and Kanban have the same intent. That both are really focussed on helping teams think about their processes in order to help them succeed.
- It might mean that the way that Scrum was originally articulated (and is still articulated according to the latest Scrum Guide) was not as clear as it could have been. That teams might misconstrue the focus on roles, meetings, artefacts and rules.
- It might mean that there are alternative ways of articulating the same intent. That teams might find alternative articulations valuable.
- It might mean that Kanban can be equally misunderstood. That teams might be bewildered by a less prescriptive approach.
- It might mean that we should spend more time on understanding how to help teams solve their problems and less time arguing and fighting over preferred solutions.
These are just some of my thoughts. They do not mean that I think Scrum is bad – just not perfect. They do not mean that I think Kanban is perfect – although it’s currently my first language. The topic drew a good crowd at the Scan-Agile Open Space and we had a good discussion. What else might it mean?
5 Steps to Kanban in Cambridge
Oct 12th
I’ll be talking about 5 Steps to Kanban at Software East on November 19th. From the website:
This event will take place at Red Gate Software, Newnham House, Cambridge Business Park. See the location map for Red Gate Software.
BOOK NOW for this event. Tickets (including light buffet) £15 if booked on or before 16th November, £25 thereafter. Places strictly limited.







