CMM is a common-sense application of software or business process management and quality improvement concepts to software development and maintenance.
It’s a community-developed guide for evolving towards a culture of engineering excellence, model for organizational improvement. This is the underlying structure for reliable and consistent software process assessments and software capability evaluations.
The Capability Maturity Model for Software (CMM) is a framework that describes the key elements of an effective software process. There are CMMs for non software processes as well, such as Business Process Management (BPM).
The CMM describes an evolutionary improvement path from an ad hoc, immature process to a mature, disciplined process. The CMM covers practices for planning, engineering, and managing software development and maintenance.
When followed, these key practices improve the ability of organizations to meet goals for cost, schedule, functionality, and product quality.
The CMM establishes a yardstick against which it is possible to judge, in a repeatable way, the maturity of an organization's software process and compare it to the state of the practice of the industry.
The CMM can also be used by an organization to plan improvements to its software process. It also reflects the needs of individuals performing software process, improvement, software process assessments, or software capability evaluations; is documented; and is publicly available.
Capability Maturity Model Integration (CMM) Maturity Levels
The Five Maturity Levels described by the Capability Maturity Model can be characterized as per their primary process changes made at each level as follows:
1. Initial the software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort and heroics.
2. Repeatable Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.
3. Defined the software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.
4. Managed Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.
5. Optimizing Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.
At the Optimizing Level or the CMM level5, the entire organization is focused on continuous Quantitative feedback from previous projects is used to improve the project management, usually using pilot projects, using the skills shown in level 4. The focus is on continuous process improvement.
The software process capability of Level 5 organizations can be characterized as continuously improving because Level 5 organizations are continuously striving to improve the range of their process capability, thereby improving the process performance of their projects. Improvement occurs both by incremental advancements in the existing process and by innovations using new technologies and methods.
Capability Maturity Model (CMM) Process Area (PA)
A process area (PA) contains the goals that must be reached in order to improve a software process. A PA is said to be satisfied when procedures are in place to reach the corresponding goals. A software organization has achieved a specific maturity level once all the corresponding PAs are satisfied. The process areas (PA's) have the following features:
1. Identify a cluster of related activities that, when performed collectively, achieve a set of goals considered important for enhancing process capability.
2. Defined to reside at a single maturity level.
3. Identify the issues that must be addressed to achieve a maturity level.
The different maturity levels have different process areas pre-defined as shown in the figure above. The SEI CMMI Level 5 has 3 PA's defined:
1. Process change management: To identify the causes of defects and prevent them from recurring.
2. Technology change management: To identify beneficial new technology and transfer them in an orderly manner.
3. Defect prevention: To continually improve the process to improve quality, increase productivity, and decrease development time.
The purpose of Process Change Management is to continually improve the software processes used in the organization with the intent of improving software quality, increasing productivity, and decreasing the cycle time for product development. When software process improvements are approved for normal practice, the organization's standard software process and the projects' defined software processes are revised as suited.
The goals sought to achieve are as follows:
1. Continuous process improvement is planned.
2. Participation in the organization's software process improvement activities is organization wide.
3. The organization's standard software process and the projects defined software processes are improved continuously.
These defined standards give the organization a commitment to perform because:
1. The organization follows a written policy for implementing software process improvements.
2. Senior management sponsors the organization's activities for software process improvement.
The ability of the organization to perform transpires because:
1. Adequate resources and funding are provided for software process improvement activities.
2. Software managers receive required training in software process improvement.
3. The managers and technical staff of the software engineering group and other software-related groups receive required training in software process improvement.
4. Senior management receives required training in software process improvement.
Capability Maturity Model (CMM) Process Area (PA) Activities
The Process Area Activities performed include:
1. A software process improvement program is established which empowers the members of the organization to improve the processes of the organization.
2. The group responsible for the organization's software process activities coordinates the software process improvement activities.
3. The organization develops and maintains a plan for software process improvement according to a documented procedure.
4. The software process improvement activities are performed in accordance with the software process improvement plan.
5. Software process improvement proposals are handled according to a documented procedure.
6. Members of the organization actively participate in teams to develop software process improvements for assigned process areas.
7. Where appropriate, the software process improvements are installed on a pilot basis to determine their benefits and effectiveness before they are introduced into normal practice.
8. When the decision is made to transfer a software process improvement into normal practice, the improvement is implemented according to a documented procedure.
9. Records of software process improvement activities are maintained.
10. Software managers and technical staff receive feedback on the status and results of the software process improvement activities on an event-driven basis.
The primary purpose of periodic reviews by senior management is to provide awareness of, and insight into, software process activities at an appropriate level of abstraction and in a timely manner. The time between reviews should meet the needs of the organization and may be lengthy, as long as adequate mechanisms for exception reporting are available.
Six Sigma Definition - What Is Six Sigma?
Six Sigma stands for Six Standard Deviations (Sigma is the Greek letter used to represent standard deviation in statistics) from mean. Six Sigma methodology provides the techniques and tools to improve the capability and reduce the defects in any process.
Six Sigma methodology improves any existing business process by constantly reviewing and re-tuning the process. To achieve this, Six Sigma uses a methodology known as DMAIC (Define opportunities, Measure performance, Analyze opportunity, Improve performance, Control performance).
Six Sigma experts evaluate a business process and determine ways to improve upon the existing process. Six Sigma experts can also design a brand new business process using DFSS (Design For Six Sigma) principles. Typically it’s easier to define a new process with DFSS principles than refining an existing process to reduce the defects.
Six Sigma incorporates the basic principles and techniques used in Business, Statistics, and Engineering. These three form the core elements of Six Sigma.
Six Sigma improves the process performance, decreases variation and maintains consistent quality of the process output. This leads to defect reduction and improvement in profits, product quality and customer satisfaction.
Six Sigma methodology is also used in many Business Process Management initiatives these days. These Business Process Management initiatives are not necessarily related to manufacturing. Many of the BPM's that use Six Sigma in today's world include call centers, customer support, supply chain management and project management.
Key Elements of Six Sigma
Customer requirements, design quality, metrics and measures, employee involvement and continuous improvement are main elements of Six Sigma Process Improvement.
The three key elements of Six Sigma are:
1. Customer Satisfaction
2. Defining Processes and defining Metrics and Measures for Processes
a. Using and understanding Data and Systems
b. Setting Goals for Improvement
3. Team Building and Involving Employees
Involving all employees is very important to Six Sigma. The company must involve all employees. Company must provide opportunities and incentives for employees to focus their talents and ability to satisfy customers.
Defining Roles: This is important to six sigma. All team members should have a well defined role with measurable objectives.