Hatsav (Maritime squill) – By Dany Sternfeld on Flickr
The day has come for FLOWer to bloom (maybe we should call it “Hatzav” (maritime squeel) after the flower that brings the autumn here in israel… btw we are in the middle of october and it feels like July, can’t wait for the Vienna weather next week in Lean Kanban Central Europe 2012 – you’ve got your tickets already, right?)
A couple of months ago I’ve written about experiencing Kanban system design and if you’ve been waiting to see what I’m talking about, today AgileSparks is soft launching FLOWer. Well, at least an initial version of it focused on experiencing the effects of WIP on flow and ROI/Profit of the business. You are welcome to go try FLOWer now.
A couple of notes about the beta:
Starting the simulator and seeing it in action doesn’t require any registration. Just open it and kick the wheels. Tweaking the settings requires registration which is currently done by simply associating your google account. We are assuming most people have a google account. We only keep your emails so we can be in touch, we don’t do anything else with your data.
We are currently in beta mode which means we limit the amount of users registered to the system. Hurry up and register. First come first serve.
We are still figuring out the pricing model. You can leverage that and enjoy it free at the moment. And we will make sure we take good care of early adopters that help us shape up the product.
We are trying to make the simulator and the game self-explanatory. We’re probably not there yet, so please comment or leave feedback on the site itself with anything that wasn’t clear, didn’t work as you expected, or points you just felt stuck at.
The simulator will run on any modern HTML5 browser. Chrome, Firefox, Safari… iPad Chrome/Safari… But that also means IE is NOT SUPPORTED.
PS Participants of AgileSparks upcoming Kanban training (on 30-31/October) will also play FLOWer, including advanced scenarios that are “in the oven” at the moment…
So, what are you waiting for? Go ahead and play! (Sorry, we didn’t include a Boss Key… but maybe your boss would also like to see how intelligent context-specific and adaptive application of Stop Starting Start Finishing is a way to bring home more Benjamins!)
One of the concerns often raised when people hear about kanban is that the weakest/slowest link will slow down the whole chain.
For example if testing is a bottleneck what will happen is that the whole chain will accommodate its pace.
Similarly in scrum a team that actually does realistic planning will commit to a goal that stretches the bottleneck leaving other resources some serious slack.
In both approaches this is indeed a valid concern.
The worst thing that can happen is if the bottleneck causes the rest of the links to adjust their pace, and worse than that their “pace memory”. I’ve been thinking about this for a while and am also asked about this quite frequently whenever I introduce kanban to Managers with some experience…
In an old but wise article about the “Four Roles of Agile Management”David Anderson refers to it as “The team can forget how to run fast – when there is a bottleneck/drum”. I recently had a twitter chat with David on the subject. David sees this problem as an optimization problem for high maturity organizations. Based on the discussions I’m having, I think the optimization might indeed by a high maturity tweak, but even the concern about this happening is a roadblock to accepting the concept of Kanban Limited WIP or Scrum Whole Team Commitment.
I think we need to have a better answer for this question as part of the kanban “sales pitch”. At least I need it…
Basically, what we want to do is solve a conflict. On one hand we don’t want to create inventory and increase the gap between faster stations and the bottleneck as we know that creates slow feedback, lower quality, and we will have to close the gap at some point. On the other hand we don’t want to slow down the other stations as we know its both lost capacity, as well as can lead to lower capabilities over time if they “forget how to run fast”.
How can we solve the conflict? By looking at the assumption that the other stations always work on flows that must involve the bottleneck. Can we break this assumption? YES we can…
There might be work types that don’t need to go thru the bottleneck. Not all work is created equal. For example, if Server guys are the bottleneck, choose work that is not as Server-Heavy. If Testing is the bottleneck, choose work that is not Testing-heavy, or even items that can be tested without the involvement of the testing bottleneck.
Now the purists will say that the priority always needs to be the business priority. But now we’re pulling and prioritizing work based on our capabilities. Yes we are. Prioritizing purely based on the business priority will lead to lower business outcome overall. Our aim is throughput of business value. We achieve that through the right mix of Business Priority and right exploitation of our resources.
Having said that, if we see that we keep skipping priorities due to our capabilities, its time to go to the next step. Create a work item / class of service that serves to realign the business needs and the factory/machine capabilities. For example, in the world of testing this can be test automation done by developers in case testing is a bottleneck. If Server are the bottleneck, we can define a backlog of items that reduce the workload on Server (e.g. Refactoring and returning Technical Debt), or cross-train UI people to gain Server capabilities.
There are more ways to do this, but the bottom line is to always have items in the backlog that the non-bottlenecks can pull and run as fast as they can on. Preferably some of them are aimed at helping balance the line, driven by a process of ongoing improvement.
Since I started talking about this with Management, I see much more traction for the various ways to limit WIP, whether Scrum Sprint Commitment or the more explicit Kanban WIP Limit. I think the idea of “Too much slack” is currently a truth the mainstream is simply not ready for. Beyond that, I think its not fair to ask people/teams to solve this conflict on their own. Help them by discussing the various ways to address the problem, by helping them create backlogs of improvement ideas they should pull in those situations, and by setting the right classes of service / work types that create the alternative routes around the bottlenecks. I think this IS a management role in an agile environment.
PS None of this is really new. The innovation is in setting up the right classes of service and the right risk profiling to effectively manage the line. Elements like choosing items with low cost of delay so they can be used to “Fill Slack” and not pulled as part of the normal priorities. And risk profiling so we re-route or skip the bottleneck on the items where the risk of doing that is minimal. Add to that measuring local cycle times (e.g. with tools like LeanKitKanban ) so each Capability can focus on its own performance as well as the overall cycle time, and you get quite an elaborate system. Sounds advanced? It is. I intend to cover this in Advanced Kanban Workshops we will be starting to run, since we know have quite a community of Kanban Practitioners around Israel. Hopefully we can extend that community to the region soon.