Did you ever think whether you should specify the task end date for your customers when you start working or you should rather wait until you are sure, what delivery date is? It’s easier to commit even to unrealistic dates than keep stakeholders uncertain. Even if we have to move the delivery date, it’s still psychologically safer than saying: “I don’t know.” If we perceive the workflow as a set of knowledge discovery steps, commiting on when we discover the whole knowledge about the process or product becomes irrelevant. Instead Kanban provides a feature we call 2-Phase Commit consisting of: commitment to do work and commitment to deliver. To understand it properly, we need to introduce a few concepts (1):
Upstream (Discovery) Kanban – the phase of the process, when we synthesize spread ideas (merge them into bigger concepts) received from customers and analyze the concepts (split them into smaller work items to be shared with the teams);
System Kanban – the phase of the process between work start and ready to accept by customer (it’s part of so called Downstream Kanban);
Customer Kanban – covers both Upstream and Downstream Kanban and beyond (until the item is ready to deliver).
(picture based on P. Steyaert, Essential Upstream Kanban) 2-phase Commit supports planning and communication to stakeholders on the work progress and delivery date. The first commit point in 2-Phase Commit feature relates to the moment, when we finished the initial discovery process and we commit that the item that crossed the line will be finalized, which is basically the moment when we start measuring System Lead Time. We should avoid aborting work after taking this step. Every time a work item is aborted after 1st commit point, it’s worth discussing it with the team, trying to understand the root cause sitting behind this decision. The work which was done on the item that is later discarded is a waste of time, effort and people’s engagement and each situation should be treated carefully and considered separately. The second point in time, which is commitment to delivery, is the moment when we decide and inform the customer about the actual delivery/release date. It happens usually close to the UAT or during UAT. Looking from the Customer Kanban perspective, the 2nd commitment would fall near to “ready to accept” moment. 2-Phases Commit is strongly supported by cycle time distribution and the results of historical data analysis, which we use at the “commitment to do work” stage to establish expected item cycle time, within which release date should fall. (1) P. Steyaert, “Essential Upstream Kanban”, 2017, p. 23-27 (2) for more information about 2-Phase commit see: http://www.agileadvice.com/2018/11/12/kanban/on-commitment-in-kanban/ https://www.digite.com/blog/kanban-continuous-delivery/ https://www.youtube.com/watch?v=nrsnlCGQEtQ (David Anderson’s Opening Keynote | Lean Kanban India 2017 Conference | 15th September 2017)