I see a lot of developers using earphones and listening to music while doing their stuff. As someone that prefers relative quiet I have always wondered if this makes them more, or less productive.
This article would tend to indicate the latter but of course there is a big difference (generally) between music and noise.
I find it is a tradeoff. For the deepest thought, I feel I'm best in a quiet environment. However, if I've got to have sound, then music I'm very familiar with is better than something more random.
For instance, from my office I can hear the tech support people. If I'm trying to solve a hard problem, and I can hear some support person trying to explain for the 10th time to a customer that if the customer schedules our software to run overnight, the customer has to leave the computer on overnight for this to work, I'm probably not going to be able to think effectively about my problem.
If I then put on the headphones, open Spotify, pick a playlist that I've listened to a hundred times, and turn the volume up enough to mask the support person, then I can pretty much ignore the music and concentrate on my problem--maybe not quite as hard as if I had quiet, but enough to feel useful and not get frustrated.
I once had to do software development in an open plan office with sales, business manager and someone from a different company in it.
Never again (it's actually a large part of why I have my own company), I actually threatened to quit unless I could work somewhere quiet (hell I'd have worked in one of the storage units as long as it was quiet).
I'm 2-3x as efficient in a quiet office where I can listen to music when I want to and have silence when I don't than I am in a noisy one.
For me personally, I only listen to music when doing menial tasks. But if I'm writing code or trying to design my plan of attack, music noticeably hampers my ability to focus and think creatively.
When I want quiet, I try to just use my over-ear headphones without any music. They typically dull surrounding sounds enough for it to be tolerable. But if I'm still having trouble, I use my less comfortable earmuffs[1] to block out almost everything.
As others have said, I think most developers would take a nice, quiet office. Given the horrible open plan office I currently work in, you need some way to drown out other people "collaborating", so headphones it is. Sometimes I just wear the headphones, without any music ;-).
I only do this when there's no other choice: I work in an open air office that the startups du jour are so proud of, so I'd rather listen to a coherent stream than dissonant chatter.
I find music too distracting, so I use ambient rain or wave noises - nothing with too much sonic contrast, no details to stand out and draw my attention.
The "focus at will" app is pretty good for minimally distracting music though.
I found noise generators to be very helpful when I was studying or reading in places prone to distracting noise. I did find that either the noise or the presence of the headphones started to get annoying after an hour or two
I find music or even some banal sports talk (almost functioning as noise) to be helpful in allowing me to accomplish tasks that require some thought, but nothing deep. Anything requiring deeper thought, I need quiet.
A trick I use to really get in the zone is to blast a good song on repeat. I suspect the reason this works is that the repeating song blends with itself. You don't have the distinct transitions every 3-4 minutes, making it easy to lose track of time.
I wonder if the type of music factors into that at all. Ambient background noise I'd assume is a bit different from listening to death metal. I know programmers from both camps.
This article would tend to indicate the latter but of course there is a big difference (generally) between music and noise.