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 PostgreSQL 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.
Jay Lyman, an open-source analyst for The 451 Group notes the language differences in a global development circles, but adds, "There is also the issue of cultural differences, which must always be considered in such a community," he says.
Still, from where Berkus sits, asynchronous communication has one disadvantage: Conversations which require a lot of back-and-forth can take days instead of hours. "This causes open-source developers to either fall back on synchronous [methods]—chat, conferences—or to develop a workstyle in which they are constantly working on several tasks in parallel."
Control and Motivation Problems—and Solutions
Another challenge common to both open-source and outsourcing scenarios is control, Lyman says. Executives at open-source vendors have the challenge of motivating and steering individuals and groups that are not necessarily motivated primarily by money. "I think there is a similar challenge in a global outsourcing development community, wherein there is less or no direct contact with members of that community and control is more difficult. Open-source communities have also illustrated how too much control can breed discontentment or stifle innovation," says Lyman.
Stormy Peters, executive director of the GNOME Foundation, says that the lessons the outsourcing developer community could learn from open source apply to any virtual team—starting with the preferred toolset. Peters explains, "Open source software projects tend to rely on e-mail, mailing lists and IRC (Internet Relay Chat). This gives them a lot of advantages not available to teams that work primarily by meeting, phone calls and e-mail." By using mailing lists and IRC, says Peters, open-source software projects gain:
Transparency. All decisions and the discussions that led to them are public. Who gets what responsibility and why is also visible.
Meritocracy. Everyone knows who is doing what and how well they are doing.
Empowerment. Everyone has a voice. Anyone can join IRC or the mailing list.
History. The entire project history and status are available to anyone.
Fewer time zone issues. Since the history is in IRC and mailing lists, people can catch up and join in when they are awake, whenever and where ever that may be.
Language and culture issues. "I think e-mail is less of a language issue than voice can be," Peters says. "I also think the community is very understanding of people who are working hard to express themselves well in English, perhaps because many, many in the community are working in their second language."
Think your development team could use any of those attrbutes?
Peters concluded, "I think because people are so empowered, they are less likely to give up when they don't get an answer. They are motivated and feel empowered to find answers so getting silence for a day or two (on one channel) is a roadblock but not a dead end."
That alone should get outsourcing companies' attention. All too often, outsourced projects have abrupt starts and stops. Switching to an open-source style asynchronous communications approach may be just what's needed to get a project on time and on budget rather than floating around with a vague due date.
Don't Take The Analogy Too Far
Of course, an important fundamental difference between open-source developers and outsourced developers is motivation. As Dan Kusnetzky, well-known analyst and president of the Kusnetzky Group, says, "The open source community is driven by irritation. People get irritated over what a piece of code can and can't do and apply their efforts to fix things. Outsourced developers do exactly what they're told, the way they're told to do it, even if they know that the results will be less than optimal."
Adds Dave Neary, head of Neary Consulting, a free-software, strategic consulting services company, and a leading GNOME developer, "When we talk about 'community,' we mean it. I have my doubts whether a supplier/client relationship, coupled with the worker profile in outsourcing companies, is amenable to the kind of emotional implication which is normal in free-software communities."
"I would personally try to avoid the implication that outsourcing and free software project management have a lot in common," continued Neary. "I think many CIOs may see them as similar. It is, after all, an unseen gaggle of hackers solving problems while you sleep: The 'code gnomes,' as an American member of the GNOME community once referred to his European colleagues. But the management methodology is completely different. You care what other members of the community do, and rewarding them and recognizing their effort is fundamental to maximizing their participation. The more people feel like they are part of a family, the more they will contribute and become part of the family. When people feel that you depend on them and trust them, then they work harder to earn that trust."
That being the case, Neary has great difficulty in seeing any outsourcing company successfully create that kind of dynamic. He says, "It is much easier for me to see it happening in great companies, where employees are treated as an important part of a big family, and not as man-hours, interchangeable with Indian or Chinese PhDs who work for below-minimum wage."