I haven’t given context switching much thought until now.
Context to me is a collection of deliverables, of people to interact with and whom depend on you, of problems to solve, and of technical knowledge.
A lot of people can think of a time when they’ve been engrossed in a problem that they can’t solve, only to come up with the solution when they’re doing something that isn’t requiring any attention like taking a walk, showering, or trying to fall asleep. If I have a lot of different kinds of problems to solve, I can’t find myself in a position where I relax enough to let my mind wonder to find solutions outside of the box. Rather, I find myself trying to prioritise the contexts instead, and doing it much worse than if I was paying attention while doing it.
It’s of course not a shocker that your work will suffer from context switching. I have no problem in believing Gerald Weinberg, quoted by Jeff Atwood in a blog post called The Multi-tasking myth, stating that you’ll lose 20% of your time to context switching by simply adding a new project to your workload.
In a professional environment, you’re really likely to be forced to context switch, it’s just the way it is and I don’t think that it’s reasonable to try to avoid it completely. However, I think that it’s really important to try to decrease the number of contexts to a minimum, and to work as long as possible in each context without switching. It’s also helps everyone, especially including myself, to let the stakeholders in each project know when they’ve got my attention and when they don’t, so that I’ll feel less pressured when I’m working on something else.