Out-sourcing development and open-source development may at first appear to be about as far apart as baseball and football. Both use a ball in a game, but that's about it. Yet a closer look from open-source software developers and industry analysts reveals that enterprises using outsourcing for their programming needs could stand to learn some management and process techniques from the open-source community.
For example, one important lesson that outsourcers can pick up from open-source development communities is "the open-source community's emphasis on asynchronous methods of communication -- e-mail, bug tracker, forum, VCS (version control systems) update -- over synchronous ones -- phone, chat, meeting," points out Josh Berkus, a Postgre SQL core team member and part of Sun's open-source database team. According to Berkus, the advantages of asynchronous development include:
- If you're sending e-mail, it doesn't matter what time zone the recipient is in. Synchronous methods often force people to take calls at 6am or 11pm, which decreases overall work efficiency and job satisfaction. Plus, many programmers work odd hours (at least by preference), so you can't even assume that people living in the same time zone will match up.
- Asynchronous methods contain their own audit trail. E-mail, bug trackers and such tools automatically generate a record of what happened; someone who's out of synch can catch up with a little reading. "This trackability also reduces repeat discussions, and managers know better what their staff are doing," says Berkus. In contrast, synchronous methods generally require extra effort (that is, time) to create a record; and because someone has to write the record, the task is often skipped.
- "Great programmers are often people whose ability to concentrate is high but whose multi-tasking skills are poor," Berkus points out. Synchronous methods require interruptions, which has been proven to decrease the overall effectiveness of your best programmers. Since these programmers do 60 to 90 percent of the work which ends up in the final product, he says, it pays to coddle them.
- Everyone hates meetings. Synchronous methods of communication are often very inefficient, says Berkus. "They require waiting until everyone is present, which can eat as much as half of meeting time," he says.
- E-mail and Web communication make it far easier for a non-English speaker to read or translate e-mail and Web text than to understand several English speakers chatting on the phone.