This action might not be possible to undo. Are you sure you want to continue?
Technical Report CMU/SEI-93-TR-024 ESC-TR-93-177 http://www.sei.cmu.edu/publications/documents/93.reports/93.tr.024.html
Mark C. Paulk Bill Curtis Mary Beth Chrissis Charles V. Weber
Immature Versus Mature Organizations
• • • Software Process though specified is not followed/enforced Reactionary (Fire-Fighting) Software processes are generally improvised by practitioners and managers during the course of the project. Schedules and Budgets keep constantly changing No objective basis for judging product quality or for solving product or process problems • • Software process is accurately communicated to staff and work activities are carried out according to the planned process. Process improvements are developed through controlled pilot-tests and/or benefit analysis Schedules and Budgets are based on historical performance. There is an objective, quantitative basis for judging product quality and analyzing problems with the product and process
Software Process Concepts
• Software Process Capability
– Range of results expected
• Software Process Performance
– The extent to which results are achieved
• Software Process Maturity
– The extent to which the software process is explicitly defined, managed, measured, controlled and effective – Institutionalization – Two methods to appraise software process maturity
• Software process assessment • Software capability evaluation
• It is a software process maturity framework which provides a roadmap for continuous process improvement. • Guides organizations in selecting process improvement strategies
– by determining current process maturity and – identifying the few issues most critical to the software quality and process improvement.
The Five Levels of Software Process Maturity
• A maturity level is a welldefined evolutionary plateau towards achieving a mature process Each level has a set of goals Achieving each level
– establishes a different component in the software process. – Increase in the process capability of the organization.
The Maturity Levels
• Level 1
– – – – Ad Hoc processes, ineffective planning and reaction-driven systems Crisis – abandon planned procedures & revert to coding and testing Schedules, Budget, Functionality, Product Quality: Unpredictable Software Process Capability: Unpredictable Basic Software Management controls Planning/Managing new projects is based on successes with similar projects Realistic project commitments based on empirical knowledge Project managers track software costs, schedules and functionality Projects standards are defined and followed Software Process Capability: Disciplined
– – – – – –
– Standard Process for developing and maintaining software is documented – Organization-wide training program: to ensure that staff and managers have knowledge and skills to fulfill their assigned roles – Projects tailor the Standard Process to develop their own well-defined process for their unique project requirements – Schedules, Budget, Functionality, Product Quality: Under Control and Tracked – Software Process Capability: Standard and Consistent
The Maturity Levels (contd..)
• Level 4 – Managed Level
– – – – Quantitative quality goals for products and processes Organizational Measurement Program for important software process activities Variation in process performance is controlled to be within acceptable range Software Process Capability: Predictable
Level 5 – Optimizing Level
– Focus on Continuous Process Improvement – Identify weakness and strengthen the process proactively – Perform cost benefit analyses of new technologies and proposed changes to the organization’s software process – Analyze defects to determine their causes – evaluate the software process accordingly – Software Process Capability: Continuous Improving
Visibility in the Software Process
1. A Black Box 2. Visibility on defined intervals – could be project milestones or reviews 3. Tasks in project’s defined process are visible 4. Managers are able to measure the progress and problems – as the software process is instrumented and controlled quantitatively 5. New and Improved ways of building software are tried. Disciplined change.
Process Capability & Performance Prediction
• As Maturity increases the difference between targeted results and actual results decreases
Skipping Maturity Levels
• Every level forms a necessary foundation for the succeeding levels for implementing processes effectively and efficiently. • Processes with out proper foundation fail under stress. • Also, they provide no basis for future improvement. • Consider
– Level 1 org. trying to implement a defined process (Level 3) before a repeatable process (Level 2) is usually unsuccessful as the managers are unable to manage the schedule and cost pressures. – Though it may be possible to define and implement the engineering process, without proper management discipline the engineering process is sacrificed to schedule and cost pressures
Operational Definition of CMM
• • • Except for Level 1, each maturity level is decomposed into several Key Process Areas. Key process areas identify the issues that must be addressed to achieve a maturity level. Every key process area is organized into five common features. These are the key practices, which collectively accomplish the goals of the key process area. When the goals of the key process areas are met regularly across projects, the organization has institutionalized the process capability of the key process area.
Supported Uses of CMM
• Assessment teams use CMM to identify strengths and weaknesses in the organization • Evaluation teams use CMM to identify risks of selecting among different contractors for awarding business and to monitor contracts • Managers and technical staff will use CMM to understand the activities necessary to plan and implement the software process improvement program for their organization • Process improvement groups (SEPG), will use CMM as a guide to help them define and improve software process in their organization
Software Process Assessments and Software Capability Evaluations • Software Process Assessments focus on identifying improvement priorities within an organization’s own software process. Software Capability Evaluations focus on identifying the risks associated with a particular project or contract for building CMM establishes a common frame of reference for performing the software process assessments and evaluations