The Joel production line appears to be claiming that for every programmer can only work one way, that way being in private, with no distractions, and just churning away at a task.
It appears that Joel feels programmers has no artistic parts where inspiration might be needed, he also appears to believe that every programmer has zen like orders of concentration such that they can endlessly code without a single distraction.
Now it’s common that many programmers don’t like interuptions, but not all, I’ve met a few others, generally the best ones I’m working with - perhaps that’s because I reckonise their quality because I interact more with them, or because it is related to a mind that perserveres in an enviroment where most people are not like you are the better programmers - I don’t know. I could never work in a private office, I can work in a pub, or a cafe, or on the sofa with a TV for company and the distraction, but I cannot work in a private office, or a silent open-plan office.
What happens is there aren’t the distractions to trigger inspiration, or to slow down the thought so the code actually written is the code that is in the head. Of course even without noise, the refresh email, refresh usenet, visit bloglines, check the lurking on IRC channels can be used as a distraction - but even with those, I often have to turn to spider solitaire to give the brain a break to solve the particular problem. Of course it may be even more productive to go for a jog, or a walk on the beach, but those aren’t things you can do if you’re having to work in an office - all you can do is walk to the coffee or around the office - if the office is all private rooms you can’t even do that, as you’ll never meet anyone.
Don’t make the mistake of assuming what works for you, will work for everyone, people are very different creatures! One of the big problems I have in a closed enviroment is the length of time it takes to get to know people, can I call that bloke on the team a muppet when he mistakes, or do I have to tread on eggshells around him, can I throw out an idea without people thinking me stupid and not listening next time - everyone will always have stupid ideas, but if they don’t say them they might never say their good ones. I need to get to know the team, both them, and what they’re doing, and how they write code - are they someone who checks in regularly - so there’s no point reporting that bug to them, they’ll know about it just wanted it checked in - or are they someone who checks in only when they think it’s finished so the bug needs reporting.
Writing software, or creating websites is a team activity, if everyone’s in a seperate office where’s the team? Of course teams can work remotely, there’s no need everyone be in the same office - however they then do need an IRC channel or group chat where everyone can overhear the other conversations - and have off topic conversations, otherwise the social interaction never builds up, and you can never learn to trust the other people.