The previous two blogs (3 things that matter when embarking on an Agile transformation and five stages to organizational agility), listed Predictability as an important initial step on the journey to Agile at Scale, where, predictability implies the ability to accurately answer, “When will it be done?”
Smooth flow — the effective, efficient, and sustainable paced delivery of customer value — and predictability go hand-in-hand; you cannot have one without the other. Uneven flow is usually discerned, on your cumulative flow diagram, by large buildups of work somewhere in the process.
Impediments are a major cause of uneven flow and lack of predictability; however, there are a number of other contributing factors. A partial list would include some of the usual suspects:
- Backflows (defects and rework)
- Starts and stops (do-wait cycles — delays between steps, task switching, people being pulled in multiple directions to work on different efforts)
- Large work items and large batches
- Work-in-process being canceled and being taken off the Kanban or Scrum board
- Organizational silos and a lack of communication, cooperation, coordination, and collaboration across departmental boundaries
- Lack of swarming within the “team” to complete work quickly
- Scope of work being changed once it has been committed to (often by adding scope or acceptance criteria)
- Dependency on external vendors or teams
- Hesitancy in roadblock removal
- Overtime (initial increase in rate of work completion followed by a decrease due to burnout)
- Mismatch between available skills and the task complexity
- Variability inherent in the work itself
To the above, you could also add a couple of other non-readily visible causes:
- Expediting some items to the detriment of other items — e.g., items in an expedite lane being given preferential treatment, thereby, slowing down all the other work in-process items
- Non-FIFO implementations (where teams cherry-pick items from their process queues to work on) prioritize some items over others. This results in the non-preferred items taking longer to complete than they would have otherwise, i.e., cycle times for preferred items have been artificially reduced at the expense of the other items.
And, of course, the biggest culprit of all:
- Mismatched input and output rates that cause work-in-process (WIP) to constantly increase and Cycle Times to lengthen. Ideally, your CFD should have parallel and narrowly spaced, arrival and departure lines.
While one of the main tenants of Lean is waste removal, sustained waste removal is not possible without the ability to first see the waste. Similarly, improving flow is difficult without first being able to see what is impeding flow.
To start your journey to becoming more predictable, do the following:
1. Visualize the work flow
Understand the scope of your system and the activities that help convert the inputs into the desired outputs:
- Create a flow diagram
- Identify the boundaries of the system (the input/entry and the output/exit stages) you are concerned with improving
- Identify the steps and each step’s input, output produced, and policies (conditions of doneness)
- Identify the Definition of Ready, Definition of Done, cadences, and event triggers
2. Capture data
Agree on what flow and predictability related metrics make sense in your context and then determine what data to capture and where to get that data from. Understand where things currently stand by getting baseline numbers for these chosen metrics.
3. Implement tactics to limit causal factors
Brainstorm, discuss, agree, and implement tactics to limit causal factors to unpredictability and irregular flow:
- Mismatched rates of incoming work and completion of work
- Instability of teams (their composition and number)
- Lack of clarity of requirements and when to implement them
- Scope creep for in-process work
- Starts and stops
- Delays due to waiting (for work to be done)
- Work being canceled while in-process
- Arbitrary aging due to blocks, excess WIP, and poor pull (including non-FIFO and expedite)
- Overtime to compensate for excess WIP and mandated artificial deadlines
An output of this step should be a list of explicit process policies that address the above mentioned. Additionally, an agreement on how the whole team will handle defects, rework, and canceled work on their Scrum or Kanban board will go a long way in reducing confusion and waste.
4. Get to a stable, WIP-limited, pull-based, system
Get to a point where your Cumulative Flow Diagram indicates smooth flow via parallel and narrowly spaced, arrival and departure lines. You do this by tackling the factors that inhibit flow and predictability (item 3 above).
Remember that some variation always exists (and always will) within your system and can be seen in your story completion time scatter plots. Your goal, therefore, should not be to drive out all the causes of variation completely, but to identify and understand the special-cause variations that make your process inherently unpredictable. You can then take actions to address these special causes.
5. Improve flow continuously (start reducing time to market)
Once you have a stable system, from Step 4 above, you are then ready to experiment to improve the process and to increase your ability to rapidly respond to change. A stable, well-running process is necessary even if you are in a lean startup environment where you are trying to figure out your market and making sure that you are building the products your customers want — a smooth and dependable process will give you the confidence to change direction quickly without worrying about delays. Predictability and Adaptability are not mutually exclusive – you can have one with the other.
While Step 2 provides an initial indication of where you are starting from, Step 4 provides a solid baseline for you to base your improvements on. Every improvement you now make should be to improve the baseline measures. For example, if you think that adding an Expedite swim lane is necessary to address emergencies you can track the change on approximate average cycle time and actual throughput to determine the efficacy of the intervention. Likewise, you can gauge the impact, on delivery, of introducing Classes of Service and treating them differently.
Hopefully, the above will help you in your agile transformation journey. Comments and further conversations welcome.