Agile Estimation and Planning
Part 6 – Multi-Tasking and WIP
How good are you at multi-tasking? Given the pace of information we are inundated with each day, you would think you’re very good at it. Think about something as simple as walking down the street while checking your phone, or reading a book while you watch television. How about driving a car while having an animated discussion with a person sitting beside you? All of these are examples often cited to prove that multitasking is possible.
Your brain would disagree with you. The human brain is only capable of active focus on one complex task at a time. It’s a bit like a computer. Each processor in the computer is only capable of doing one thing at a time. To give the illusion of allowing multitasking, the processor uses task-switching. The computer switches tasks very fast – many thousands of times per second. It pauses the execution of its current task, then saves the current state of the task into a buffer, then loads the context of another task from a buffer into active memory (reestablishing context), then it executes that task for a time. This process may be very fast, but it is not without cost. At the very least, there is a cost of clock cycles as the tasks are swapped – cycles lost while neither task can be monitored or advanced. That swapping time is wasted potential.
Some tasks are very dynamic, requiring constant attention and course-correction. Others are very mechanical and repetitious. Advancing a timer, running a fan, and illuminating a display are examples of tasks that don’t require higher processing. They can be relegated to autonomous, lower capability systems. Thus, even while the computer is calculating the precise time to pump the brakes in an emergency stop, the tire pressure monitor continues to check the pressure, and the fuel injection system continues to follow the last command it was sent.
Your brain is very similar. Higher order functions that demand complex thought will require dedicated attention. But even while your brain does this, you continue to breath, or continue to walk in a specific direction. This is especially true of familiar, repeated tasks. Many complex functions can be relegated to following a series of repeatable tasks. When you first learned to drive, it was exhausting. You were continually monitoring everything around you, including the act of applying pressure on the gas pedal and making micro-adjustments in steering. As you became a more skillful driver, it became possible to relegate some of those activities to automatic processing. Just because you open your mouth to talk to a passenger, doesn’t mean your foot will come off the gas pedal. But if your focus is too diverted to that passenger, you may not spot the obstacle appearing on the road in front of you. Often you will — the task switching is rapid, and the pattern matching process is fairly robust, so you may just catch the hint that something has suddenly changed and demands immediate attention. Your foot moves to the brake, your hands grip the wheel, and you brace yourself as you engage an emergency stop! Amazing, right? But you know what you didn’t do? You didn’t continue that conversation with the passenger. You couldn’t. The processor was busy averting catastrophe.
The same is true of the work we do every day. The hard work. The creative work. The things that need concentration. You are only capable of focusing on one thing at a time. Sure. You can multi-task. You can do a task-swap the same as the computer. But it takes time to do it. Time during which neither task is able to be actively addressed. The automated things keep going in the direction they were going, but the complicated stuff gets swapped out. You’ve probably heard that putting someone on two teams will cause a loss of 20% of their available time to task-switching. This is true at the story level It’s also true at the task level. 20% of your capability is lost every time you need to switch tasks.
Back to Lawncare
So if I were working alone, and trying to save time while mowing lawns by mowing and trimming at the same time. Do you think that would work? Both actions require active attention as the situation is ever-changing. Imagine trying to do that! Walking your mower along the stone-lined flower beds while you aim the trimmer at the stones that form the edge of the bed. (BTW, I actually tried to find an illustration of someone doing this. I figured that some Einstein out there would have photographed themselves operating multiple gardening tools simultaneously. You know how many I found? None. Zip. Zilch. — you know why? Because the likelihood of doing it … safely … is very very low. I tossed the safely in there because someone may have tried, but the pictures were probably pretty gruesome)
So my lawn-mowing business, as a one-man operation is doomed because of limited manual dexterity. I can’t do all (or really any) of the tasks at the same time. What if I multi-task the other way — via task switching?
Since I can’t actually perform multiple complex tasks at the same time, the only thing I could do is task-switch between them. Push the mower a few feet, then go back and trim the area I just mowed, then if necessary, blow the glass clippings off the walk, then push the mower again. Lather, rinse, repeat. Over and over. Does that sound efficient? Or effective? In case you think so, consider this one question: Should I stop the mower every time I pick up the trimmer? If not, I’m wasting gas. If so, I need to take time to restart it when I re-engage the mowing task. The cost of task switching is real.
We have a term for this concept of multi-tasking in the agile world. Any task that has begun is “Work in Process” a.k.a. WIP. When you are focused on a single task, it has 100% of your attention, and our assumption is that you’ll finish that task as quickly as possible because of that dedicated attention. If you have more than one task in progress at a given time, you will only be able to make progress by task-switching.
There are some Project Managers out there who think that if they assign 3 tasks to a single person, they will get executed like figure 6.1. Where one task flows instantaneously into the next.
Unfortunately, brain science tells us there is a cost in moving from one task to another. Conventional wisdom says it is approximately 20%, but some studies show the cost could be as high as 40% or even 50%. Figure 6.2 shows the more conservative 20% value. (Think about the impact this could have on your project schedule if you fail to take it into account).
I’ve seen some organizations that think they are addressing this by just allocating people at 80% to their projects. But as you’ll see, this may not be enough.
Since we’re talking about our lawn care tasks, we’ve identified three distinct tasks: Mowing, Trimming, Cleanup. To illustrate the impact of multitasking, let’s consider each of those three tasks getting divided between the front yard, and the back yard. Do all three tasks for the front of the house, then repeat them for the back. The second row in Figure 6.3 shows how much that 20% time penalty adds up for a single person trying to do all three things. The third row shows how ridiculous it gets with even more subdivision of work:
Note, that by multitasking, you will appear to make progress on all three tasks, but not as quickly as if you did them independently. Every time you switch between tasks, you lose a little productivity as your brain buffers one task and activates the other. Or in our mowing example, as you shut off the mower, walk back to the place you left the trimmer, adjust your safety goggles, then begin trimming until you catch up to the mower. Then go back and find the leaf-blower, swap its cord with the trimmer, and blow the sidewalk clear up until you reach the mower and trimmer. This is illustrated in Figure 6.3. The more you switch, the more time you lose.
The point here. Multitasking is very, very difficult – and the more complex the problem, the less likely you’ll be able to effectively task switch. The only way you could pull this off is if you had more than one brain. Hey! Wait a second…every member of your team has their own brain…
Which means multiple things can be accomplished by a team simply by dividing the work among the team members! Each member of the team can safely handle one complex task at a time with complete focus. And they can collectively perform those multiple tasks concurrently.
As you can see in Figure 6.4, by dividing the work between multiple people, you avoid inserting the multitasking penalty into your work. This is why Ed’s time estimates are so low. His team is bigger, and therefore use concurrent actions to eliminate waste on the job!
This also reinforces why time estimation leads to confusion across teams. Ed’s 15-minute estimate is actually 3 parallel tasks, each taking no more than 15 minutes. But in linear, one-person time, that should be 45 minutes.
How many times have you heard someone tell you they are assigning something to a single person because it’s more efficient? Hopefully this gives you a reason to question that assertion.