Category Archives: Kanban Man!
Late last year I set up a kanban system for a Yahoo! India team. They had lots of little features and bug fixes to work on, but they didn’t know how to organize it all to get it done. Scrum wasn’t working well because the nature of the work was too dynamic.
Armed with blue painter’s tape (imported) and post-it’s (imported too) I worked with the lead developer & producer to set it up. I briefly discussed the principals that makes the system work: reduce WIP to increase throughput, use the post-it’s as a signal to begin work.
Time for team indoctrination. The lead engineer explained the system to the folks on the team.
- The producer/product manager will queue up ‘things to do’, limited to 5
- The developers will take the top items from the top of the queue
- When the developers are done, they will be placed in the ‘dev done’ slot
- Then the testers will pick up items from the ‘dev done’ slot and test them
- When the ‘thing to do’ is done to the tester’s and producer’s/product manger’s satisfaction, it’s ready to release.
I sat back and just watched it unfold. Every few weeks I would go by and I’d stop in to see how things were going. The system was just like a machine; it was systematically pushing features & bug fixes through the team in a very transparent way. The tech lead moved to another project and the kanban system kept working. A new product manager came in and the kanban system kept working.
Ron Popeil sells a Rotisserie & BBQ Oven with the tag line, ‘Just set it and forget it!’ My Aunt ordered the machine. The first thing that you see when you open the box is (I’m paraphrasing from memory) “WARNING! While the slogan may be ‘Just set it and forget it!’ it doesn’t mean you can leave the machine unattended at any time. As with any kitchen appliance involving high temperatures, you must take caution.”
This team, did not literally ‘set it and forget it’. But it was a system that worked very for them with few modifications. They were largely in maintenance mode and were tasked with fixing bugs, making performance improvements, fixing production issues and making incremental improvements.
A Minimal Marketable Feature (MMF) is a feature that is minimal, because if it was any smaller, it would not be marketable. A MMF is marketable, because when it is released as part of a product, people would use (or buy) the feature.
As a counter-example to the MMF approach: While working on an XP team, our team decomposed features into super-small stories. That way the customer (product manager) could pick-and choose from the sub-features to create the big feature. The team would present a list of each sub-feature like a grocery bill — each item has a cost. For example, the customer might decide that pagination (presenting a list of information on multiple pages) just isn’t worth it, because “hey, we only have 25 rows of data right now!”
An MMF is different than a typical User Story in Scrum or Extreme Programming. Where multiple User Stories might be coalesced to form a single marketable feature, MMFs are a little bit bigger. Often, there is a release after each MMF is complete.
An MMF doesn’t decompose down into smaller sub-feature, but it is big enough to launch on its own.
A MMF can be represented as a User Story — a short, one-sentence description.
The format of a user story is:
As a [some user],
I want [to do something],
so that [I can achieve some goal]
But in contrast to how a User Story is typically used, the team would not break down the User Story into smaller User Stories when using MMFs. Think of it this way: *Gather up all the stories that share the same so that clause — that’s your MMF*.
A team I’m working with has switched from Scrum to Kanban to manage their development efforts. As a result, the team doesn’t have regularly scheduled planning meetings to create a task-driven plan for the upcoming iteration time box.
So does Kanban development have no planning meetings? No! The team self-organizes meetings around a single feature rather than a specific period of time.
Arlo Belshee giving an overview of Naked Planning at Agile 2007
This video was taken at Agile Conference 2007 in Washington DC. I believe that Arlo was one of the first to lay-out the inspiration for Kanban systems for software development. Later, Aaron Sanders, Karl Scotland and I (Joe Arnold) paired these concepts with ideas from David Anderson to create Kanban systems for teams at Yahoo!. Jeff Patton later wrote an article distilling down the practices: Kanban Over Simplified