Every organization began to start using computers rather than files to store and transfer information, so as a result the usage and demand for software's also increased.
So Software Company's started producing different software's every year. The demand for projects also increased in the market, but while coming to execution in the real world 90% of the software's are not executing. So the delivery date and budget of the project is becoming high.
On depending up on software subcontractors, in 1980's, US military projects has ran over- budget and not completed in time. So as a result to this situation United States Air Force had given funds to SEI to make a study on these Software problems. At SEI they developed CMM to solve the problems at software industry.
Introduction to CMM:
Capability Maturity Model is a method, which is used to evaluate the maturity of software development organisations. According to my thesis CMM played a major role in the software process evolution.
Among software engineering theorists and practitioners CMM can be considered as a best process, why because it is a collection of effective practices grouped according to a simple organizational evolution. But CMM is mostly used by the companies which are completely lack of software savvy (understanding).
But CMM is a white wash that obscures the true steps of software engineering, if a company uses CMM for its own sake then it may Leeds to the collapse of that company in the competitive world. But usage of CMM in government projects is beneficiary.
CMM had came from the field of software development, it is used as a general model in improving organizational business process in different areas like software engineering, system engineering, project engineering, information technology, risk management, software maintenance, system acquisition, services, business processes generally, So as a result CMM is used in various software, business, government organizations.
The usage of CMM in software industry has resulted in rapid increase of systems like software, marketing, hardware and manufacture organizations developing new systems.
CMM can classified in the following concepts and principles.
Method based on quantitative approaches increases the organization capability, control the quality and to improve the productivity of the software development process.
Software development can be achieved by the 5 level capability maturity model.
Process areas are defined "what", but not "how" this approach enable the model to a wide range of implementation organizations why becauseâ€¦â€¦â€¦â€¦
It allows use of any life cycle model.
It allows use of any design methodology, software measurement tool and programming language.
it does not specify any particular documentation standard.
Levels of CMM:
There are five levels that are defined in CMM, according to SEI." Predictability, effectiveness, and control over organizations' software process are improved when an organization use this five maturity levels.
Level 2-Managed or Repeatable
Level 4-Quantitatively managed
Usually organizations do not provide a stable environment, I spite of this chaotic (disorder) environment, and maturity level 1 organizations often produce products and services. The major drawback here is the projects will not complete in on time and they exceed the budget.
Managed or Repeatable:
The software development successes are repeatable. But all the projects in an organization are not repeatable. To track cost and schedule the organization will use some basic project management; in a result the project status and delivery of services are visible to management at defined points. The project management processes are established to track cost and schedule, and functionality. But drawback here is companies had set different software project groups but there is no perfect coordination between them.
By overcoming problems in level 2, company's had developed a standard processes, and asked all the software developers to work under this standard processes. So customers begin to get consistency from different groups.
Here management plays a major role in control of software development. It uses different adjustments and adopts the number of ways to projects without measurable losses of quality or deviations from specifications. It has set of predefined goals for both software development and maintenance.
The main principle of optimizing is improving process performance through both incremental and innovative technological improvements. In this level processes are concerned with addressing common causes of process variation and changing the process to improve process performance to achieve the established quantitative process-improvement objectives.
The SEI expanded the original software development and maintains capability maturity model with the following variants
system engineering cmm (se-cmm)
trusted cmm (t-cmm")
system security engineering (sse-cmm)
software acquisition cmm(sa-cmm)
integrated product development CMM(ipd-cmm)
Draw backs of CMM:
Up to now we discussed about the CMM benefits and usage of CMM in software companies. There are also drawbacks in using CMM.
The drawbacks of CMM are Overlapping, Contradicting, Lacking clean, Understanding interfaces, lacking standardization, displaying difference levels of details.
CMM describe what an organization to do but not tell how to do, process assessment flaws, statistical problems, process risk.
To overcome the drawbacks in CMM Software Engineering Institute developed CMMI in 20th century.
Capability maturity model Integration:
When software companies started using capability maturity model many problems came in to existence like competition sharpening, cost, freight, insurance control, outreaching of budgets. To overcome these problems Software Engineering Institute had developed Capability Maturity Model Integration. CMMI is combination of Capability Maturity Model, SE-CMM (in sphere System Engineering), SA-CMM (Software Acquisition), IDP-CMM (Integrated Product Development), and even People-CMM (Management Human Resources. The CMMI also includes common set of process areas from which the core of CMM had integrates process improvement guidance for Software Engineering, System engineering, integrated product and process development (IPPD).Capability Maturity Model integration is developed in such a way that it will reduce the redundancy and complexity problems which are in Capability maturity model. So as a result this capability maturity model integration can simply used by any type of organization's mission, and business objectives.