OpenSource Maturity Model

Last updated

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.

Contents

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. [1] [2]

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 general structure OMMStructure.png
OMM 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:

  1. FLOSS-TWEs gathered from an extensive survey conducted on FLOSS developers, FLOSS users, and FLOSS integrators [3]
  2. CMMI Process Areas

Basic level

The basic level that can be easily reached by adopting a few necessary practices in the FLOSS development process:

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.

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.

Development and Use

While attempting to develop such a model, a few basic facts had been considered:

  1. OMM is a process model for development by developers and integration of FLOSS products by integrators.
  2. 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 [4] that are led by FLOSS communities or by software development companies.

See also

Related Research Articles

The Capability Maturity Model (CMM) is a development model created in 1986 after a study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. The term "maturity" relates to the degree of formality and optimization of processes, from ad hoc practices, to formally defined steps, to managed result metrics, to active optimization of the processes.

Software configuration management (SCM), a.k.a. software change and configuration management (SCCM), is the software engineering practice of tracking and controlling changes to a software system; part of the larger cross-disciplinary field of configuration management (CM). SCM includes version control and the establishment of baselines.

A software company is an organisation — owned either by the state or private — established for profit whose primary products are various forms of software, software technology, distribution, and software product development. They make up the software industry.

OMM may refer to:

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

Software development is the process used to create software. Programming and maintaining the source code is the central step of this process, but it also includes conceiving the project, evaluating its feasibility, analyzing the business requirements, software design, testing, to release. Software engineering, in addition to development, also includes project management, employee management, and other overhead functions. Software development may be sequential, in which each step is complete before the next begins, but iterative development methods where multiple steps can be executed at once and earlier steps can be revisited have also been devised to improve flexibility, efficiency, and scheduling.

<span class="mw-page-title-main">Product lifecycle</span> Duration of processing of products from inception, to engineering, design & manufacture

In industry, product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from its inception through the engineering, design and manufacture, as well as the service and disposal of manufactured products. PLM integrates people, data, processes, and business systems and provides a product information backbone for companies and their extended enterprises.

The Personal Software Process (PSP) is a structured software development process that is designed to help software engineers better understand and improve their performance by bringing discipline to the way they develop software and tracking their predicted and actual development of the code. It clearly shows developers how to manage the quality of their products, how to make a sound plan, and how to make commitments. It also offers them the data to justify their plans. They can evaluate their work and suggest improvement direction by analyzing and reviewing development time, defects, and size data. The PSP was created by Watts Humphrey to apply the underlying principles of the Software Engineering Institute's (SEI) Capability Maturity Model (CMM) to the software development practices of a single developer. It claims to give software engineers the process skills necessary to work on a team software process (TSP) team.

Capability Maturity Model Integration (CMMI) is a process level improvement training and appraisal program. Administered by the CMMI Institute, a subsidiary of ISACA, it was developed at Carnegie Mellon University (CMU). It is required by many U.S. Government contracts, especially in software development. CMU claims CMMI can be used to guide process improvement across a project, division, or an entire organization.

In engineering, a process is a series of interrelated tasks that, together, transform inputs into a given output. These tasks may be carried out by people, nature or machines using various resources; an engineering process must be considered in the context of the agents carrying out the tasks and the resource attributes involved. Systems engineering normative documents and those related to Maturity Models are typically based on processes, for example, systems engineering processes of the EIA-632 and processes involved in the Capability Maturity Model Integration (CMMI) institutionalization and improvement approach. Constraints imposed on the tasks and resources required to implement them are essential for executing the tasks mentioned.

Several methods have been created to define an assessment process for free/open-source software. Some focus on some aspects like the maturity, the durability and the strategy of the organisation around the open-source project itself. Other methodologies add functional aspects to the assessment process.

The Trillium Model, created by a collaborative team from Bell Canada, Northern Telecom and Bell Northern Research combines requirements from the ISO 9000 series, the Capability Maturity Model (CMM) for software, and the Baldrige Criteria for Performance ExcellenceArchived 2016-08-04 at the Wayback Machine, with software quality standards from the IEEE. Trillium has a telecommunications orientation and provides customer focus. The practices in the Trillium Model are derived from a benchmarking exercise which focused on all practices that would contribute to an organization's product development and support capability. The Trillium Model covers all aspects of the software development life-cycle, most system and product development and support activities, and a significant number of related marketing activities. Many of the practices described in the model can be applied directly to hardware development.

A maturity model is a framework for measuring an organization's maturity, or that of a business function within an organization, with maturity being defined as a measurement of the ability of an organization for continuous improvement in a particular discipline. The higher the maturity, the higher will be the chances that incidents or errors will lead to improvements either in the quality or in the use of the resources of the discipline as implemented by the organization.

A glossary of terms relating to project management and consulting.

In software engineering, a software development process or software development life cycle is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

Enterprise interoperability is the ability of an enterprise—a company or other large organization—to functionally link activities, such as product design, supply chains, manufacturing, in an efficient and competitive way.

The following outline is provided as an overview of and topical guide to project management:

Disciplined agile delivery (DAD) is the software development portion of the Disciplined Agile Toolkit. DAD enables teams to make simplified process decisions around incremental and iterative solution delivery. DAD builds on the many practices espoused by advocates of agile software development, including scrum, agile modeling, lean software development, and others.

Intrapreneurial Bricolage (IB) is the pursuit of entrepreneurial endeavors, operating within a larger organization using only limited, available resources. The term combines the two concepts of intrapreneurship and bricolage. Intrapreneurship uses principles and strategies from the discipline of entrepreneurship and applies them within the confines of an organization rather than initiating new ones. Borrow from the French word for "makeshift job", bricolage is a type of art using whatever media is at hand. In the context of intrapreneurial bricolage, intrapreneurs find innovative ways to work with a scarcity of resources.

<span class="mw-page-title-main">Technology readiness level</span> Method for estimating the maturity of technologies

Technology readiness levels (TRLs) are a method for estimating the maturity of technologies during the acquisition phase of a program. TRLs enable consistent and uniform discussions of technical maturity across different types of technology. TRL is determined during a technology readiness assessment (TRA) that examines program concepts, technology requirements, and demonstrated technology capabilities. TRLs are based on a scale from 1 to 9 with 9 being the most mature technology.

References

As of 16 June 2010, this article is derived in whole or in part from Qalipso. The copyright holder has licensed the content in a manner that permits reuse under CC BY-SA 3.0 and GFDL. All relevant terms must be followed.The original text was at "OpenSource Maturity Model (OMM) evaluation"
  1. Wittmann, Marion; Nambakam, Ranganatham. "CMM-like model for OSS" (PDF). QualiPSo project web site. Archived from the original (PDF) on 30 May 2015. Retrieved 12 June 2017.
  2. Petrinja, Etiel; Sillitti, Alberto; Succi, Giancarlo (7–10 September 2008). "Overview on Trust in large FLOSS Communities" (PDF). Open Source Development, Communities and Quality. Milan, Italy: Springer. pp. 47–56. Archived from the original (PDF) on 2011-08-24. Retrieved 2010-06-16.
  3. Petrinja, Etiel; Nambakam, Ranganatham; Sillitti, Alberto (May 16–24, 2009). "Introducing the OpenSource Maturity Model". Workshop: Emerging Trends in Free/Libre/Open Source Software Research and Development. Vancouver, Canada: Collocated with ICSE 2009. doi:10.1109/FLOSS.2009.5071358.
  4. Petrinja, Etiel; Sillitti, Alberto; Succi, Giancarlo (30 May – 2 June 2010). "Comparing OpenBRR, QSOS, and OMM Assessment Models". Open Source Software: New Horizons. Notre Dame, Indiana, USA: Springer. pp. 224–238. doi: 10.1007/978-3-642-13244-5_18 .