The 'Open Source Maturity Model'

Peter GroenThe following is a description of the Open Source Maturity Model as defined by Open Health News (OHNews). It lays out the six major phases open source systems may go through during their systems life cycle – from the birth of an idea to a mature global solution.

Phase 1: From Concept to Rapid Development of an Initial Prototype

The conceptual stage begins with some ideas being kicked around by an individual or a small handful of people, who in this case are convinced that developing an open source solution may offer the best approach to collaborate and rapidly produce high quality, a low-cost shareable solution that may be of benefit to many others.

The following items characterize some of the major steps in this initial phase of the maturity model and systems development life cycle:

The developers generally have a somewhat limited view of functional requirements at this stage.

The developers try to rapidly define and construct a crude working initial prototype for demonstration and discussion purposes.

Based on the experience and results of the previous phase of the life cycle, a small group of committed developers generally decide it is worthwhile to move forward and further develop their concept and initial prototype. The following items tend to characterize the next steps taken during this next phase of the project:

The development team begins to further analyze and define functional and technical requirements for the proposed system.

Individual(s) involved with initial prototype often decide to make their efforts public and seek out others interested in collaborating on the project.

The developers begin to agree on some tools and methodologies that will enhance their ability to deliver a working prototype.

A rapid development of enhanced prototype proceeds.

The developers begin to further explore the various open source licensing options that are available.

Preliminary discussions also begin related to management and governance of the project and the emerging development community. If using an agile software development process, an initial prototype code may include some level of documentation.

During this stage of the lifecycle, the developers begin to set up a project page on an open source software development hosting site such as SourceForge or GitHub.

Some initial blog posts about the project may start to emerge as the project starts to be exposed to the larger collaborative, open source community.

About 80% of these remaining projects also tend to fail and never move beyond this prototype phase of the maturity model or systems life cycle.

Phase 3: From Enhanced Prototype to Pilot Testing

The enhanced prototype successfully produced during the previous phase of the open source development life cycle will tend to attract the attention of developers and users interested in developing a pilot system that can be tested in various settings. While more people may have signed on to the project, there are still generally only one or two primary contributors guiding the effort.

The following are some of the characteristics and activities associated with this next stage of the project:

The growing community of developers and users will further refine the functional and technical requirements of the proposed pilot system.

Development of the enhanced pilot system proceeds.

More people start to download and pilot test the system in various settings and provide feedback to the rest of the slowly growing development community.

A wiki, forum, mailing list, and other tools are added to the project web site to facilitate the development and testing of code.

Version control issues emerge and start to be addressed.

More blog posts and articles about the project get published.

There is still no formal documentation process, however, the initial versions of technical manuals and installation guides start to emerge.

Again, more than 50% of the projects do not proceed to the next phase of the maturity model or systems life cycle that will focus on the development of production version 1.0 of the system.

[If the decision is made to move on with the project, serious discussions concerning open source business model, licensing, risk assessment and mitigation strategies, and a path to sustainability now must take place.]

Phase 4: Production Version 1.0 and Early Adoption

If the system has proved its worth during the pilot testing stage, it tends to attract growing numbers of developers and potential users. As the next steps are taken to move the project forward and produce the first production version of the system, the following steps occur:

The number of developers and users in the growing 'open' community associated with the system will have continued to grow.

Based on feedback from users of the pilot system, additional functional and technical requirements will be identified for inclusion in the production version of the system.

Formal software development and testing processes are put in place and start to be enforced.

Key software tools needed to facilitate ongoing collaborative development, versioning, and distribution of system software are selected and deployed.

Development of the first version of the production system proceeds.

Documentation standards/methodology are chosen and published.

Wiki, forum, email commentary, and other community interactions continue to evolve and the number of topics and traffic steadily grow

Detailed system documentation, installation guides, user manuals, etc. are produced for release with the software.

As the software is finalized during this phase of the lifecycle, steps are taken to put in place a formal governance structure for the project.

Decisions are finalized concerning open source business model, licensing, community governance, and marketing strategies to generate a product market.

More people start to blog and write articles about the project/system that are then posted on a growing number of sites on the web or published by news organizations like Open Health News.

This phase of the systems development life cycle culminates in the release of version 1.0 of an open source licensed, the production version of the system. There is a high probability that over 50% of the systems development projects that reach this stage may continue on to the next phase of the maturity model.

Phase 5: Widespread Adoption & Commercialization of the Open Source System

If the production version of the software solution catches on, a tight community of devoted software developers and the growing community of users will redouble their efforts and start working together to develop subsequent versions of the system. These will include many additional features based upon the experience of the first wave of users who have deployed the system.

The following are some of the major characteristics associated with this phase of the maturity model and the associated systems development lifecycle:

The 'open' community associated with the project/system will have continued to grow and may now include hundreds of developers and system users.

A charter and formal management and governance structures are put in place

A roadmap for future development, features, and priorities for the system is developed and agreed upon by the community. It is updated at least annually.

More effective software development processes and tools needed to ensure continued growth and success of the project are identified and put in place.

The growth in the number of changes and enhancements submitted by developers and users requires the implementation of a management process to evaluate, prioritize, and approve product additions.

At this stage, the project tends to establish their own unique domain, web site, and wiki – moving off SourceForge.Net or whatever hosting site they had been using to date.

Regularly scheduled releases of automated builds are put in place. This is part of the iterative release management process.

Documentation continues to improve in quality, with the addition of training materials, slideshow presentations, FAQs, etc.

Companies within the 'open' community begin to execute various chosen business strategies and models best suited to their needs and ensure success.

Groups of developers coalesce and form small companies offering add-on software, implementation and training services, etc.

Large corporations may also start to explore how to build a business case and strategy to sell software development and support services related to this open source solution.

Many people now start blogging about the system and buzz around this new open source solution as usage continues to grow.

Effective marketing efforts assure that the project becomes well known and starts to attract many additional collaborators and sponsors from the private sector.

Funding and revenue from various sources begin to materialize to help pay for ongoing operation and maintenance costs associated with sustaining the project.

If the projects or systems have progressed to this stage of the maturity model, there is a high probability that a majority of the systems will thrive, take on a life of their own, and succeed over the long term.

In this final phase of the open source maturity model, thousands of developers and users associated with the project will have emerged around the globe. The following are some of the major characteristics associated with this final phase of the system lifecycle:

Many of the original contributors may have moved on or are will have become less involved. A new generation of developers will have emerged.

At this stage, a neutral organization or non-profit foundation is usually established to guide and formally manage the ongoing software development process and the official code repository for the system. The foundation will, at a minimum:

Maintain and periodically release the next version of the ‘gold standard' open source product to the global community.

Manage multiple releases of the software designed for implementation and use in an increasing number of evolving scenarios.

Gather and publish information on system usage, adoption, costs, etc.

Global considerations may drive the need for multiple such organizations so that features unique to different geographic regions or nations can be prioritized and developed.

An IT architecture and set of IT standards for the system are identified and published.

A fairly complex array of high-quality software development tools and professional business processes will have been put in place to support the global community.

Forked versions of the software will emerge as organizations start to take the product in different directions given differing corporate business strategies, deployments in different countries or settings, etc.

Many large public and private sector organizations, seeing that they can lower their development costs and enter a profitable new market, will have started to adopt, use, and integrate the open source product into their corporate portfolios.

The need to establish or use an existing global open source community news site becomes apparent, e.g. Linux Magazine, Open Health News.

In this final phase of the maturity model, there is no doubt this project is here to stay and is providing real value to many thousands of individuals and organizations around the world.

These open source systems will continue to exist and thrive with different degrees of success over the long term. Witness Linux, Apache, Open Office, Java, Drupal, Firefox, Hadoop, Android, mySQL, OpenERP and so many more open source solutions that have taken the world by storm.