Following the open source model for collaborative software development can cut costs while providing a basis to create other innovative networks to develop technology specific to your company. While few have tried to develop industry-specific or vertically oriented open-source solutions up to now, it could become the future of software development.
Open-source software (OSS) is a development process that requires collaboration between individuals and organizations that isn't necessarily driven by a traditional hierarchy of command and control. Simultaneously, IT departments are driven to be more efficient while creating innovative new solutions to meet their business needs. More and more companies are turning to external sources for ideas that drive innovation. A series of books by Henry Chesbrough has coined the term innovation networks to discuss R&D departments that treat their systems as open—meaning, how do you include your partners, customers and even competitors as part of an extended R&D team?
The question is, can OSS be used to establish innovation networks for IT departments? What steps are required to establish a successful software innovation network, and what are the resulting benefits for organizations?
The Drive for Collaboration
Determining the scope of collaboration is often the most challenging aspect of starting an open-source project. The key challenge is to understand the areas of technology that are a core business value of the organization. Based on previous experiences in the software industry, OSS tends to lead to two logical strategies for collaboration:
- Collaborating on the implementation of industry standards or protocols, and
- Establishing an industry platform to grow a market.
Collaborating on Open Standards
Globalization and government regulation have increased the importance of industry standards and protocols. There are many examples of consortiums that define standards and protocols for specific technologies or specific industries. However, the implementation of these standards is often left to ISVs or individual IT organizations.
Software vendors were expected to implement technology standards such as HTTP, XML, Java, etc., in their products, but the implementations provided very little differentiating features and customer value add. Open-source software provides an effective mechanism for creating a common implementation that drives the adoption of these standards; the Apache HTTP Web server is a great example of driving the
For more on collaborative software development, see Grady Booch's 10 Tips to Help Employees Collaborate.
A similar case can be made for IT organizations that need to implement specific industry standards and protocols. The actual implementation of these standards provides very little benefit to the core business of an organization. Today, IT organizations typically rely on ISVs or internal development groups to implement these standards and thus incur the costs of sourcing the implementation.
The drive for collaboration is propelled by the need for IT organizations to quickly and efficiently implement new regulations or standards for their business. Organizations within the same industry can join together as a software-innovation network to create a shared implementation of a standard. A common implementation would mean that the cost is shared and the common deployments would result in greater interoperability.
For more on corporate involvement in open-source applications, see The Enterprise Committer: When Your Employee Develops Open-Source Code on the Company Payroll.
Collaborating on a Common Platform
Creating a common industry platform can address the IT challenge of integrating solutions from different vendors and help accelerate the growth of a fragmented market.
A consistent requirement of IT organizations is the need to integrate solutions from different vendors. For instance, CRM systems often need to be integrated with e-mail systems; financial institutions need to integrate data feeds from many providers; and large-scale manufacturers, such as automotive or aerospace OEMs, have extensive supply chains that need to integrate across the product lifecycle. Typically, the integration is a cost of doing business, not a core value, so creating a common platform that is adopted by a number of industry players effectively streamlines the integration requirements.
Establishing a common platform in a fragmented market of providers can help grow the entire industry. In fragmented markets, significant investment is often duplicated across solution providers but provides no real customer value. In addition, a valuable market ecosystem cannot develop because the market share of each provider is not big enough to sustain investment on one particular platform. Therefore, if multiple players agree to collaborate on a common platform, it can reduce the barriers for increasing the size of the overall market.
Factors to Consider When Establishing a Software-Innovation Network
Open-source software development provides a proven model for creating shared implementations, however, the ultimate goal of a software innovation network is to increase business value. Therefore, we need to consider several aspects of OSS that allow for value creation and value capture when establishing a collaboration amongst equal partners.
Read CIO Editor-in-Chief's thoughts about Enterprise Innovation with Open Source
The success of OSS development in facilitating collaborative development is in an open-development process. Most major open-source communities, such as Apache, Eclipse andLinux, work on the following principles:
- Openness: being open to participation by any individual or organization, including competing organizations.
- Meritocracy: Openness does not mean democracy; in fact, successful open-source projects work on the principle of a meritocracy. Therefore, newcomers are invited to participate based on their proven merit and ability.
- Transparency: having important project discussions, plans and meeting minutes available in a transparent manner so anyone can view them.
Enabling a Governance Model for Collaboration
All successful long-term organizations require a set of rules that establish a governance model for setting policies and strategies. Governance becomes even more important if the organization is a collaboration among competitors. It is, therefore, critical that the governance model not allow a single player to control or influence the organization. The perception or reality that a single participant controls the overall community can inhibit the participation of others.
Intellectual-property management is a critical consideration when you are creating a shared technology base. Effective IP management includes the selection of an appropriate software license, legal agreements for participants that cover the contribution of IP, and scanning of source code to ensure pedigree and license compatibility.
For instance, the Eclipse Foundation has a well-established IP management system. All participants in the Eclipse community sign the same exact agreement and follow the same IP processes. All Eclipse open-source project committers sign a "committer agreement" that specifies that their contribution is licensed under the Eclipse Public License (EPL). All source code that is contributed to Eclipse projects is automatically scanned to ensure that all of the code is licensed under the EPL or a compatible open-source license. The result is that the technology created in the open-source projects has clear software license and IP pedigree.
Creating a Community
Tim O'Reilly coined the term architecture of participation to describe how open-source projects are able to build and engage a community. The idea is that an open-source community forms around the ability of an individual, regardless of his or her affiliation, to participate. An architecture of participation is created by:
- Making it easy to extend the technology, and
- Having an open development process that is transparent to all.
Participation then occurs when those individuals contribute directly back to the project or build new technology on top of the base technology. The end result is an ecosystem that adds the needed components for quick adoption of new technology.
The network effect of smaller communities within the larger communities has also proven very beneficial for starting new projects. A significant challenge for any new community is generating awareness and participation. Organizations such as Apache and Eclipse allow new projects to leverage the larger community to raise their profile with potential community members.
Establishing the IT Infrastructure
The IT infrastructure to host a community-oriented software-innovation network is nontrivial. Typically, open-source collaborations will require a website, source-code repository, bug-tracking database, wikis, mailing lists and newsgroups. Consideration needs to be given into the ongoing administration and management of the infrastructure.
Open Business Models
A goal of a software innovation network is to create an ecosystem of organizations, commercial and not-for-profit, that benefit from a common platform. These organizations will employ a variety of business models and strategies. Therefore, it is important to ensure that the choice of license and governance model allow for maximum flexibility.
Where Do We Go from Here?
Most IT organizations have reduced software-licensing costs by being users of OSS. The next step to additional IT efficiencies will be their participation in OSS projects. Open-source communities like Apache, Eclipse and Linux have demonstrated a model for collaborative software development that can be the basis for any software-innovation network. Visionary IT departments have already begun to leverage this model to collaborate on the development of technology specific to their domain. Over the next few years, open software-innovation networks could very well be the future of software development.
Ian Skerrett is the director of marketing at the Eclipse Foundation, a not-for-profit corporation supporting the Eclipse open-source community and commercial ecosystem. In this role, he is responsible for implementing programs that raise awareness of the Eclipse open source project and grow the overall Eclipse community.