Edd Dumbill points to a great article on programmer productivity. These are issues that any manager of programmers should familiarize themselves with if they really want to understand how programmers work. Experiencing Stuckness first-hand changed the way I think about multitasking and priorities. I used to think that switching back and forth between tasks was pointless because it would just mean that all tasks, except for the lowest priority one, would be done later than if I worked on them serially. For this reason I always wanted my managers to assign absolute priorities to the tasks they wanted me to do, so I would know what order in which to work on them. Then I realized that I was wasting lots of time banging my head against tasks on which I was stuck. These days I set a time limit, if I've been struggling with a problem for more than half an hour with no progress I switch to something else and come back to it later with a fresh perspective and, hopefully, new insight. So now I prefer it when managers give me multiple tasks with vague priorities, there's nothing more frustrating than having to work on a stuck problem.