|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Abbreviation |
Name |
Area |
Maturity Level |
|---|---|---|---|
|
REQM |
Requirements Management |
Engineering |
2 |
|
PMC |
Project Monitoring and Control |
Project Management |
2 |
|
PP |
Project Planning |
Project Management |
2 |
|
SAM |
Supplier Agreement Management |
Project Management |
2 |
|
CM |
Configuration Management |
Support |
2 |
|
MA |
Measurement and Analysis |
Support |
2 |
|
PPQA |
Process and Product Quality Assurance |
Support |
2 |
|
PI |
Product Integration |
Engineering |
3 |
|
RD |
Requirements Development |
Engineering |
3 |
|
TS |
Technical Solution |
Engineering |
3 |
|
VAL |
Validation |
Engineering |
3 |
|
VER |
Verification |
Engineering |
3 |
|
OPD |
Organizational Process Definition |
Process Management |
3 |
|
OPF |
Organizational Process Focus |
Process Management |
3 |
|
OT |
Organizational Training |
Process Management |
3 |
|
IPM |
Integrated Project Management |
Project Management |
3 |
|
ISM |
Integrated Supplier Management |
Project Management |
3 |
|
IT |
Integrated Teaming |
Project Management |
3 |
|
RSKM |
Risk Management |
Project Management |
3 |
|
DAR |
Decision Analysis and Resolution |
Support |
3 |
|
OEI |
Organizational Environment for Integration |
Support |
3 |
|
OPP |
Organizational Process Performance |
Process Management |
4 |
|
QPM |
Quantitative Project Management |
Project Management |
4 |
|
OID |
Organizational Innovation and Deployment |
Process Management |
5 |
|
CAR |
Causal Analysis and Resolution |
Support |
5 |
Software process framework for SEI's Capability Maturity Model
The software process framework documented is intended to guide those wishing to assess an organization/projects consistency with the CMM. For each maturity level there are five checklist types:
|
TypeSD |
Description |
|---|---|
|
Policy |
Describes the policy contents and KPA goals recommended by the CMM. |
|
Standard |
Describes the recommended content of select work products described in the CMM. |
|
Process |
Describes the process information content recommended by the CMM. The process checklists are further refined into checklists for: roles entry criteria inputs activities outputs exit criteria reviews and audits work products managed and controlled measurements documented procedures training tools |
|
Procedure |
Describes the recommended content of documented procedures described in the CMM. |
|
Level Overview |
Provides an overview of an entire maturity level. The level overview checklists are further refined into checklists for: KPA purposes (Key Process Areas) KPA goals policies standards process descriptions procedures training tools reviews and audits work products managed and controlled measurements |
History Capability Maturity Model
The Capability Maturity Model was initially funded by military research. The United States Air Force funded a study at the Carnegie-Mellon Software Engineering Institute to create an abstract model for the military to use as an objective evaluation of software subcontractors. The result was the Capability Maturity Model, published as Managing the Software Process in 1989. The CMM is no longer supported by the SEI and has been superseded by the more comprehensive Capability Maturity Model Integration (CMMI), of which version 1.2 has now been released.
Context
In the 1970s, technological improvements made computers more widespread, flexible, and inexpensive. Organizations began to adopt more and more computerized information systems and the field of software development grew significantly. This led to an increased demand for developers�and managers�which was satisfied with less experienced professionals.
Unfortunately, the influx of growth caused growing pains; project failure became more commonplace not only because the field of computer science was still in its infancy, but also because projects became more ambitious in scale and complexity. In response, individuals such as Edward Yourdon, Larry Constantine, Gerald Weinberg, Tom DeMarco, and David Parnas published articles and books with research results in an attempt to professionalize the software development process.
Watts Humphrey's Capability Maturity Model (CMM) was described in the book Managing the Software Process (1989). The CMM as conceived by Watts Humphrey was based on the work a decade earlier of Phil Crosby who published the Quality Management Maturity Grid in his book Quality is Free in 1979. Active development of the model by the SEI (US Dept. of Defense Software Engineering Institute) began in 1986.
The CMM was originally intended as a tool to evaluate the ability of government contractors to perform a contracted software project. Though it comes from the area of software development, it can be, has been, and continues to be widely applied as a general model of the maturity of processes (e.g., IT Service Management processes) in IS/IT (and other) organizations.
Note that the first application of a staged maturity model to IT was not by CMM/SEI, but rather Richard L. Nolan in 1973.
The model identifies five levels of process maturity for an organisation:
-
Initial (chaotic, ad hoc, heroic) the starting point for use of a new process.
-
Repeatable (project management, process discipline) the process is used repeatedly.
-
Defined (institutionalized) the process is defined/confirmed as a standard business process.
-
Managed (quantified) process management and measurement takes place.
-
Optimising (process improvement) process management includes deliberate process optimization/improvement.
Within each of these maturity levels are KPAs (Key Process Areas) which characterise that level, and for each KPA there are five definitions identified:
-
Goals
-
Commitment
-
Ability
-
Measurement
-
Verification
The KPAs are not necessarily unique to CMM, representing � as they do � the stages that organizations must go through on the way to becoming mature.
The assessment is supposed to be led by an authorised lead assessor. One way in which companies are supposed to use the model is first to assess their maturity level and then form a specific plan to get to the next level. Skipping levels is not allowed.
N.B.: The CMM was originally intended as a tool to evaluate the ability of government contractors to perform a contracted software project. It may be suited for that purpose. When it became a general model for software process improvement, there were many critics.
"Shrinkwrap" companies are also called "COTS" or commercial-off-the-shelf firms or software package firms. They include Claris, Apple, Symantec, Microsoft, and Lotus, amongst others. Many such companies rarely if ever managed their requirements documents as formally as the CMM described in order to achieve level 2, and so all of these companies would probably fall into level 1 of the model.
Origins of Capability Maturity Model
In the 1980s, several military projects involving software subcontractors ran over-budget and were completed much later than planned, if they were completed at all. In an effort to determine why this was occurring, the United States Air Force funded a study at the SEI. The result of this study was a model for the military to use as an objective evaluation of software subcontractors. In 1989, the Capability Maturity Model was published as Managing the Software Process. The basis for the model is the Quality Management Maturity Grid introduced by Philip Crosby in his 1979 book 'Quality is Free'.
Timeline
-
1987: SEI-87-TR-24 (SW-CMM questionnaire), released.
-
1989: Managing the Software Process, published.
-
1990: SW-CMM v0.2, released (first external issue see Paulk handout).
-
1991: SW-CMM v1.0, released.
-
1993: SW-CMM v1.1, released.
-
1997: SW-CMM revisions halted in support for CMMI.
-
2000: CMMI v1.02, released.
-
2002: CMMI v1.1, released.
-
2006: CMMI v1.2, released.
Current state of Capability Maturity Model
Although these models have proved useful to many organizations, the use of multiple models has been problematic. Further, applying multiple models that are not integrated within and across an organization is costly in terms of training, appraisals, and improvement activities. The CMM Integration project was formed to sort out the problem of using multiple CMMs. The CMMI Product Team's mission was to combine three source models:
-
The Capability Maturity Model for Software (SW-CMM) v2.0 draft C
-
The Systems Engineering Capability Model (SECM)
-
The Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98
-
Supplier sourcing
CMMI is the designated successor of the three source models. The SEI has released a policy to sunset the Software CMM and previous versions of the CMMI. The same can be said for the SECM and the IPD-CMM; these models were superseded by CMMI.
Future direction of Capability Maturity Model
With the release of the CMMI Version 1.2 Product Suite, the possibility of multiple CMMI models was created. There is now a CMMI for Development (CMMI-DEV), V1.2[1] and a CMMI for Acquisition (CMMI-ACQ), V1.2. A version of the CMMI for Services is being developed by a Northrop Grumman-led team under the auspices of the SEI, with participation from Boeing, Lockheed Martin, Raytheon, SAIC, SRA, and Systems and Software Consortium (SSCI).
Suggestions for improving CMMI are welcomed by the SEI. For information on how to provide feedback, see the CMMI Web site.
In some cases, CMMI can be combined with other methodologies. It is commonly used in conjunction with the ISO 9001 standard. JPMorgan Chase & Co. tried combining CMM with Extreme Programming (XP), and Six Sigma. They found that the three systems reinforced each other well, leading to better development, and did not mutually contradict, see Extreme Programming (XP), Six Sigma and CMMI.
Controversial aspects of Capability Maturity Model
The software industry is diverse and volatile. All methodologies for creating software have supporters and critics, and the CMM is no exception.
Praise
-
The CMM was developed to give Defense organizations a yardstick to assess and describe the capability of software contractors to provide software on time, within budget, and to acceptable standards. It has arguably been successful in this role, even reputedly causing some software sales people to clamour for their organizations' software engineers/developers to "implement CMM."
-
The CMM is intended to enable an assessment of an organization's maturity for software development. It is an important tool for outsourcing and exporting software development work. Economic development agencies in India, Brazil, Ireland, Egypt, Syria, and elsewhere have praised the CMM for enabling them to be able to compete for US outsourcing contracts on an even footing.
-
The CMM provides a good framework for organizational improvement. It allows companies to prioritize their process improvement initiatives.
Criticism
-
CMM has failed to take over the world. It's hard to tell exactly how wide spread it is as the SEI only publishes the names and achieved levels of compliance of companies that have requested this information to be listed. The most current Maturity Profile for CMMI is available online.
-
CMM is well suited for bureaucratic organizations such as government agencies, large corporations and regulated monopolies. If the organizations deploying CMM are large enough, they may employ a team of CMM auditors reporting their results directly to the executive level. (A practice encouraged by SEI.) The use of auditors and executive reports may influence the entire IT organization to focus on perfectly completed forms rather than application development, client needs or the marketplace. If the project is driven by a due date, CMMs intensive reliance on process and forms may become a hindrance to meeting the due date in cases where time to market with some kind of product is more important than achieving high quality and functionality of the product.
-
Suggestions of scientifically managing the software process with metrics only occur beyond the Fourth level. There is little validation of the processes cost savings to business other than a vague reference to empirical evidence. It is expected that a large body of evidence would show that adding all the business overhead demanded by CMM somehow reduces IT headcount, business cost, and time to market without sacrificing client needs.
-
No external body actually certifies a software development center as being CMM compliant. It is supposed to be an honest self-assessment. Some organizations misrepresent the scope of their CMM compliance to suggest that it applies to their entire organization rather than a specific project or business unit.
-
The CMM does not describe how to create an effective software development organization. The CMM contains behaviors or best practices that successful projects have demonstrated. Being CMM compliant is not a guarantee that a project will be successful, however being compliant can increase a project's chances of being successful.
-
The CMM can seem to be overly bureaucratic, promoting process over substance. For example, for emphasizing predictability over service provided to end users. More commercially successful methodologies (for example, the Rational Unified Process) have focused not on the capability of the organization to produce software to satisfy some other organization or a collectively-produced specification, but on the capability of organizations to satisfy specific end user "use cases" as per the Object Management Group's UML (Unified Modeling Language) approach.
-
From the systemic perspective, the CMM(I) represents a (n+1) classical engineering approach which does not take under consideration numerous human cognitive, organizational and cultural factors, essential for the success of every projects, see also socio-cognitive engineering viewpoint. On the other hand, a process design is strongly connected with the process carrier systems and their requested functions and goals, these clear computational relations are especially important for the validation of the results of the CMM(I) applications. It seems, the CMM(I) requires yet a solid theoretical ontological and epistemological background in order to be a trustworthy standard, for an example only, the arbitrary initial choice of the levels and Key Process Areas are not sufficiently motivated.
-
Critical analysis of CMM has been published in at least two papers. Bach raises questions about the validity of CMM's assertions regarding what constitutes good software-development processes. Bollinger and McGowan discuss flaws in CMM's use of assembly-line process models. They show that manufacturing is fundamentally different than software development, as the former is primarily concerned with replication and the latter with design.
The most beneficial elements of CMM Level 2 and 3
-
Creation of Software Specifications, stating what is going to be developed, combined with formal sign off, an executive sponsor and approval mechanism. This is NOT a living document, but additions are placed in a deferred or out of scope section for later incorporation into the next cycle of software development.
-
A Technical Specification, stating how precisely the thing specified in the Software Specifications is to be developed will be used. This is a living document.
-
Peer Review of Code (Code Review) with metrics that allow developers to walk through an implementation, and to suggest improvements or changes. (Note - This is problematic because the code has already been developed, and a bad design potentially cannot be fixed by "tweaking".) The Code Review gives complete code a formal approval mechanism.
-
Version Control - a very large number of organizations have no formal revision control mechanism or release mechanism in place.
-
The idea that there is a "right way" to build software, that it is a scientific process involving engineering design and that groups of developers are not there to simply work on the problem du jour.
Companies appraised against the CMMI
Many IT companies across the world are making forays up the CMMI level ladder.
For a complete list view the published SCAMPI results.
One must be very skeptical about a company claiming that they have obtained a certain level (the higher level, the more skeptical to be) of CMM at an "enterprise level." Usually this is used as a marketing technique that may indeed apply to some project done by the company at some time, but most unlikely achieved by the enterprise.
References
This page is about MMM and is provided to academicians, students, business people and everybody who is interested in management theories for free. If you think there should be more information about MMM please contact us.
