Process Improvement is defined as a method that is introduced to bring in changes so as to increase the quality of a product, decrease the costs and to improve the schedules. This kind of process improvement follows a well-defined methodology or strategy so as to achieve desired results. Process improvement can be brought about in any field and our area of concentration in this article would be on software process improvement models. We shall understand about the different kinds of models that are involved in improving a software process and basic differences between them.
Software Process Improvement
Process Improvement methods and models aim at controlling software processes and in optimizing them. Though there are many models that are used to improve the software process, two of them are predominantly used, namely, CMM and ISO. Let us take a brief look at both the models and how they are different from each other.
It is an acronym for Capability Maturity Model and is a set of established standards to assess software capability and maturity. It also possesses strategies for assessment of software and their processes. Initiated in 1985 as a framework for understanding the software process maturity of a company in Carnegie Mellon University, the CMM model evolved into a complete process improvement model with the CMM version 1 released in 1991.
The maturity model is layered in 5 levels enabling a procedural assessment of the software process. The maturity levels are Initial level, Repeatable level, Defined level, Managed level and Optimizing level.
1. Initial Level – At this level, the processes are not well defined and are chaotic in nature. The success of the project is something that the company cannot establish at this phase.
2. Repeatable Level – Basic processes that are required for a software project management are established at this level. The common processes include software project planning, requirement analysis, configuration management, quality assurance, software project tracking and supervision, etc.
3. Defined Level – At this level, the integration of the processes are defined. The engineering and management processes are integrated which includes peer review, product engineering, software management, training program, process definition, etc.
4. Managed Level – In this phase, detailed measures are taken to control quality of the process and the product in turn. Wide range of quality management, process analysis and process measurements are used to control the software processes in this level.
5. Optimizing Level – This is a level of continuous process improvement which includes change management and defect prevention methods.
The standards developed by this non-governmental body are used in many areas like computing, quality, documentation, etc. The term ISO is not an acronym and denotes the term “International Organisation for Standardisation”. ISO 9000 is a set of standards that are related to quality systems and standards. This family of ISO standards is an effort towards good quality and management practices. These standards include many aspects of process improvement which includes documentation standards and monitoring of process and key business procedures. The standard also includes defect prevention and control as a means of quality process. The processes are reviewed on a continual basis to ensure effectiveness of the process.
CMM and ISO
Both the models are systematic and defined methods for established improvement in software processes. The CMM and ISO models both have related similarities and differences as listed below.
Both the models are similar in the systematic approach they follow. The approach they provide is structured and is aimed towards process improvement. They represent a continuous form of improvement with every level that is achieved. Both the models follow similar coverage area and focus on the same key processes. This denotes that identical processes can be related between these two models.
As much as the similarity, the models also exhibit differences in their approach. The primary difference is in their goal where the CMM aims at improving the process capability of an organization while ISO standards aim at improving the capability that is exhibited by every process. The method of evaluation also differs in both the models where CMM evaluates the process capability based on the collected data while ISO standards base their evaluation on the property exhibited by the process.