Jack codes quietly during the day. He is a seriously kick-ass programmer at work. Later during the evening, as the number of people in the cubical farm go down, Jack transforms into a musical rock-star dying to share his musical taste and collection to the whole wide world.
I cringe as I listen to the speakers of Jack's laptop buzzing away to glory.
"Headphones people. Use a freaking set of headphones." --- I think.
Then quietly, I grab my laptop and head in search of a quite conference room that will allow me to work.
Demarco and Lister in their legendary book, the Peopleware discuss issues associated with programming while listening to music:
During the 1960s, researchers at Cornell University conducted a series of tests on the effects of working with music. They polled a group of computer science students and divided the students into two groups, those who liked to have music in the background while they worked (studied) and those who did not. Then they put half of each group together in a silent room, and the other half of each group in a different room equipped with earphones and a musical selection.
Participants in both rooms were given a Fortran programming problem to work out from specification. To no one's surprise, participants in the two rooms performed about the same in speed and accuracy of programming. As any kid who does his arithmetic homework with the music on knows, the part of the brain required for arithmetic and related logic is unbothered by music—there's another brain center that listens to the music.
The Cornell experiment, however, contained a hidden wild card. The specification required that an output data stream be formed through a series of manipulations on numbers in the input data stream. For example, participants had to shift each number two digits to the left and then divide by one hundred and so on, perhaps completing a dozen operations in total.
Although the specification never said it, the net effect of all the operations was that each output number was necessarily equal to its input number. Some people realized this and others did not. Of those who figured it out, the overwhelming majority came from the quiet room.
Many of the everyday tasks performed by professional workers are done in the serial processing center of the left brain. Music will not interfere particularly with this work, since it's the brain's holistic right side that digests music.
But not all of the work is centered in the left brain. There is that occasional breakthrough that makes you say "Ahah!" and steers you toward an ingenious bypass
that may save months or years of work. The creative leap involves right-brain function. If the right brain, is busy listening to 1001 Strings on Muzak, the opportunity for a creative leap is lost. The creativity penalty exacted by the environment is insidious.
Since creativity is a sometime thing anyway, we often don't notice when there is less of it. People don't have a quota for creative thoughts. The effect of reduced creativity is cumulative over a long period. The organization is less effective, people grind out the work without a spark of excitement, and the best people leave.
The whole left-brain-right-brain argument has been a question of argument amongst neuroscientists for years and I don't know if there is such clear demarcation between left-brain and right-brain. Having said that, the fact that your brain is just not designed to multitask is rather well known.
Quite work environments are so important that I have often gone ahead and proposed a silence room for every office in planet earth. Silence and quite working environments are so important to most kick ass developers that Jeff Atwood has decided to make it a part of his Programmer Bill Of Rights. He explains:
Programming requires focused mental concentration. Programmers cannot work effectively in an interrupt-driven environment. Make sure your working environment protects your programmers' flow state, otherwise they'll waste most of their time bouncing back and forth between distractions.
True, music serves as a nice distraction from other conversations, noises and crazy distractions that you might come across in a typical cubical farm; but when picking between music or silence while programming I would pick silence any day.
You, dear reader, are free to pick music, if you are still not convinced, but if you do pick music over silence, do me a favor. Be a nice citizen of the developer community, think about being considerate to your fellow developers who may not share the same opinion as you. You are not a radio station and unless we tell you so, we are not interested in listening to songs you want to make us listen today.
Now, if you must listen to music as you code, grab a pair of head phones and use them. Do not make us listen to your collection of songs. Seriously.