Not only is free software development unprecedented in its size and geographic spread–hundreds of people from countries around the world collaborating on individual projects–but it brings together people who are notorious for having trouble dealing with other people. That’s really impressive when you think about it.
Of course, the stereotype of the computer programmer with Aspergers Syndrome is overblown. I used the term in my title to attract attention, but I’ve worked with enough programmers to know that many warm and socially sophisticated people take up the job.
Let’s put it more gently: many programmers have the feeling their people skills haven’t kept up with their technical mastery. That’s why they are attracted to sites such as Perl hackers Michael Schwern’s geek2geek, whose motto is “What we have here is a failure to communicate.”
How does free software development work so well, then? People often remark that the Internet made the explosion of development in the mid-1990s possible, but they focus (wouldn’t you know it!) on the Internet’s technical functions: instantaneous transmission, exact replication of content, etc. Occasionally a general “nobody knows you’re a dog” comment gets thrown in too. But we have to consider the social behavior encouraged by the tools the geeks developed.
Look at the variety of ages, cultures, nationalities, and social backgrounds of people who work on major free software projects. Imagine working in a cubicle and dealing with twenty of those strangers a day, walking in to ask a question or propose a change. And then convening in a meeting room several times a day with a few dozen of them to plan the next project steps. Mr. Personality himself couldn’t cope.
The structure of mailing lists, bug-tracking systems, and wiki discussion forums tames the onslaught. They seem relatively unstructured, but they do give people some space to take in a whole context and gather their thoughts before they participate. They also set a context by providing a purpose to every post.
Context makes people feel safe. Context is what the sufferer from Aspergers Syndrome lacks when a person walks up at a party and says hi.
A very accommodating “be liberal in what you accept” philosophy is also encouraged by typical submission processes for code. Everything gets dumped into a pot (and sometimes even checked into a version control system) and tested later. That puts up a buffer between the free expression of each developer and the tough accept-or-reject decision.
Even the trait that draws the most criticism for these media–the lack of visual and emotional cues–can be an asset for people with people problems. If partipants are not great at projecting their own feelings or judging the feelings of others, it’s better to force everyone to make their opinions explicit. Yes, misunderstandings still arise. But what’s easier to parse and respond to: the tone of written text or the fleeting facial expression of a person in conversation?
Some of these traits carry over into the more interactive–but still text-based–medium of chat as well.
This leads to the interesting question: whither goes geek culture if developers adopt the richer and more immediate media experience provided by VoIP and virtual worlds? Will free software development become more like the cubicle-from-hell experience I described earlier? Will developers survive the move? Will they pull back and recognize the older and clunkier media have their advantages?