Sometimes, despite your best efforts you get forced to stretch a developer across more than one project. Johanna Rothman posted on this recently arguing that many managers just don’t get the difficulties of asking their people to multi-task. Sometime, I don’t really get a choice.
I’m very familiar with the pains of context switching since as a manager it’s often a part of my world. My day continuously involves getting pulled in to help review a prototype for a developer or talk a system admin giving us read access to log files. Since my job is to make my people more effective I can’t complain too much when I get interrupted.
Still things come up. Business owners request certain resources they emotionally feel are the only safe choice for a high profile project. As a development manager part of your responsibility is to work with your customers. If they are so attached to this opinion that you are unable to sway them, you’re forced to give them the resource they ask for even if it’s just to appear at meetings and help a bit with the coding.
Long term the customer should be convinced that the other developer who’s doing the bulk of the coding is perfectly capable of handling their high profile projects. Still in the short term you’re forced to split one of your developers across contexts and damage their own productivity. I haven’t found a better way to handle it, and in many ways I doubt I ever will.