Interruptions can severely degrade your performance. The type of work you are doing impacts the cost greatly. I have spent some of my time programming web applications. When I am doing that interruptions are huge drain on my performance (for me the costs of interruptions while programming are far higher than any other type of work I have done – many times higher). If the interruption disrupts my flow (an interruption needn’t necessarily disrupt it I found, instant messages may not, while speaking to someone else almost surely would – it is a factor of how much of your brain much shift focus I imagine) it can take a huge amount of time to get back into a high performing state. Other work I do can be interrupted with much less impact. I am easily able to slip back into what I was doing.
For me the main cost of interruptions is the time it takes to get back to where I was before the interruption. And the cost is related to how much focus is needed to address what you are working on. Most programming takes a huge amount of focus.
Another big cost of interruptions is the increased risk of mistakes. When people are distracted and then have to go back to a task, and then are distracted, and then go back and… it is more likely they will miss a step or miss noticing some issue than if they can work without distraction. One tool to help cope for distractions that can’t be designed out are checklists.
Paul Graham addressed the importance of managing the system to provide uninterrupted time very well in, Maker’s Schedule, Manager’s Schedule
Most powerful people are on the manager’s schedule. It’s the schedule of command. But there’s another way of using time that’s common among people who make things, like programmers and writers. They generally prefer to use time in units of half a day at least. You can’t write or program well in units of an hour. That’s barely enough time to get started.
Paul Graham’s article also shows why managers so often fail to adequately address this issue. Manager, by and large, work in an environment where interruptions are the work. I know, much of my time as a program manager is driven by interruptions and is doable even with many interruption every day.
When managing you need to understand how big a cost interruptions have and design systems appropriate to optimize system performance for all parts of the system. The design of the system needs to take into account the costs and benefits of interruptions for those people working on various processes in the system.
Related: Understanding How to Manage Geeks – Explaining Managers to Programmers – What Motivates Programmers? – Joy in Work – Software Development – Programmers Cartoon – Checklists in Software Development