AvailAgility
Karl Scotland – Using Agile to Deliver Value
Karl Scotland – Using Agile to Deliver Value
Jan 10th
2012 certainly started with a bang for me (lets hope it doesn’t end with a bang!). After a relaxing Christmas and New Year, I was up at 6am on January 2nd to head for Almens in the Swiss Alps, and an intense few days with Simon Bennett, Steve Freeman, Joseph Pelrine and Dave Snowden. We gathered at Joseph’s house to discuss a common interest, namely how do we apply complexity science, and in particular the Cynefin framework, to Agile and Lean development.
Early on, Simon suggested the name CALM, and it stuck almost immediately. I like it for a couple of reasons. Mashups invokes the idea of “a creative combination or mixing of content from different sources”. That’s exactly what we want to do, and its the creative aspect that particularly appeals to me. A Cynefin, Agile and Lean Mashup will inevitably be created contextually. CALM also subtly counterbalances the XP extreme notion. While that’s not an intentional focus, I find it a mildly amusing reference.
My interest in Cynefin began back in around 2004 when Dave first spoke at XPDays London, and while back then I wasn’t smart enough to realise the full implications, fortunately others like Steve and Joseph were. I met Dave again at ScanAgile in 2009 and last year at the LeanSSC and ALE conferences. Simon also gave a great talk linking Scrum and Complexity more concretely at Agile2011, and I that’s when I finally figured out how Cynefin could match my interest in exploring the underlying theories behind Agile and Lean, and more specifically Kanban Thinking.
My personal goal for being involved in the meeting was to move Cynefin, and complexity science, from being something which is used as a justification, to something which provides meaningful explanation, and ultimately to new application. To keep the industry advancing, and to be able to apply Agile and Lean principles in increasingly challenging organisations, we need theory informed practices, as well as learning from our current success by evolving practice informed theory. In other words we need to take a scientific approach, which ties in nicely with my recent presentations on the Science of Kanban, which should make it to a blog post soon.
The primary outcome of the CALM meeting was the creation of CALMalpha. This is a two day residential conference to be held on the 16th and 17th of February 2012 at Wokefield Park in the United Kingdom. The alpha represents the notion that this is an initial safe-to-fail experiment where we hope to explore the subject in more detail, as we seek to find coherence, coalescence and convergence around what we do in the future.
More detail, including prices and booking information, can be found on the eventbrite page. I hope to see you there!
Dec 22nd
Following on from my post describing a Kanban Visualisation TIP (Token, Inscription, Placement), this post gives some examples of how to visualise the various dimensions of a Kanban Multiverse. The goal is not to define any ‘correct’ ways of visualising information, but to show that there are a variety of useful approaches and hopefully inspire further new creative approaches. As such, I have listed at least 3 techniques for each approach and tried to include some variety.
The dimensions I have used are the usual project management details, but can include the concerns of any member of a team or community. Let me know what other dimensions or data variants could be added, and what interesting techniques have you used to visualise them.
Scope represents the content of the work associated with an element.
Time represents the when work starts and ends and how long it has been in progress for.
People represent who the work is being done by (as opposed to resources!).
Cost represents the estimated effort required to complete the work.
Quality represents how well the work is being done.
Priority represents how important the work is.
Status represents what the progress of the work is.
Capability represents the amount of work that can be worked on at any time, managed through work in process limits.
Demand represents the amount and type work being requested. Demand could show failure and value demand types such as defects and features, classes of service, such as regular, fixed date or expedite, or investment allocations such as portfolio items.
Value represents the benefit of completing the work
These are all factors which are external to the represented work, but which impact it in some way. Issues represent things that might impact the progress of the work. Risks represent things that are impacting the progress of the work. Constraints represent things that limit the way in which the work can be completed. Dependencies represent things that must also be done as part of the work. Assumptions represent things that are expected to happen in order to complete the work.
Dec 3rd
Some thoughts on what I have been referring to as Kanban Thinking
Why create an other brand?
I’m in the camp that believes we need to create more brands, rather than reduce everything down to “common sense” or “good practice”. To paraphrase Alistair Cockburn, every successful team should create its own branded processes to describe the context and the solution.
Why another “Kanban” brand?
By using the name Kanban, I am acknowledging the roots of my current approach in hearing David Anderson talk about Kanban at Agile2007 in Washington DC. I consider that to be as important a turning point in my career as when I first read about Extreme Programming in 1999. Further, my response to calls to provide a single, clearer definition of Kanban for software development, is to encourage more definitions of Kanban. The more definitions there are, the less dogma there will be, and the more people will have to think for themselves about what Kanban means to them.
Why the “Thinking”?
As I mentioned when I blogged about Agile Thinking at the start of the year, thinking should be a core part of what we do. Alongside Lean Thinking, A3 Thinking, Systems Thinking, Complexity Complexity Thinking and Design Thinking, I want to make this explicit. Emphasising the thinking is also intended to make it clear that action is also required to succeed. Kanban Thinking is not a silver bullet as the right action is needed for each context.
What is Kanban Thinking?
Kanban Thinking is systemic. It takes a mindset of optimising the whole system, whatever the boundaries of that system are defined to be. Part of the thinking is deciding what those boundaries are. They do not naturally exist but are created by us to help frame a context.
Kanban Thinking strives to achieve flow, deliver value and build capability.
Kanban Thinking involves studying, sharing, limiting, sensing and learning.
Nov 14th
I was out in the garden this weekend raking up leaves. Having read Geoff Watts recent post about using Scrum to clear his leaves – and as someone who can’t do anything without thinking about work (see Kanban and Quad Biking!) – my mind turned to how I would use Kanban Thinking to approach the work at hand. Surely I would advocate single piece flow by clearing up each leaf individually, visualising and measuring my progress?
I hope its clear that doing as such would be insane! But why? Maybe “single leaf flow” would be better? Why did my instincts shout out otherwise? The answer, as I have learned so often recently, comes down to making an economic trade-off. Every decision has a value and a cost, and finding the right balance is key, preferring higher value and lower cost.
Each leaf cleared from my lawn would have value in progressing me towards my goal of a tidy garden. However, the transaction cost of removing each leaf individually would be far too great. Therefore, a more sensible trade-off was to batch the leaves into piles, so that transaction cost was spread over a larger number of leaves.
Further, like Geoff, I also considered the risk of creating multiple piles before bagging them up. I could also run out of bags, or have the piles blown away. However, I knew I had plenty of bags, and it was an unseasonably still day, so I created multiple batches before bagging. I was even able to safely have lunch between batching and bagging without any regret. In other words I made another trade-off between the value (in terms of addressing risk) and cost. The value (or risk) wasn’t great enough to justify the cost.
I may not have designed a Kanban System to rake the leaves, but I did apply some economic thinking to decide what to do. If there’s one main lesson I’ve learned over the last few years, its that there is rarely a ‘right’ answer, but that there are trade-offs, and they are usually economic.
Nov 9th
At the Scrum Gathering in London this October, I had a bit of a flash-back to the last time the Gathering was in London. At that event, during the Open Space, I announced a Kanban session with words along the lines of “My team recently stopped using Scrum and our productivity has improved”. As I recall it, there was an audible intake of breath, although I’m sure my memory has exaggerated the effect!
I was reminiscing about this with Rachel Davies, who facilitated the Open Space at both Gatherings, and she shared the photographs she had taken of the output, which she still had. Here they are for posterity. I expected to find much of my thinking had changed since then, but apart from having less focus on waste and inventory now (preferring to know emphasise value and flow) it still seems relevant.
Here are the photos – thanks to Benjamin Mitchell for being the scribe. I’m hoping to add some of the audience which I know are out there somewhere.
Sep 26th
In a previous article I wrote on Visual Management, I described how kanban boards can be viewed as multi-variant displays, visualising multiple possible dimensions of a kanban system. To visualize all these variants we can use a number of techniques to create multi-functioning graphical elements which can achieve a high data density. The techniques, when categorized and combined, create a visualization TIP, such that each element is made up of the following:
The Token is the element which represents some piece of work, with the attributes material, size, colour and shape all able to represent information.
The material is the base composition of a Token. Common materials are index cards and sticky notes, although anything which can be easily inscribed and placed on a kanban board will do.
To add a further dimension, the material can be used in different sizes to show some relative relationship between similar elements. Index cards, sticky notes and other adhesive shapes all come in a variety of sizes.
Similarly, the material that is being used for a visualization element can have different colours to show some enumeration. Again, index cards, sticky notes and other adhesive shapes also come in a variety of colours.
As well as typical rectangular index cards or sticky notes, other shapes, such as stars or circles, can differentiate between various elements. Similarly, a variety of shaped annotations or adornments can convey further information.
The Inscription is any detail added to the token about the work. Common types of inscription are annotations, graphics, linkage and formatting.
Annotations are any written information added to a token to give basic details about what the token represents.
Graphics can also be used to illustrate information related to the work in a more symbolic manner.
Linkage can provide references to further information, or related work items, in order to keep the inscription focused on the most relevant information.
How information is presented on Tokens can help to make them readable. Clear and consistent layout, using a tabular arrangement or zoned areas, ensures that any inscription is easily consumable.
The Placement is how the Token is positioned on the kanban board, with the location, alignment and rotation all being relevant.
Where an element is positioned can convey meaning, with horizontal or vertical placement being significant on a relational board design. The importance of location can also extend to elements such as cards themselves, with the position of annotations proving important.
When location is significant, then alignment can show a relationship between different elements, usually horizontally or vertically. Alignment is often used to create columns or swim-lanes with which to create an association. Other options include zonal alignment in a map-based format, or proximity alignment in a mind-map format.
The rotation of an element can mean different things, particularly with rectangular shapes which can be positioned in either landscape or portrait mode, or at some other angle.
When designing a kanban system’s visualisation, thinking about how the TIPs are used can help come up with solutions which are creative and contextually appropriate, and help avoid falling into the trap of copying known and sometimes simplistic examples, as highlighted by Keith Braithwaite.
In a future blog post, I intend to demonstrate how different dimensions of a kanban system might be visualised with a TIP. In the meantime, I wonder if you think I have missed any other techniques?
Aug 15th
Once again, I helped out with the volunteer bag packing at the Agile2011 conference, and as usual we had great fun and broke records. This year we completed 1600 bags in just under 4 hours packing time, with an hour preparation/breakfast and an hour for lunch. Christopher Avery took some video footage and interviews, which I hope to be able to link to here soon.
For the retrospective, run by Eric Willeke, we asked participants for things that they had learned which were relevant to software development. Here’s the list:
Update: Eric has written his own post of the experience
Aug 3rd
On the flight out to the Kanban Leadership retreat in Iceland last month, Katherine Kirk and I were chatting about Kanban failure modes that we’ve seen out in the field (e.g. quirky command and control interpretations by people who had not had experience in Agile first), and played with the idea of combining Kanban with Crystal (kind of in the same way that ScrumBan combines Kanban with Scrum). We jokingly referred to this as CrystalBan.
The reasoning behind our discussion was that Crystal and Kanban are both adaptable, context driven approaches. Crystal concentrates a lot on working with the ‘human’ side of the methodology equation – highlighting good, tried and tested Agile properties, strategies, and techniques – and Kanban is focussed on incremental improvement at a pace which respects people’s ability to absorb change. We discussed how, as an Agile/Lean community, we sometimes take it as given that Kanban for software and systems was pioneered by people from the Agile world, and therefore we often don’t explicitly state what to use from Agile to get the best out of Kanban. Maybe we should?
It was a fairly light-hearted conversation, so we didn’t pursue it in Reykjavik, but the idea didn’t die either as both of us kept coming back to it. We held an Open Space session at the UK Agile Coaches Gathering a few weeks ago which didn’t produce anything really concrete, but did get some murmurs of interest, so Katherine and I sat down this week to thrash it out.
Kanban failure modes was a topic twice covered in sessions in the Kanban Leadership Retreat and, interestingly, difficulties with ‘humans interacting with humans’ were pinpointed as one of the common causes of Kanban failure modes. Crystal’s main properties, strategies and techniques deal a lot with the people side of the equation from the Agile perspective…. which opens up the idea that it might be a nice possible blend with Kanban.
So, are they compatible? Can they work together?
In his book Crystal Clear,Alistair Cockburn describes Crystal as “a family of methodologies with a common genetic code, one that emphasises frequent delivery, close communication and reflective improvement…” and he points out that, as it is context driven, that “…there is no one Crystal methodology”. As a result he admits that some groups can “have trouble with Crystal because it is too empty to start with.”
In his book Kanban, David Anderson describe Kanban as “an approach that drives change by optimizing your existing process”. This makes Kanban relatively easy to start with because the “essence of starting with Kanban is to change as little as possible”.
Given that Crystal gives guidance on what a successful process will look like, based on a strong Agile foundation, and that Kanban gives guidance on how to improve an existing process, drawing from Lean, it seems that they are a natural fit to realise the benefits of both while avoiding the risks. A win-win.
Crystal describes seven properties of a successful project, the first three of which are core:
In order to achieve these properties, different strategies and techniques can be employed. This is where we see that Kanban comes into play.
One source of Kanban strategies is David Anderson’s Recipe for Success:
What David calls “five core properties to create an emergent set of Lean behaviours” could also be thought of as techniques in Crystal ‘dialect’. David’s five core properties are:
I have a different model I use which maps onto strategies and techniques. The strategies are:
with the associated techniques:
Katherine and I both observed that the Kanban strategies and techniques do achieve the top three Crystal properties of Frequent Delivery, Reflective Improvement and Close Communication, as well as help towards some of the others. However, because Kanban for software and systems in the most part has its origins in the Agile world, perhaps its time, as a community, to start to examine whether we should be a bit more explicit about all the good Agile resources that already exists – as Kanban starts to expand further into ‘non Agile’ territory.
People new to Kanban, and without Agile experience and knowledge, may easily miss the benefits from some of the other properties, as listed in Crystal Clear, which have been tried and tested by the Agile community for many years. In the same way that Alistair made the Technical Environment property explicit, despite it being so well established, we shouldn’t forget all the existing established strategies and techniques which can enable the other properties.
Further, this approach helps us understand how other strategies and techniques from outside of Agile can help towards successful implementations. For example the work of Chris Argyris, as promoted by Benjamin Mitchell, can help towards Personal Safety.
I’d like to thank Katherine for her time, energy and passion in helping form this and collaborate on writing it up.
Jul 21st
I’ll be at Agile2011 again this year presenting a couple of sessions. Here are the details if you’d like to come along and take part.
Note that while the program page for “Flow Games” suggests that we will play a selection of games, the final time constraint of 1 hour means that Eric and I will probably only be able to play one game, which will be the Ball Flow Game. Fortunately, there is another similar session (Lean Fundamentals with Michael Sahota) which will run the other games we had in mind, so we encourage you to go along to that if you want more!
Jul 19th
I previously wrote about the Ball Flow Game I ran at the Scrum Gathering in Amsterdam. I’ve updated the game quite a bit since then and its stabilised into something I’m finding very useful when I work with Kanban teams to help them understand some of the concepts behind Kanban Thinking. I hope this write-up enables others to use and run the game.
To recap, the Ball Flow Game is based on the Ball Point Game, with the following rules:
The aim is to complete 20 balls (as opposed to complete as many in 2 minutes). Thanks to Rally colleague Eric Willeke I now add some fun context as well. I tell the team that they are producing magic balls. Magic is added to a ball only when everyone has touched it. If two people touch a ball at the same time, the magic is dispersed. Further, magnetic fields mean that passing a ball to a direct neighbour also stops magic being added. The start/end person is the customer wanting magic to be added to the balls. Its silly, but it adds an extra element of fun, and reinforces that the rules are constraints in the context that can’t be changed.
I use a spreadsheet to help automatically capture data about the performance of the team. (Download the template). It works using four macros, which are assigned to buttons and hot-keys:
Once the metrics are calculated, three charts on the worksheet will populate themselves.
Upper and Lower Control Limits can also be calculated and displayed for Lead Time. They are currently commented out in the macro code because I found that they weren’t necessary for the core learning objectives. You may also need to tweak some of the macro functions for different versions of Excel (I use Windows Excel 2010). The template has worksheets for 5 rounds. For additional sheets, simply one of the existing rounds.
One of the things I’ve noticed is how the dynamics of the conversations are different from when I run the traditional Ball Point Game with teams. In particular, the team I was working with today really understood the idea of scientific management and made very small, quick and focussed changes each round as experiments, hypothesising on how the metrics would change. With the Ball Point Game I find teams want to debate in depth all the options in their attempts to get an improvement.
Note that as I said in a post of Balanced Software Development, “scientific management is still relevant for knowledge work, when the workers are the scientists.”
Here are the results. (Apparently we started with only 19 balls due to a facilitator error!)
In this round, the customer ‘pushed’ balls into the system when he could. You can see the lead time increase as the WIP increases in the CFD, up to a point when a natural system limit is reached. Towards the end the customer stops adding more balls to let the system flush itself out a bit, which shows as the step in the CFD at about 60 seconds, the drop in lead time, and the spike in throughput. The final two balls went through when the system was virtually empty. Notice the short lead times again!
In this round the team decided to limit the WIP to 6 – one per person. However, interestingly (to me at least) they decided to batch them, by getting all 6 through before they started the next 6. Lead time is much more stable this time. The spike is because the customer forgot to receive the last ball of the 1st batch before starting the 2nd batch, so it got stuck! Throughput is wildly variable though because nothing comes out for a while, and then all 6 come at once. You can see the batching in the ‘steps’ in the CFD.
In this round the team wanted to experiment with an low extreme WIP limit of 1. Lead time is significantly better, but throughput is low because there is too much slack in the system now. Notice the smooth flow in the CDF. The patches where WIP drops to zero are because the customer’s process between receiving a ball out, and adding a ball in, added a noticeable delay.
In this round the team increased the limit to 3, but continued to process those 3 in batches. Lead time remains the same, but with improved throughput. The CFD still shows signs of the batching with the customer delay between batches, but is much steeper due to the improved throughput.
Finally, the team decided to remove the batches and solve the customer’s delay issue by re-organising themselves. This time the customer added 3 balls into the system, and then only added another when one came out. Lead time is slightly increased, probably due to the fact that there were always 3 balls in process which added some complexity. Throughput is improved again though, and the CFD is looking very smooth.
As you can see, the team made significant improvements over the five rounds by making small changes informed by the data they had about their flow and capability.