DEV Community

Steve Hallman
Steve Hallman

Posted on • Originally published at theagilecouch.com on

The Real Costs of Context-Switching

The Buggles: Video Killed the Radio Star (1981).

The first music video shown on MTV, 12:01 a.m., August 1, 1981.

This gif is my piece of ’80s humor for team members who appear on the kanban board as creating two items at the same time. I’ve never actually seen a developer who was simultaneously ambidextrous and therefore able to type on two different computers, producing two different items of valuable work. What the Transparency and visualization of work is actually telling us is that Jane is switching between two pieces of work.

This post was partly inspired by a recent Your Daily Scrum episode by Ryan Ripley and Todd Miller. (I highly recommend the show)

There is good research that shows multi-tasking actually lowers your IQ by 10 points or so. That’s cumulative. So if you’re working on three things, you’ve dropped your general IQ by more than one standard deviation. Probably not a recipe for quality work. Focus is one of the core Scrum values, and let’s always remember that the rugby term “Scrum” was intentionally chosen to invoke the image of a whole team, arms interlocked, moving one ball forward in the same direction at one time.

Gerald Weinberg’s data on context-switching gives us some estimates to do advanced napkin math. From his findings, individuals in software development teams, when assigned to two tasks, have about 40% productivity per task. Combine the two, and that person is working at 80% of their normal productivity. By assigning a person to 2 tasks instead of 1, we’re already losing 20% of our ability to context-switching.

By the time we’ve divided one person to 4 tasks (and they’ve dropped a few IQ points) we’re losing 60% of their productivity. What does that look like in terms of real dollars? Average developer wage in the US is $96K and change. If we wanted to get more specific, we’d take into account healthcare and other non-compensation benefit costs, plus the value-added percentage of development. Where I’ve plugged in $100K as developer cost, you could easily use $150K or $200K and still be realistic. With our over-burdened developer working on 4 tasks, we’re literally lighting $60,000.00 on fire.

“It’s not about the money. It’s about sending a message.”

(The message is “we’re causing our own problems”)

This cost is real. It’s concrete. And it’s multi-dimensional. The costs of context-switching show up in dollars, time, productivity, flow, clarity, focus, priority, visibility, transparency, simplicity, predictability, stability.

And human happiness. Both your team’s and your customer’s.

Edit: I just ran into a great example of the costs of context-switching, where the cost wasn’t even offset by valuable work. Just by having multiple projects live, I have to switch between them “to see what’s changed”. With lingering projects, often the answer is “nothing”. Which means probably an hour of my day is spent just bouncing between different project boards and looking for hints of change, so I don’t get caught flat-footed. This time is a dead-weight loss.

Quality Software Management: Systems Thinking: Gerald M. Weinberg: 9780932633729: Amazon.com: Books

Top comments (0)