A big cause of late delivery is right in front of your eyes.
Waiting time is a massive form of waste on any software project. Waiting time can be observed in at least two simple ways; queuing work and blocked work. These two forms of waste are highly visible – but only if you’re looking for them. By paying attention to waiting time, you can have a profound impact on the predictability of your team. To reap high rewards, you’ll need the right tools, the right approach and the right data. Check for queued or blocked work everyday.
A common metric associated with waiting time is called Flow Efficiency. Flow efficiency is the ratio between work time and wait time required to complete a piece of work. The work time is the time that actually creates value. The wait time is waste. If you measure your flow efficiency, don’t be shocked at what you find. Those who take care of flow efficiency are doing really well if they achieve 40% work time and 60% wait time!
Wait time is often encountered when work is queuing. Common examples of queuing work come in the form of the columns on your Kanban board such as Ready for Dev, Ready for Test, Ready for UAT, etc.
Another form of waiting time is blocked work. When using physical Kanban boards these blockers are easily visible with the use of neon pink blocker stickers. When using electronic tooling such as Jira, doing the same isn’t as straight forward or visible. Focusing on unblocking these blocked work items is critical to reducing waste.
Watch out for hidden queues. It’s not always obvious when a piece of work is queuing or actively work in progress. Take the following Jira board as an example:
The Ready for Dev, Ready for Test and Ready for PO Review columns are explicit queues. But there are two other hidden queues on this example. There could be a Ready for Code Review column to signal that work is ready to be picked up and reviewed by another developer.
Depending upon the definition of done, the last column on this board ‘done’ might have a hidden queue called PO Reviewing Done or Ready for Live. Adding more columns may provide you with clarity but it also runs the risk of increasing the overall work in progress across the board.
The big challenge with measuring flow efficiency is access to the data. At the time of writing, most of the tooling such as Jira, Mingle, VersionOne don’t make it easy to spot waiting time. Jira has an interesting feature (needs to be turned on) that indicates how long each card has been in a column.
Hovering over the red dots on a card displays the current waiting time for the card. In Jira this is the fastest and easiest way to check for waiting times. The next best method (in Jira) is to code your own report. You’ll need to hit the Jira API. This is pretty straight forward using a small Python script and it makes it easier to dump out all the waiting times across one or more Jira projects.
Monitoring waiting times is a daily task that is often overlooked but the impact of doing so is profound. Profound in terms of improving delivery predictability. Build the habit of daily checks to look at blocked work and queued work. What’s your flow efficiency?