Saturday, 21 June 2008

Government purchasing encourages monopolies

Misapplication of “value for money” requirements when purchasing software results in poor value for money - Government purchasing policies for software tend to support the creation of monopolies.

Government purchasing has effects on the price paid by citizens for the product purchased. In some cases purchasing produces volume which permits scale discounts and therefore a net benefit to citizens who also purchase the product. However, in the case of lock in software Government purchasing can create a monopoly in the software which leads to increased costs for citizen purchasers and a net detriment for society as a whole. It is not appropriate for value for money policies to be assessed on a per acquisition basis when software is being acquired. Doing so will almost certainly create net costs for the community when considered in the aggregate.

Read the rest of Brendan Scott's article here: The Tragedy of the Anti-Commons.

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



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.”

Sunday, 1 June 2008

Accepting and embracing employee turn over

The value a good employee brings to a business eventually plateaus when the employee has less new ideas they can contribute. At that point, the employee will look for challenges of a new role or a new job.
As employees and employers we need to recognise and embrace this cycle so that we can maximise the potential benefits.
The following article saves me the need to explain this further: