# OpenSource Maturity Model

The Open Source Maturity Model (OMM) is a methodology for assessing Free/Libre Open Source Software (FLOSS) and more specifically the FLOSS development process. This methodology is released under the Creative Commons license.
OMM may help in building trust in the development process of companies using or producing FLOSS. The aim of the methodology is to enable any enterprise or organization to use FLOSS software in production and, in particular, in their mainstream products and not only in prototypes.
OMM objectives are to provide FLOSS communities a basis for developing products efficiently and making their products trustworthy for the potential customers, and also for integrating companies and to provide FLOSS integrators a basis for evaluating the processes used by the FLOSS communities.
OMM is interchangeably referred to as model and methodology. It is first a model that contains all elements that have to be assessed, but it is also a set of rules and guidelines describing how to conduct the assessment process.

## General structure

OMM is organized in levels, each level is building on and including the trustworthy elements (TWE) at the lower level. The trustworthy elements included in OMM were collected or inspired by two sources:
* FLOSS-TWEs gathered from an extensive survey conducted on FLOSS developers, FLOSS users, and FLOSS integrators
* CMMI Process Areas

### Basic level

The basic level that can be easily reached by adopting a few necessary practices in the FLOSS development process:
* PDOC – Product Documentation
* STD – Use of Established and Widespread Standards
* QTP – Quality of Test Plan
* LCS – Licenses
* ENV – Technical Environment
* DFCT – Number of Commits and Bug Reports
* MST – Maintainability and Stability
* CM – Configuration Management
* PP1 – Project Planning Part 1
* REQM – Requirements Management
* RDMP1 – Availability and Use of a (product) roadmap

### Intermediate level

The intermediate level is the second level in OMM and can be achieved by fulfilling all trustworthy elements from the basic level and required trustworthy elements from the intermediate level.
* RDMP2 – Availability and Use of a (product) roadmap
* STK – Relationship between Stakeholders
* PP2 – Project Planning Part 2
* PMC – Project Monitoring and Control
* TST1 – Test Part 1
* DSN1 – Design Part 1
* PPQA – Process and Product Quality Assurance

### Advanced level

The advanced level is the highest level that FLOSS projects can achieve by fulfilling all trustworthy elements from basic and intermediate levels and required trustworthy elements from the advanced level.
* PI – Product Integration
* RSKM – Risk Management
* TST2 – Test Part 2
* DSN2 – Design 2
* RASM – Results of third party assessment
* REP – Reputation
* CONT – Contribution to FLOSS Product from SW Companies

## Development and Use

While attempting to develop such a model, a few basic facts had been considered:
* OMM is a process model for development by developers and integration of FLOSS products by integrators.
* OMM is intended for use by individuals and development teams that may be spread across locations worldwide, hence the emphasis on simplicity and ease of use. Being simple but organized as an evolutionary model, OMM can be useful for companies as well. This approach helped to keep the model lean but still practical.
The OMM model is now tested and validated in real FLOSS projects that are led by FLOSS communities or by software development companies.