Software developers are not technicians. Whereas technicians are employed to do practical work involving technical equipment, the development process is more akin to writing. Paul Graham was absolutely right when he pointed out that:
[...] Of all the different types of people I've known, hackers and painters are among the most alike.
What hackers and painters have in common is that they're both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things. They're not doing research per se, though if in the course of trying to make good things they discover some new technique, so much the better.
Making requires concentration, creativity and skills. In turn, those things require the right environment, talent and practice. All three can be cultivated.
As a CTO (and, in effect, product manager), part of my role is to protect the team I work with and ensure that they have the right environment to do their creative work. Depending on the startup, the resources and the context, how well this works is a mixed bag.
Most developers I know work with great big headphones on. This isn't an accident; think of all those scenes in The Social Network where someone can't be interrupted because they're "in the zone". It's a great big social signal that says, "I'm working". Completely understandable: regaining your concentration after an interruption can take a very long time.
More than a set of kick-ass headphones, though, a productive environment needs to be cultivated. Here, asynchronous communication becomes important - developers tend to prefer communicating by email because they can do it in a natural break, without replying right this second. Similarly, meetings need to be scheduled carefully. Non-developers sometimes have trouble with this, and perhaps see it as an anti-social trait. It's not: you've got to leave people alone to work. If you're looking for a frenetic pace and for something to always be going on, I'd hazard to say that a software company shouldn't be your first port of call.
(The flipside of this is that developers have to remember to send those emails and be communicative. Nobody likes a black hole in their team.)
I've been thinking a lot about this lately, and would love to hear your thoughts:
If you're a developer, what do you do to maintain your concentration?
If you're a CTO or a product manager, what do you do to help ensure that your team has the creative space to do their work?
If you're a non-technical manager, how do you prefer to interact with your technical teams?