This report is split in to two parts, Part A of this report will aim to firstly define the Capability Maturity Model (CMM) and secondly critically asses the importance of the model in relation to Software Quality Management. The aim of Part B will be to first assess the benefits of gaining accreditation against the CMM for software companies, secondly explain why the CMM is important for Indian outsourcing organizations and provide examples of companies, and lastly critically evaluate the differences between the CMM and the TickIT scheme by identifying the strength and weakness of both methods.
PART A 2. Capability Maturity Model (CMM) The Capability Maturity Model (CMM) was developed at Carnegie Mellon University by the software Engineering Institute (SEI) and it provides a frame work for process improvement. (8) 2. 1 Five levels of (CMM) CMM has five maturity levels that lay successive foundations for continuous process improvement. Looking at figure1 in 2. 2, we can see that each maturity level comprises a set of process goals that when satisfied, stabilize an important component at the software process. (9).
The Capability maturity model is organized in to five levels. Below is a description of each one: * Initial (Level 1): At this level the software process is ad hoc and projects succeed through individual heroism. ( 8) * Repeatable (Level 2): At this level basic project management processes are established to track schedule, cost, and functionality. (9) * Defined (Level 3): At this level the software process for both management and engineering activities is documented, standardized and integrated into a standard software process for the organisation.
(9) Even though the Organization has a well defined process, it does not necessarily support it with quantitative measurements. (8) * Managed (Level 4): At this level detailed measures of the software process and product quality are collected and both the software process and product are quantitatively controlled and understood. (9) * Optimizing (Level 5): At this last level the organization makes quantitative measurements of its projects and makes use of those measurements to tune the process. (8) 2. 2 Diagram of the five levels
Figure 1. CMM model (2) 3. Important of the model in relation to the SQM A lot of attention has been given to improving the process of designing, developing, and delivering software applications. The Software Engineering Institutes CMM Model is designed to help us evaluate the maturity of our Software development processes. The Capability Maturity Model recognizes that there are tools and processes that, while not directly involved in the production of code, aid in the overall Software Quality Management process.
(1) The CMM is now popular and has been effective in emphasizing the importance of process improvement. Process improvement is an important Total Quality Management concept and significant research has focused on the design and evolution of the software development processes with the intent to enhance their capability and maturity. The Software Engineering Institute (SEI) has developed specific models to evaluate, diagnose, and evolve the capabilities of the software development process. (4)
As mentioned in 2. 1, the SEIs Capability Maturity Model (CMM) defines an evolutionary path from ad hoc, chaotic processes to mature, disciplined processes. Process maturation, as assessed by the predictability of development outcomes in terms of quality, budget, and schedules is enhanced when feedback is meaningfully generated and utilized to recalibrate and fine tune the software process design. (4) Report evidence have suggested that organizations implementing a Capability Maturity Model-based software process improvement have realized gains in development cycle time and programmer productivity.
(4) However Reports also suggest that organizations face difficulties in adhering to the sequence, as recommended by CMM, in which changes to the development process needs to be implemented. (4) In conclusion lack of theory informing the conceptualization of the Capability Maturing Model stages raises questions about the rationale for the suggested sequencing to develop process capabilities. Limited attention has been devoted to define process management, identify and define its constitutive dimensions, and develop reliable and valid measurement instruments for each of these dimensions.
(4) Process improvement is one aspect of Total Quality Management that needs to be integrated with other core Total Quality Management principles, such as customer focus and viewing the organization with an integrated systems perspective. These essential aspects of Total Quality Management are currently missing in the Capability Maturity Model (CMM). (4) Integrative theory development is required to understand the relationships between process management practices and other elements of the development organization, which enable or constrain effective process management.
(4) Generally the Capability Maturity Model recognizes that moving from a craft approach, where performance is largely a function of individual skills, to a factory approach, where the process plays a dominant role, is necessary to improve software development performance). Many Information System developers could perceive process-based approaches such as the CMM as deskilling their job and increasing managerial control over systems development tasks. Such a change is likely to be resisted by IS developers and could be a cause for failure of these approach. (4)