[A picture of private offices at Fog Creek Software] Alert! This ancient trifle retrieved from the Joel on Software archive is well-past its expiration date. Proceed with care.

Joel on Software

2001/08/14

by Joel Spolsky
Tuesday, August 14, 2001

A study reported in the Journal of Experimental Psychology: Human Perception and Performance lends some credibility to my claim that software developers can't multitask.

This study seems to be more concerned with rapid switching between two tasks, which they show incurs overhead. But I've noticed that almost universally, developers who have two major projects to work on, even if they alternate every other day, will not get as much done as if they do them sequentially. One thing I've seen time and time again is an entire team that is having trouble getting started on a new project after they've finished an old one. It can take weeks to get up to full-bore productivity on a new task again. The overhead of task switching can be huge.

Typically you see individual developers overloaded with two or more projects because of severe time pressure and understaffing. Sometimes I'll come upon a software team that has a single developer "working" on three projects simultaneously.

"Task switching incurs overhead," I say. "Why don't you have Bob do these tasks one after the other, instead of switching off during the day?"

"Oh, we would never finish in time then. All three projects must be done within one month. Bob could never get them all done in one month if he did them one at a time."

This just proves that the schedule is completely unrealistic. Despite the fact that the multitasking dramatically reduces productivity, they're willing to do it because it obscures the schedule. It seems like each of those tasks takes about a month. Do them in sequence, and three months will elapse. Do them at the same time, and it's possible to deceive yourself that only a month will elapse. (In reality, six months will elapse and one task won't even get done.)

Firewalls...

More on firewalls: my latest idea is to buy an old Pentium 200 on ebay for $50, and use SmoothWall. Yeah, it's not as fun as buying $2500 worth of Sonicwall equipment, but it's sure going to be educational.


Have you been wondering about Distributed Version Control? It has been a huge productivity boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!

Want to know more?

You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.



About the author.

I’m Joel Spolsky, co-founder of Fog Creek Software, a New York company that proves that you can treat programmers well and still be highly profitable. Programmers get private offices, free lunch, and work 40 hours a week. Customers only pay for software if they’re delighted. We make Trello, insanely simple project management, FogBugz, an enlightened bug tracker designed to help great teams develop brilliant software, and Kiln, which simplifies source control. I’m also the co-founder and CEO of Stack Exchange. More about me.

© 2000-2014 Joel Spolsky