Thursday, 19 June 2008

Effective Open Source Sponsorship

Many government agencies are extending Open Source Software to solve their business problems. Open Source offers many advantages, including free licensing and engagement of an international pool of developers, but it does require appropriate investment and management to capitalise on Open Source’s offerings effectively.

After deciding to extend Open Source Software, agencies are faced with a relatively new business model, open source sponsorship. Agencies need to align purchasing policies, based upon deliverables and milestones, with Open Source community development.

Under a proprietary business model, a company builds and markets a product. Multiple customer sales cover the cost of development, supporting infrastructure, marketing, support, future enhancements and hopefully include a profit. While Open Source business models incur the same costs as the proprietary models they generally distribute the costs to the end users differently, charging for the implementation of specific functional or usability improvements.

Initial investment in communities, infrastructure, and marketing for an Open Source project is often the most effective way to ensure a long term return on investment as these areas are commonly neglected in favour of feature enhancements. Proper promotion and infrastructure support, instead of a sole focus on missing features, will encourage project growth and ultimately lead to open source Nirvana: hundreds of developers building your application using someone else’s budget.

Management should justify investment in a project as Opportunity Management.

Opportunity Management is the inverse of Risk Management. With risk management you quantify what can go wrong then identify mitigation strategies to avoid or reduce the impact of the risks. With opportunity management you list potential windfalls and deploy strategies to enable and benefit from the windfalls. Table 1 shows an example opportunity management matrix.

Table 1: Opportunity Management

Opportunity

Enabler

Use data from external agencies.

Agencies are given access to open source tools to reduce their barrier to sharing data.

Use Open Standards for tools to facilitate communication.

Use Open Standards for data schemas so data can be integrated.

External Agencies extend our toolset.

Use and share our tools as Open Source Software so that others can use and extend them.

Support the Open Source development processes to reduce the barrier of entry to potential development sponsors.

Keys to Success in Open Source

There are a number of key elements that a potential sponsor should consider when evaluating an open source project in order to ensure maximum return on investment. These include:

  • Solves a specific need effectively.

  • Has an active, diverse and inclusive community.

  • Enjoys support from multiple sponsors.

  • Established development processes including:

    • Issue tracking

    • Communication channels like email lists and IRC

    • Quality control

  • Clear and comprehensive documentation and marketing material.

The OpenLayers project is a good example of a commercial entity driving the creation of a thriving open source project. OpenLayers is an open source, browser based web-mapping client which provides a front end to various proprietary and open data sources like Google and Yahoo Maps, WMS and WFS. In three years OpenLayers has grown from nothing to be the dominant open web-mapping client, attracting the majority of the users and developers in this space.

OpenLayers was initially sponsored by MetaCarta who needed a browser based application to support their mapping services. Rather than focusing on features, MetaCarta focused much of their investment on infrastructure and community support. In particular their effort was spent answering developer and user questions on email and IRC, monitoring the quality of code contributions, and setting up automated testing. Many of MetaCartas engineers have developed a personal interest in OpenLayers which MetaCarta encourages by allowing the engineers to spend some work time on the project.

Today, OpenLayers has an incredibly active developer community requiring minimal support from MetaCarta and have provided functionality significantly greater than MetaCarta’s original scope. Key to the success of OpenLayers has been the long running, dedicated community support provided by Chris Schmidt from MetaCarta. GeoServer1, another Open Source project, has recently introduced a similar community liaison role, dedicated to community support and marketing.

The role of Community Liaison has always been key to Open Source and often is filled by volunteer enthusiasts, however commercial deployments of Open Source creates a workload volunteers can’t maintain and hence industry hires these volunteers instead. Ensuring that the community is supported in this fashion promotes the uptake of the project, increases the user base, which in turn attracts more sponsors and more developers. This leads to the situation where many developers are employed by a variety of sponsors to create new features and improve the performance and stability of the project.

Sponsorship Checklist

There are a number of tasks and roles that need to be addressed in order to ensure a successful open source project. These are described below.

  • Community Support

A person or team is required to answer user and developer questions, review submitted code from external developers to ensure quality control and ensure that all submissions meet the project requirements in terms of test coverage and documentation. This is one of the most effective investments in a project.

  • General Project Processes

All projects should invest in tools and processes such as automated build systems, issue trackers, concurrent versioning systems as well as ensuring that releases are performed smoothly and regularly.

  • Documentation

Good, current design and implementation documentation lowers the learning curve for developers supporting and extending software and greatly increases productivity. Good user documentation engenders confidence in project reviewers which in turn will lead to greater adoption.

  • Marketing

While Open Source benefits significantly from community generated promotion, it is enhanced by prudent investment in web pages and presentations for targeted conferences.

  • Commercial Support

One of the main reasons given for avoiding Open Source is not being able to call someone to fix problems. Offering commercial support for a project you use will go far in encouraging adoption by other organizations.

  • Integrate and bundle with related software

Microsoft Office has been especially successful because it integrates a suite of related products and bundles them all together in one easy install. Open Source products improve their attractiveness in the same way.

  • Open Standards

Due to the release-early/release-often approach of most open source projects, they are often leveraged to develop, test and extend open standards. This makes open source projects among the earliest adopters of emerging standards, encourages the uptake of open standards and makes the projects attractive to those interested in sharing data between agencies.

  • Project Management

Just like proprietary software, a sponsor’s software development should be managed using standard software development processes. This includes estimation; planning resources, work activities, schedules, budgets, deliverables; monitoring schedule, quality, risk, issues, contractors, configuration management.

  • Measurement

Measurement is a key tool used during proprietary Project Management, as good metrics enable good management decisions. Good measures highlight whether specific business goals are being met and enable management to alter their strategy early if issues arise.

Metrics are under-utilized in many open source projects as developers usually drive their own agendas, are self motivated, and spend less time on Project Management. However metrics based decision making can be equally effective for Open Source projects especially for sponsors who will need to answer to commercial milestones and targets.

Standard software development metrics should be complemented by measures to monitor the health of an Open Source community. The Community MapBuilder project tracks many of these metrics. There are now a number of dedicated tools which automate many of the common software metrics.

Should my organisation sponsor Open Source?

If your organisation is considering a long term use of an Open Source product, it will likely be smart to invest in the project’s infrastructure. Audit the project against the checklists above, cost the areas needing improvement, set up an opportunity register and determine whether prudent investment will be of value.

Hopefully supporting Open Source will prove to be an effective solution. Then you will discover one more thing,

Writing Open Source is very good for the soul.”

3 comments:

mentaer said...

Hei Cameron,

thanx for this post. I/We also try to analyze our project and thin about how to advance it. But What do you do if can not even start marketing and maintain documentation?

So the OpenLayers thing may be quite nice - but it is not comparable in general! We also give support as much as we can via User-mail lists and Forum, but this never gave as a boost as OpenLayers got, due to the difference of providing not a "hot" (web2.0) software. Also if you list all the efforts a project should do. If I just see the human resources needed for all points, than I would say you need at least 2 full-time working persons - or 6 half-time?. Where do get those from?

However, I thank you for your analysis as it may give me some more thoughts on how to improve my/our project management. [as actually did the evaluation of the OSGEO questionaeres]

Stefan

Cameron Shorter said...

Hi Stefan,
You are right to note that building an Open Source community is hard work and requires a lot of effort. I suggest you do a SWAT analysis of your project, and build an Opportunity Management matrix in order to determine where you would get your best return on investment.
Each project is different and has different opportunities. If your market doesn't have many developers floating around the fringes, then maybe your best investment is to put all your effort into improving your product rather than wooing developers.

Unfortunately I'm not offering an easy formula, but quite likely re-stating what you already have observed.

As background, my presentation has been motivated by a number of Australian and New Zealand government agencies wishing to determine how to most effectively sponsor Geonetwork.

davcar said...

I develop an Open Source project for a web-based Church Management System called BVCMS.com. This article was very helpful for us as we think about how to promote and support the project long term.

Telling churches how they can be effective sponsors of an Open Source project a big challenge for us. You have helped us think through this.