340 likes | 909 Views
Capability Maturity Model (CMM). For Software. Prologue. Capability Maturity Models ® (CMMs ® ) assist organizations in maturing their people, process, and technology assets to improve long-term business performance CMMs developed by the Software Engineering Institute (SEI) - Software CMM
E N D
Capability Maturity Model (CMM) For Software
Prologue • Capability Maturity Models® (CMMs®) assist organizations in maturing their people, process, and technology assets to improve long-term business performance • CMMs developed by the Software Engineering Institute (SEI) - • Software CMM • People CMM • Software acquisition CMM • Systems Engineering CMM • Integrated Product Development CMM CRISP
CMM for Software • The Capability Maturity Model for Software (SW-CMM) - a model for • judging the maturity of the software processes of an organization • identifying the key practices that are required to increase the maturity of these processes • assessing and improving software processes CRISP
Let us understand – A Process A Software Process Software Process Capability Software Process Performance Software Process Maturity and Maturity Level CRISP
Process & Software Process - Defined • Aprocess is - • "a system of operations in producing something ... a series of actions, changes, or functions that achieve an end or result” • "a sequence of steps performed for a given purpose" [IEEE-STD-610] • A software process is - • a set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products (e.g., project plans, design documents, code, test cases, and user manuals) CRISP
Software Process Capability - Defined • Software process capability • describes the range of expected results that can be achieved by following a software process • provides one means of predicting the most likely outcomes to be expected from the next software project the organization undertakes CRISP
Software Process Performance - Defined • Software process performance • represents the actual results achieved by following a software process • focuses on the results achieved, while software process capability focuses on results expected • Based on the attributes of a specific project and the context within which it is conducted, the actual performance of the project may not reflect the full process capability of the organization; i.e., the capability of the project is constrained by its environment CRISP
Software Process Maturity - Defined • Software process maturity is the extent to which a specific process is explicitly defined, managed, measured, controlled and effective • Maturity implies a potential for growth in capability and indicates both the richness of an organization's software process and the consistency with which it is applied in projects throughout the organization CRISP
Maturity Level - Defined • A maturity level - • is a well-defined evolutionary plateau towards achieving a mature software process • provides a layer in the foundation for continuous process improvement • comprises a set of process goals that, when satisfied, stabilize an important component of the software process • When achieved establishes a different component in the software process, resulting in an increase in the process capability of the organization CRISP
Organizing CMM into Five Maturity Levels • Initial • Software process characterized as ad hoc and occasionally even chaotic • Few processes defined and success depends on individual effort and heroics • Repeatable • Basic project management processes established to track cost, schedule, and functionality • The necessary process discipline in place to repeat earlier successes on projects with similar applications CRISP
Five Maturity Levels • Defined • The software process for both management and engineering activities 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 CRISP
Five Maturity Levels • Managed • Detailed measures of the software process and product quality collected • Both the software process and products are quantitatively understood and controlled • Optimizing • Continuous process improvement enabled by quantitative feedback from the process and from piloting innovative ideas and technologies CRISP
SW-CMM Levels CRISP
Behavioral Characteristics – Level 1(Initial) Organization Project Process Capability CRISP
Behavioral Characteristics – Level 2(Repeatable) Organization Project Process Capability CRISP
Behavioral Characteristics – Level 3(Defined) Organization Project Process Capability CRISP
Behavioral Characteristics – Level 4(Managed) Organization Project Process Capability CRISP
Behavioral Characteristics – Level 5(Optimizing) Organization Project Process Capability CRISP
Key Process Areas • Each maturity level, except for Level 1, decomposed into several key process areas • that indicate the areas an organization should focus on to improve its software process • identify the issues that must be addressed to achieve a maturity level • identify a cluster of related activities that, when performed collectively, achieve a set of goals considered important for enhancing process capability CRISP
Key Process Areas – Level 2 (Repeatable) • Requirements management • Software project planning • Software project tracking and oversight • Software subcontract management • Software quality assurance • Software configuration management CRISP
Key Process Areas – Level 3 (Defined) • Organization process focus • Organization process definition • Training program • Integrated software management • Software product engineering • Inter group coordination • Peer reviews CRISP
Key Process Areas – Level 4(Managed) • Quantitative process management • Software quality management CRISP
Key Process Areas – Level 5(Optimizing) • Defect prevention • Technology change management • Process change management CRISP
Common Features • For convenience, the key process areas organized by common features • Common features are – • attributes that indicate whether the implementation and institutionalization of a key process area is effective, repeatable, and lasting CRISP
Five Common Features • Commitment to Perform • describes the actions the organization must take to ensure that the process is established and will endure • typically involves establishing organizational policies and senior management sponsorship • Ability to Perform • describes the preconditions that must exist in the project or organization to implement the software process competently • typically involves resources, organizational structures and training CRISP
Five Common Features • Activities Performed • describes the roles and procedures necessary to implement a key process area • typically involve establishing plans and procedures, performing the work, tracking it, and taking corrective actions as necessary • Measurement and Analysis • describes the need to measure the process and analyze the measurements • typically includes examples of the measurements that could be taken to determine the status and effectiveness of the activities performed CRISP
Five Common Features • Verifying Implementation • describes the steps to ensure that the activities are performed in compliance with the process that has been established • Typically encompasses reviews and audits by management and software quality assurance CRISP
Key Practices • Key Practices • describe the infrastructure and activities that contribute most to the effective implementation and institutionalization of a particular key process area • state the fundamental policies, procedures, and activities for the key process area • describe "what" is to be done, but should not be interpreted as mandating "how" the goals should be achieved CRISP
Example Key Practice • For the Software Project Planning key process area • Estimate for the size of the software work products (or changes to the size of software work products) to be derived according to a documented procedure CRISP
Using the CMM • CMM • establishes a set of criteria that can be used by organizations to improve their processes for developing and maintaining software, or by government or commercial organizations to evaluate the risks of contracting a software project to a particular company • acts as a common foundation for both software process assessments and software capability evaluations - two SEI-developed methods for appraising the maturity of an organization's execution of the software process CRISP
Using the CMM • CMM • has specific value in the areas of action planning, implementing action plans, and defining processes CRISP
What CMM does not cover • Describes an organization at each maturity level without prescribing the specific means for getting there • Does not tell an organization how to improve • Does not currently address expertise in particular application domains, advocate specific software technologies, or suggest how to select, hire, motivate, and retain competent people CRISP
Summary Maturity Levels indicate Process Capability contain Key Process Areas achieve Goals Organized by Common Features address Institutionalization contain Key Practices describe Activities CRISP