Face-to-face communication is the primary and most efficient way for humans to interact. Coming to a consensus in email with more than two people is a nightmare.
This is over-generalized. Most generalizations about the human race are based off of extroverted personalities, and not the introverted people that comprise the vast bulk of programmers.
This is now pure anecdotal, but the programmers I know prefer to communicate over email, if they're forced to communicate at all. Typically, because this allows them to take the time to get their point across perfectly before sending it.
Programmers have done amazing things while collaborating on massive projects across the planet using nothing but mailing lists and the occasional IRC chat. While this doesn't disprove they might not have communicated better if they were all in one big room together, I'd say it does shine some doubt.
Also, for what it's worth, I'm currently typing this from an open floor plan and I quite dislike it. I miss my quiet office.
I am an introvert but when trying to communicate something complicated that requires lots of roundtrips, I'll take a 15 minute face-to-face meeting over a day long email chain full of misunderstanding any day of the week. Any company where this is understood will move fast and kick ass.
I don't disagree with you. However, the problem arises when said company decides to stick everyone in a big room and says "go forth and collaborate." Before having my office moved into an open floor plan, we still had plenty of face-to-face conversations. Meetings, hallway talks, getting up and walking to another's office, and phone calls were still an option when email wasn't.
Taken as a whole, I think programmers realize that email is a tool like any other- it has its uses, and its times when it should not be used. I feel the same could be said for group settings- there are times it makes sense, and there are times when it doesn't. I'll never understand the tendency of corporations to say "This methodology is good in this particular set of variables, therefor we will use it 100% of the time for every situation."
the programmers I know prefer to communicate over email, if they're forced to communicate at all. Typically, because this allows them to take the time to get their point across perfectly before sending it.
What they often don't realize is that the recipients of their carefully crafted emails don't read them, or at best, skim them.
For one guy I work with, every email is a PhD thesis. They are WAAAAAYY too long-winded and nobody else even pretends to read them anymore.
I sort of dislike email discussion in many cases because I feel like I need to cover all points and consider all possible replies. Even for areas you know well, simply expressing your points understandably and concisely can take a lot of time and effort, and as you often don't really know exactly which points are important to the recipient, much of that effort might be wasted.
In a face-to-face discussion you can drill down and explore exactly those areas which need exploring... If it's a subject you know well enough to talk about without a lot of offline research, this is often way easier.
I've worked at a 100% remote company for the last 9 years - we generally prefer chat rooms.
Email, IM, chat have 1 big thing going for them: documentation. I can pull up the chat logs of every decision we've ever made in the company. Want to remember why we did something 8 years ago - is that a bug or a feature? We can find out if it is, and why.
On the other hand, putting it into an email gives a chance for people to digest and think about it offline, for the person who was travelling that day to be able to see it, for you to be able to forward it to the team who's working on the UI across the Atlantic from you.
Face to face communication definitely has it's place, but it can also lead to cliquish and insular behavior, and can lose out on some benefits of having a paper (well, electronic) trail.
And yet the world's highest quality, and most widely used pieces of software are developed between thousands of people on email lists everyday (Linux, FreeBSD, etc, etc).
Why then saying important things is much harder than writing a letter? And why it's easier to read hard things than keep up with the person that talks about them?