May 182017

My mother is going to laugh a lot at the fact that I’m writing this post, even if she’ll never admit it to me.  The idea that her son — who always used to get home late, sometimes knocking over the pots and pans that his father had set up against the door to announce his late arrival — is writing about time is a bit ironic.

But here we go. My good friend and excellent Agile Team Guide David A. Koontz (really, he’s an artist with teams; you should try to hire him) wrote an excellent article about Lead Time vs. Cycle Time, and the difference between how long we take to do a job vs. how long the customer waits for the results.

I’ve been working with Lean Kanban Inc. since last year, and I appreciate the sharp point they’ve put on terms around this issue. Here they are in a picture:

1. Customer Lead Time

The time from when we accept the customer’s request until deliver that request to the customer.

That’s it. Plain and simple. This is all the customer cares about!  The item could be “done” 5 minutes after the order is taken, but if it sits in a warehouse for a month before the customer gets it, the customer is still gonna be peeved.  Or as in David’s example, the item could sit around for a month and only take a few minutes to actually deliver. Either way the result is the same.

2. System Lead Time

The time from when we accept the customer’s request until the request reaches the first unbounded queue in the system.

This is a metric we care about when it comes to measuring and improving systems. Notice the Work In Process (WIP) limits in the picture above.  That last state, “Done” has no WIP limit. It’s potentially infinite. Even though we serviced the customer’s request at the end of Process C, it could sit around in a queue forever.

The reason we measure this only up to the point of the infinite queue is because we can only design and control systems that have WIP limits in them. Sometimes we can’t control what happens in that “Done” queue, so we can only work to improve everything up until that point. (At first. Once we get that under control, it’s time to have some conversations with the people in “Done.”)

This is why it’s important to have WIP limits on all work queues and buffers: if you don’t, then you don’t really have a pull system, and your ability to predict delivery is shot.

The actual LKI term for this metric is “Kanban System Lead Time.”  But if the first unbounded queue in your system is the Request buffer, guess what — you don’t have a kanban system. This, right here, is the most common pain I see when I’m asked to help with Agile delivery: a great Scrum engine with tightly-controlled WIP (from Sprint Planning), and a whole chain of unbounded queues upstream of it.

PRO TIP: your biggest predictability problem in this case is NOT your development process. :)

3. Time In Process (TIP)

The time that a particular request spends in a given process state.

This is what David called “cycle time,” and it’s a pretty common usage of the term. I prefer Time In Process because it’s clearer. “Lead Time” and “Cycle Time” can get confusing, so we just throw one term out. Yep, we don’t actually ever say “Cycle Time.” (Well, I try not to — old habits die hard.)

What about the time from Process A to Process C?  Easy, that’s just “the Time In Process for Process A, B, and C.” In our example above, TIP (Requests+A+B+C) for an item is the same as the System Lead Time for the item.

We use this in systems design to get a more fine-grained view of the system than System Lead Time.  And we use it day-to-day to meet our Service Level Expectations.  Do we expect most requests to spend 7 days TIP in Process B? Is this request here currently 6 days TIP? Then maybe we better get a move on and get it out of here — or think about renegotiating the customer request.

4. Working Time

Time spent on actually increasing the value of the item. Also called Touch Time.

In David’s example, this was also what he called “Cycle Time;” the time spent installing the basketball hoop. Often, the Working Time represents only a small fraction of the total Lead Time for the item. Which brings us to…

5. Waiting Time

Time where the item is not being actively worked on.

This is often a large portion of the total Lead Time (System, or Customer) for an item. This is where high WIP limits (or no WIP limits!) kills us. This is where multitasking kills us.  So much of the customer’s total wait time is just the request sitting around, or being shuttled back and forth from one person to another.  Which brings up…

6. Flow Efficiency

The ratio between total Working Time and total Waiting Time, expressed as a percentage of System Lead Time.

And here’s the second most common pain I see when asked to help with Agile delivery: poor flow efficiency.  In the example above, we take the customer’s order, and then it sits for a bit.  Then we start Process A and finish quickly… but it sits for a bit until it gets to Process B. Same thing happens with Process B. Process C is better; mostly we work on the request, with one brief interruption.

For systems with lousy flow efficiency, changing the system to reduce waiting times is going to be a huge bang for the buck — much more than improving the actual working processes. You’ll get faster delivery, and more focused, happier people who aren’t task-switching all the time.

One Last Distinction

In my recent AgileIndy talk, I made a call for 21st-century management to raise the game: we need to get better at managing systems, and leading people.

We sometimes use the terms above to refer to an individual request. “What’s the Time-in-Development for this FooBar Story? Is that going to affect our SLE?”  That’s valid. That’s the kind of question you’d hope to hear within the team, not from a manager.

If we are managing the systems, we use the terms I’ve outlined here to refer to requests in the aggregate — which really means referring to the system as a whole. “How can we get the System Lead Time down by 30% for all standard requests?” That’s also valid. And that’s the kind of question I really like to hear from management. 

Let the workers self-manage the work. Manage the systems. Lead the people.