Provide Regular Time to Focus
Software developers regularly report that interruptions such as meetings, demos, and urgent bug fixes keep them from completing their work. Typically, a person takes about 20 minutes to regain the train of thought after one of these interruptions. A five-minute question actually costs 25 minutes and a quick 10-minute meeting actually costs 30 minutes of potential work.
To help address this issue, set aside two hours a day (i.e. between 10 and noon) when no meeting, questions, email, phones and other distractions are permitted, to allow developers to concentrate and focus on their work. It is also equally important that every developer knows what their (top two) priorities are. Even the best intentioned developers could only randomly guess what would bring value, if they are not told what will actually bring real business value to the project.
Informania (debilitating state of information overload) is widely recognized as a major opponent to developer's productivity. Programming requires that developers keep many things in their head at once, everything from variables, class structures, APIs, utility methods, and even directory hierarchies. When a developer is interrupted, much of this information is "swapped" out and requires considerable mental energy to regain.
Developers' productivity can degrade by over 50% for each additional simultaneous project. Developers working on three or more projects often spend more time attending meetings, explaining why they are not making any progress, than getting any actual work done. When developers must contribute to multiple projects, ensure that they are guaranteed at least two full days on each project before switching to another. This will minimize the amount of time they much spend re-introducing themselves to each project.
Quality Software Management: Systems Thinking by Gerald M. Weinberg Crystal Clear by Alistair Cockburn