Flow, Stuckness, and Interruptions

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.