Agile 2009 and Scan-Agile

I’m going to be at Agile 2009 next week in Chicago. I’m not presenting any sessions this year, but I’ll be hanging around the Kanban stand at the Freshers Fair, and probably spending some time in Open Jam to hopefully catch up with people in person while I have a chance.

I’m also really pleased to have been invited to speak at the Scan-Agile conference in Helsinki, where I’ll be talking about Five Steps to Kanban. Here’s the abstract.

A Kanban System for Software Development provides an alternative means of creating an Agile Development process using Lean Thinking. Creating a Kanban System is not as simple as adopting a previously defined process as a starting point. Instead, a team needs to come up a model of its own process which will form the basis for further continuous improvement. This talk will introduce 5 steps that a team can use to create their own Agile process using a Kanban System for Software Development.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Does A Kanban System Eschew Iteration

There has been some recent discussion on the blogoshpere and twitterverse about the relationship between Kanban Systems for Software Development and the concept of iteration. The often raised concern that a Kanban System is “Waterfall 2.0” came up again, along with the suggestion that a Lean perspective might view iteration as rework, and as a result be waste.

One of the conclusions was that both a Kanban and Time-boxed approach are independent of iteration. I like Jeff Patton’s description of iteration. Iteration is used to find or improve a single solution. Incrementing is used to build up additional solutions.

It is perfectly possibly with a time-boxed approach to define a product backlog based on already decided solutions, and then prioritise User Stories to incrementally build up the functionality for those solutions. I don’t think this is that uncommon. Similarly, a Kanban System could be used to only incrementally build up the functionality for pre-determined solutions.

Done well, both a time-boxing and Kanban approach will prioritise work to generate knowledge and feedback which will help discover or refine solutions. What is really being prioritised in this case is a problem, or an ROI Component (as the Real Options tribe like to call it). This is where I think a Kanban System can help by explicitly managing the work at both levels. The ROI Components, which I prefer to call Minimal Marketable Features, can be prioritised and limited as Work In Progress. The MMFs can then be expanded to candidate User Stories which can also be prioritised, managed and limited in order to iterate the MMF. Eventually, the User Stories will be collapsed back together to actually deliver the MMF as an increment.

Thus a Kanban System can explicitly visualise that MMFs are being delivered incrementally, and are being iterated using User Stories. While this same approach can be used with time-boxes, it will often be implicit.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Kanban, Flow and Cadence – Russian Translation

Aleksey Goncharenko, a Project Manager at Flexis Corporation, has translated my Kanban, Flow and Cadence post into Russian. If you can read Russian, you can find it here!

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Skills Matter Slides and Video Available

The slides from my Kanban, Flow and Cadence presentation at Skills Matter are now available for download, and the video of the session is also available for viewing.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Lean & Kanban Miami 2009 Videos Available

This is the announcement from David Anderson on his blog:

After some delay while we arranged for hosting, the videos from the Lean & Kanban 2009 conference in Miami are now available.

I need to thank InfoQ for making all of this happen. As a media sponsor, InfoQ intended to use these videos together with the presentation slides on their own site. However, the videographer didn’t follow their format instructions and the result was that they couldn’t use them. So after some editing and cleanup they donated them to the community – in this case the Lean Software & Systems Consortium.

As a sponsor of next year’s Lean Software & Systems Conference, Software Engineering Professionals (SEP) kindly offered to host this year’s videos.

View now!

In particular, I’d like to highlight the video of my Kanban, Flow and Cadence presentation.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Ratings Activated

I’ve just activated ratings on the blog. They can be found at the bottom of each post on their indivual permalink pages. If you have the time and energy, please find your favourite (or most hated) entries and rate them. Feedback is always good 🙂

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

What is Cadence?

Mark Stringer gave me some good feedback recently, that I clearly hadn’t described what I meant be Cadence at the recent miniSPA conference. In order to try and correct that, I thought I’d try and clarify with a blog post that it not simply variable length iterations.

The purpose of a cadence is to establish a reliable and dependable capability which demonstrates a predictable capacity. Cadence gives some confidence in the upcoming work when we are triggering rather than scheduling work.

Time-boxing is one specialised form of cadence. It’s like a metronome, giving a single tick. All the main process events are based around this single tick, as shown below where the dotted vertical lines represent the Sprint boundaries. In this example, the unit of work is a User Story, and User Stories should be small enough to be scheduled into a Sprint, and subsequently completed in the same Sprint. Stories in Progress are limited to two, as a good Scrum team might, but Stories don’t always fit exactly into a Sprint. Note also, that while releases can happen each Sprint, User Stories are only potentially shippable product increments.

Sprint

Kanban on the other hand has a cadence which is more like a drummer. The rhythm is more complex than the single tick of a metronome, and can be more varied, as shown below. In this example, the unit of work is a Minimal Marketable Feature, which while needing to be as small as possible, is not constrained be being required to fit into a schedule. Instead, an MMF is able to flow over a number of process events while it delivers some releasable value. Planning, reviewing, retrospection and releasing all still happen regularly, but they are de-coupled. They can happen independently, at differing rates, which may provide more freedom in creating a natural process which enables the team.

Kanban

A cadence is usually ‘harmonic’, in that there is a neat overlap between the different rhythms, as in this example. However, it does not have to be. A look at some definitions of cadence can show why. These are some favourites I picked off dictionary.com

  • In music, the ending of a phrase, perceived as a rhythmic or melodic articulation or a harmonic change or all of these; in a larger sense, a cadence may be a demarcation of a half-phrase, of a section of music, or of an entire movement
  • Music. A progression of chords moving to a harmonic close, point of rest, or sense of resolution.
  • The flow or rhythm of events, esp. the pattern in which something is experienced: the frenetic cadence of modern life.

Thus cadence is what gives a team a feeling of demarcation, progression, resolution or flow. A pattern which allows the team to know what they are doing and when it will be done. For very small, or mature teams, this cadence could by complex, arrhythmic or syncopated. However, it is enough to allow a team to make reliable commitments because recognising their cadence allows them to understand their capability or capacity.

VN:F [1.9.22_1171]
Rating: 3.0/5 (12 votes cast)

Kanban, Flow and Cadence News

I did a re-run of Kanban. Flow and Cadence at miniSPA yesterday after being selected as one of the best sessions from the main SPA conference this year. I’ve just uploaded the slides on my downloads page. I had some good and appreciative feedback, and Mark Stringer has bee good enough to post some of his thoughts. I’m always glad to get this sort of feedback as it helps me understand how well I am explaining myself, and improve future presentations.

I have also recently agreed to do session at Skills Matter in London on the evening of July 30th – please sign up. This is the start of what I hope to be series of events jointly organised by Skills Matter and the London branch of the Limited WIP Society. While most of the ideas I will talk about remain the same, I am going to spruce up the slides and base them on the talk I gave in Zurich. The original version of Kanban, Flow and Cadence is nearly a year old now, and is refusing to die, so I’m keen to bring in some of my latest thinking.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Kanban Is My First Language

I was chatting with Benjamin Mitchell recently on the way back from the recent Skillsmatter event at the BBC and said something along the lines of, “I think in terms of Kanban, even when I teach Scrum”. I’ve been mulling over that idea more recently and decided that its a good analogy. Kanban and Scrum are just like different languages.

Different languages can all express the same ideas, but each has its own strength and weaknesses which can give a different interpretation. Its also important that when you speak in a language, that the listener speaks the same language. Conversations between two people who speak different languages can be very painful, and often confusing! It is possible to aid communicate by using multiple languages, however, swapping occasional words or phrases when necessary. Similarly, different methods or processes can all be expressing the same ideas slightly differently, which can cause confusion or help communication of those ideas.

I’m not multi-lingual (in the literal sense), but I can imagine that being able to speak more than one language gives a good insight into how languages work, as well as making learning further new languages easier. Knowing the various grammar rules and other such things that I don’t understand is probably very useful in being a better communicator. Similarly, understanding different methods or processes can give us deeper insight into how and why they work, and help us improve further.

However, when I try to speak in another language, I always think in English. I imagine that’s common and that it’s rare even for skilled multi-linguists to switch the language they think in. So using the language analogy, I currently think about software development in the language of Kanban. Its my first language.

VN:F [1.9.22_1171]
Rating: 4.0/5 (1 vote cast)

Does Kanban Respect People, Self Organisation and Continuous Improvement

There has been a lot of talk recently about whether Kanban Systems for Software Development include the need to respect people, and allow self organisation and continuous improvement. It is true that the community has primarily focussed on the mechanics of Kanban Systems. I believe that this is because it is the mechanics that are the differentiating factors, and thus generally the most interesting to discuss. However, we should not forget the human factors, as they are inherently part of the Lean Thinking from which Kanban directly descends. This post is an attempt to try and redress the balance by showing how the five primary practices should enable the right behaviours.

A Kanban System should respect people by allowing them to take ownership of process decisions. Mapping the value stream sets up a team where everyone who is involved in creating value is recognised and respected equally for their role. Visualising the value stream enables a team to decide for themselves how best they want to manage the work. Setting work in progress limits gives the team a mechanism to manage their work/life balance effectively and avoid having more work pushed onto them than they have capacity to deliver. Establishing a cadence gives the team a way to create a rhythm which is natural and works well for them. Reducing the kanban tokens guides the team in creating their own process in order to allow the work flow. All these practices are about the people on the team having discussions and making decisions which work for them. They are not about the team having decisions made for them by managers.

By allowing the team to take ownership of all the process decisions described above, a Kanban System automatically empowers them to self organise and continuously improve all the elements of the process. The primary mechanism for enabling this self organisation and continuous improvement is making the work visible. The whole value stream is visualised so that the whole team can see where the problems are and where the improvements are needed. Limiting work in progress makes the bottlenecks or constraints even more visible, and will ultimately shut down the system so that the team has to self-organise fix the problems. The team’s cadence provides a regular rhythm to reflect on the whole system, alongside the spontaneous quality circles and kaizen events triggered by the visualisation and limits. Self organisation and continuous improvement are therefore crucial if the team are to successfully refine the process such that they can reduce the number of kanban tokens and allow the work to flow more freely.

A Kanban System is more than just a basic tool to be used to manage the work. It is a way of working which frees people to think for themselves in the pursuit of achieving success through improved productivity and quality.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)