Time and attention are best spent in large blocks — large bills, if you will, not spare coins and small change. Yet what filters down to staff are just scraps of time in which they’re expected to do a wonderful, thorough job. No wonder people are working longer hours, late nights, and weekends. Where else can they find the uninterrupted time? I believe 40 hours a week is plenty to get great work done if you actually give people 40 hours a week to do it. Having them come in for 40 but giving them only 12 to themselves is like stealing 28 hours a week from someone. At Basecamp, we’ve made significant strides toward making sure 40 hours means 40 hours.
Context switching is a constant problem for programmers. Jason Fried does a nice job putting this problem in the perspective of the manager, who must best allocate their team towards the 40 hour work week.
This is a topic that has been talked about a lot, but this post by Joel Spolsky is still the best break-down:
The trick here is that when you manage programmers, specifically, task switches take a really, really, really long time. That’s because programming is the kind of task where you have to keep a lot of things in your head at once. The more things you remember at once, the more productive you are at programming. A programmer coding at full throttle is keeping zillions of things in their head at once: everything from names of variables, data structures, important APIs, the names of utility functions that they wrote and call a lot, even the name of the subdirectory where they store their source code. If you send that programmer to Crete for a three week vacation, they will forget it all. The human brain seems to move it out of short-term RAM and swaps it out onto a backup tape where it takes forever to retrieve.
Unblock your team without scheduling meetings, delegating managerial tasks to programmers or tapping someone working hard on the shoulder. Do it quietly. If you are good at it, nobody will notice you even cleared the path!