Project Management and Task Switching

At Eidenai we're working in the third milestone (M3) of a portal project for a major manufacturer. My methodology is to scope the milestone by reviewing both the planned features for M3 and the features we agreed to drop from earlier releases, identify priorities, identify available resources, break the work down into tasks, and the order the tasks according to priorities and dependencies. 

I sent the task list to our Senior PM with estimated durations, who thought the estimates were too tight. People who Project Manage full-time (e.g. PMPs) will pad tasks to allow for unplanned events. I don't like to pad, it doesn't seem like planning. I figure that if the environment is unpredictable, that's an issue and a problem to be solved. But he's right, while my estimates are accurate for each task, the total is low. A way to fix this occured to me today.

I never liked developing in open offices for the simple reason that when anyone is physically able to walk up to ask a question, they will. This is fine for some people (and expected of receptionists and the help desk), but for developers it kills productivity. Getting your thoughts back to the state they were in before an interruption takes time. On average, let's say we peg it at 20 minutes per interruption (which may be low). At that rate, every three "quick questions" kills an hour of productivity. If this happens twice or more in any given hour, that's less than 20 minutes of productive time per hour. This is why companies like Microsoft provide everyone with an office a door that closes. In software development, doors increase productivity.

Task switching takes at least twice the time of an interruption. After finishing something, there's a period of "getting away from it" (after work, how long does it take you to get out of "work mode"?), and when starting something a period of "getting into it." Let's see what happens when we account for this. Let's say Jason has two tasks to finish this afternoon, each will take two hours, and he will start at 1:00. I have one task that will take 4 hours to complete. Assuming the estimates are dead-on, who finishes first? I will, every time, and the difference will be about one hour. The difference is task-switching.

Bridging tasks across days has the same effect -- a 4-hour task split over two days will take 5 hours. This is one reason (of several) why agile methodologies can lead to higher productivity. In agile teams, the question every morning is "what will we do today?" By nature tasks don't bridge days, and agile methods therefore avoid the cost of task-switching. This makes everyone on the team more productive.

For planning, the solution is to set expectations according to the duration of tasks, the number of tasks involved, and the cost of task-switching. This adds a new type of entry to the project schedule -- the Get-In / Get-Out time (or GIN/GO time, with hard Gs). Add GIN/GO time for complex tasks which require deep thought, and less for the simple pieces. As a standard I'd suggest 20 min for GIN and 10 min for GO, for a total of 30 min for a full Task Switch. At this rate, four one-hour tasks will take 5 hrs 50 min ( GIN, task, GO/GIN, task, GO/GIN, task, GO/GIN, task) while two two-hour tasks will take 4hrs 50min (GIN, task, GO/GIN, task).

This approach assumes that the tasks are refactored. What does that mean? 1) Tasks are broken down into units that don't need to be broken further, 2) closely-related tasks have already been merged into single tasks, 3) tasks longer than a day are either further divided, or include bridge time.

This is just a start and I expect these basic ideas will evolve and be extended as time goes on. Agree? Disagree? Do you have an improvement or think the numbers are off? Tried it out? I'd love to hear your feedback.

Published Wednesday, July 20, 2005 1:35 PM by erobillard

Comments

Wednesday, July 20, 2005 2:07 PM by Ryan

# re: Project Management and Task Switching

I totally agree -- but I think this is a very technical developer's perspective. Meaning that when dealing with humans, there are many reasons for variation, and this is one. Your mood or stress from something non-work related, lack of sleep, etc... are all factors that might affect you. That's why I like padding. Sure there are unknowns, but padding is a human factor. Maybe it would work to pad tasks GIN/GO style with a little more 'room' for other mental conditions.

Wednesday, July 20, 2005 3:25 PM by Bil Simser

# re: Project Management and Task Switching

I don't like padding but tend to break down the work into really small pieces. This takes a bit of work up front but you end up with a set of bite size units of work that, even with an interupption or two, will never extend past a half-day. Maybe there's something that will take two days overall but it's really 4-6 smaller tasks. I don't communicate the smaller tasks, just the overall goal of the story (assuming you're following an Agile practice).

This has the advantage of two things. First, I can manage the time much better and if I have to pair up or spend time designing or architecting, I know the boundary I have to work in and the end goal. More often than not, people put tasks down that they have to do (build GIN/GO system) but really don't understand the extend to which they need in order to build a solution. Second, I can show progress and velocity with this as long as I stick to it. It's like going onto a strict diet. If you stray from it and gobble down that bag of chips, it may only be 100 calories today but will cost you days of effort to make it up. There needs to be a good balance of understanding, design, and implementation and it's not something a lot of people can do (certainly junior developers are horrible at it).

I personally wouldn't get too over analyitical with the numbers on tasks and the fact that spreading something out over multiple days will add 20% to it. I believe as long as you have a clear goal and know the work ahead (doing some upfront analysis, even in Scrum we don't just dive in and start coding) it will work out in the end. With a Scrum type approach you do daily checks at your stand-up and after 3 days if the task still isn't done and you're burning a lot of cycles it might be an indicator to take it out of any critical path and re-assess just how big it really is.
Wednesday, July 20, 2005 5:18 PM by Eli Robillard

# re: Project Management and Task Switching

Ryan, that's true, though I'd consider those issues at the project level and not the task level. Let's say for every person and every month a project lasts, I expect a total of three days lost for health or personal reasons. Again, that would at least be a standard and I'm now not padding individual tasks. Would that be a good way to account for the interruptions you're thinking of?


Bil, I agree -- Agile methods tend to be free of the issue by nature. Each team member is accountable on a daily basis to promise and deliver, therefore the pieces are small enough that expectations will tend to be realistic and met. And predictable is good.

I suppose the hypothesis could be stated "In non-Agile shops that use MS-Project-style planning, Task Switching _dominates_ the controllable reasons for PMs to pad estimates," and the questions are a) is this valid? and b) does this work to simplify and/or standardise project planning?
Monday, July 25, 2005 5:03 PM by Ben Adams

# re: Project Management and Task Switching

I concur.
Friday, January 11, 2008 6:24 PM by Loosely Coupled Human Code Factory

# Human Task Switching is Horrible for ROI

Some people get it, some companies do, some other don't, and it really goes to show on the company's...

Leave a Comment

(required) 
(required) 
(optional)
(required)