News that Verizon took one more step closer to an "open" network by embracing Android, Google's new software platform for mobile devices and handsets, caught my attention for a number of reasons. First of all, I noted the magnitude of a commitment from Verizon to a platform sponsored by one of its main rivals in the upcoming 700 MHz auction. Especially considering that the company's previous two announcements were being written off, in many circles, as thinly veiled competitive strikes at Google's position in the same auction.
Nonetheless, I thought it was interesting that Verizon even paid lip service to Android, which is still an unproven entity from a number of perspectives. By this I mean, despite the coverage, buzz and sponsorship by Google, Android's outlook will be determined (in my opinion) by how the nine (9) dynamics of open source success, listed below, factor into its growth curve. To most, these might be taken for granted as compulsory, yet their existence remains very much relevant within the context of each and every open source effort.
Standards, Objectives and Solution Evolution
As Roy Schestowitz astutely points out, standards and openness should go hand-in-hand. I might go on to add that while interoperability isn't a replacement for standards it is the next best thing when a standard is not available/widely adhered to. After all, there's something to be said for a CRM system that may not be "standards compliant" but still sports interoperability with various Salesforce.com modules. However, standards do help to reduce divergence across the parties involved, by highlighting what needs to be done. This counts heavily, as even the act of "solving a problem" can become vague as time wears on, whereas implementing a standard instills in-context awareness of exactly what is being done and why. Coherence in execution is the reason that while successful open source projects are often started for any number of reasons, as time passes there is one overriding characteristic: they all take the form of an evolving solution that aligns with a well defined set of objectives.
Modularity Driven Problem Decomposition
Open source has proven to effectively handle complexity by introducing a corresponding level of modularity to the equation. This facet of efficient open source development is particularly useful in that it promotes agility and flexibility of design and implementation. Complex software development can be done in parallel across a geographically distributed community flexibly and independently. The value of modularity can be introduced as reusable libraries, extensions or plug-ins.
Visibility into the Collaborative Process
Regardless of whether a community is governed by a commercial or non-commercial entity, visibility into the collaborative formula for a project is golden. Since software development is primarily a collaborative task so visibility with regards to the source code, application distribution, documentation, issue tracking and community support mechanisms serves as a window into the core of a project. Newcomers are able to ramp-up quickly, the community is granted agility in the even that participants leave and there is a running historical account of the aforementioned components of the software development process.
Even within open communities hierarchies are a fact of life. The principal difference between closed gardens and their open-centric cousins is that hierarchal "rank" is typically based on demonstrated contribution to the community. This tends to create more meritocracy-centric structures where:
- Individuals can build a reputation.
- Trust and status are governed in a communal manner.
- New members are better integrated into the overarching community.
I will conclude this list with the final five governing dynamics of open source in my next post tomorrow. Update: View the second part here.