Culture

Gartner: What open source teaches us about collaboration

What can the world learn from open source? A great deal. But specific to collaboration, here are a few things.

Gartner recently issued a useful research report entitled "What We Can Learn About Collaboration From Open-Source Communities." As the report starts off, "Successful open-source projects are characterized by a mix of high participation, engagement and motivation, along with low coordination costs." The report therefore combs through nine principles that lead to these properties and point to ways to extend these "open source" benefits beyond open source.

There are a range of interesting principles, including "Visible Current and Historic Work in Progress" and "Visible Individual Contribution History," but I particularly liked this one that deals with modularizing a problem:

"Divide and conquer" is an old but always relevant adage when it comes to dealing with complexity. Successful open-source design tends to be modular, so that work can proceed independently, often in parallel. This helps to accelerate development, minimize integration costs, and improve flexibility and the ability to evolve. Many successful open-source products, including Linux, the Apache Web server and the JBoss application server, feature a core kernel design, along with clearly defined hooks (integration points and application interfaces) for extensions or add-on modules. Others are implemented as reusable libraries.

Problem decomposition and modularity is an established principle in complex system design in general - not just in open-source development. However, the decentralized control, the critical peer review of early designs, and the option to re-implement any piece of code differently (demonstrating its technical superiority in a practical way) help to nudge open-source developers toward modular designs.

It's very difficult to collaborate en masse. Modularization makes ad hoc community involvement possible and fruitful. It's why successful open-source projects like JBoss, Mozilla, and SugarCRM get so much third-party involvement: because it's really easy to contribute add-ons/plug-ins.

I'd encourage you to read the full report. Very worthwhile whether you're in open source or not.