2 WHAT IS THE CMM? Concept: Model: Guidelines: Basis for Measurement: The application of process management and quality improvement concepts to software development and maintenanceModel:A model for organizational improvementGuidelines:A guide for evolving toward a culture of engineering excellence.Basis for Measurement:The underlying structure for reliable and consistent software process assessments, software capability evaluations, and interim profiles
3 The Management Culture of The Company OBJECTIVES OF CMMThe CMM is an application of Total Quality Management principles to software engineering.Emphasis should be on customer satisfaction.The result should be higher quality software products produced by more competitive companies.To make CMMThe Management Culture of The CompanyTrusted By Customers
4 MATURATY LEVELS FOR PROCESS IMPROVEMENT Based on Continuous Process Improvement: Based on many small, evolutionary steps rather than revolutionary innovations.Plateau: A maturity level is a well-defined evolutionary plateau toward achieving a mature software process.Foundation: Each maturity level provides a layer in the foundation for continuous process improvement.Priority Order: The levels also help an organization prioritize its improvement efforts.
5 LEVEL 1 -- INITIAL Activities Performed by the Organization Activities Performed by the ProjectsResulting Process CapabilityOrganization lacks sound management practicesGood software engineering practices are undermined by ineffective planning and reaction-driven commitment systemsDuring a crisis, projects abandon planned proceduresEven a strong software engineering process cannot overcome the instability created by the absence of sound management practicesSoftware Process Capability is unpredictable because the process is constantly changed or modified as the work progresses (i.e., the process is ad hoc)Few stable processes in evidence
7 LEVEL 2 -- REPEATABLE Activities Performed by the Organization Activities Performed by the ProjectsResulting Process CapabilityEstablishes software project management policies and proceduresInstitutionalizes effective project management processes which allow new projects to repeat successful practices developed on earlier projects, although the specific project’s processes may differMake realistic project commitments based on previous project results and current project requirementsTrack software costs, schedules, and functionality to identify problems meeting commitmentsControl requirements and work products and assure project standards are followedSoftware Process Capability is disciplined because project planning and tracking is stable and earlier successes can be repeatedProject process is under the effective control of a project management system, following realistic plans
8 CMM LEVEL 2Preparationto produceActivityResultsinput toEvaluationto improveThink before you act, and think after you act, just to make sure you did it right.
9 LEVEL 3 -- DEFINED Activities Performed by the Organization Activities Performed by the ProjectsResulting Process CapabilityDocuments the organization’s standard process for developing and maintaining softwareIntegrates project management and software engineering processes; exploits effective software engineering practicesProvides process support (SEPG) and training program to ensure skills developmentProjects tailor the organization’s standard software process to develop their own defined software process for the projectBecause the software process is well defined, management has good insight into technical progress on all projectsSoftware Process Capability is standard and consistent because both software engineering and management activities are stable and repeatableCost, schedule and functionality are under control, and software quality is tracked
10 CMM LEVEL 3 Use your lessons learned. input to Preparation to produce StandardsActivityResultsinput toinput toEvaluationto improveUse your lessons learned.
11 LEVEL 4 -- MANAGED Activities Performed by the Organization Activities Performed by the ProjectsResulting Process CapabilitySets quantitative quality goals for both software products and processesMeasures productivity and quality for important software process activities across all projects as part of an organizational measurement programProvides a foundation for quantitative evaluationProjects achieve control over their products and processes by narrowing the variation in their process performance to fall within acceptable quantitative boundariesThe risks involved in moving up the learning curve of a new application domain are known and carefully managedSoftware Process Capability is predictable because the process is measured and operates within measurable limitsAllows for predictive trends in process and quality within quantitative bounds and allows for corrective action when limits are exceeded
12 CMM LEVEL 4Preparationinput toto forecastto produceStandardActivityResultsinput toinput toEvaluationto improvePredict the results you need and expect and then create opportunities to get those results
13 LEVEL 5 -- OPTIMIZING Activities Performed by the Organization Activities Performed by the ProjectsResulting Process CapabilityEntire organization is focused on continuous process improvement with the goal of defect preventionData is used for cost-benefit analysis of new technology and new process changesInnovations in software engineering practices are transferred to the entire organizationProject teams analyze defects and determine their causesProject teams evaluate processes to prevent known types of defects from recurringSoftware Process Capability is continuously improving because the organization continuously improves the range of capability and process performance of projectsImprovement occurs both by incremental advancement of existing process and by innovations using new technologies and methods
14 CMM LEVEL 5Preparationto forecastinput toto produceStandardActivityResultsinput toinput toEvaluationto improveto improveCreate lessons learned, and use lessons learned to create more lessons learned, and use more lessons learned to create even more lessons learned, and use even more lessons learned to create... etc.
15 CMM FIVE LEVELS High Low 5. Optimization Focus on process improvement Process MaturityInitialUnpredictable andPoorly controlled5. OptimizationFocus on processimprovementContinuouslyImprovingProcessProcess CapabilityInitialUnpredictable andPoorly controlled4. ManagedProcess measuredand controlledPredictableProcessProcess PerformanceManaging ChangeInitialUnpredictable andPoorly controlledStandard,ConsistentProcess3. DefinedProcess characterized,fairly well understoodLowProduct and Process QualityDisciplinedProcessInitialUnpredictable andPoorly controlled2. RepeatableCan repeat previouslyMastered tasksIntegrated Engineering Process1. InitialUnpredictable andPoorly controlledInitialUnpredictable andPoorly controlledProject Management
16 TRANSITION TO A HIGHER LEVEL Target Level 3Current Level 2Transition StatePRODUCTIVITY
17 BENEFITS OF CMM (I)The CMM models improve upon the best practices of previous models in many important ways. CMM best practices enable organizations to do the following:More explicitly link management and engineering activities to business objectivesExpand the scope of and visibility into the product life cycle and engineering activities to ensure that the product or service meets customer expectationsIncorporate lessons learned from additional areas of best practice (e.g., measurement, risk management, and supplier management)Implement more robust high-maturity practicesAddress additional organizational functions critical to its products and servicesMore fully comply with relevant ISO standards
18 BENEFITS OF CMM (II) Win more projects due to customers’ trust Risk mitigation and reducedMake large international projects possibleMake projects success possible when team members dynamically change.
19 BENEFITS OF CMM (III)High cost: training, additional employees for SEPG, writing documents and synchronizing practice and documentsSucceededProjectsCMMLevel12345CostCMMLevel12345
21 CMM LEVEL 2 KEY PROCESS AREA RequirementsManagementSoftwareQualityAssuranceSoftware Project PlanningSoftwareConfigurationManagementSoftwareProject Trackingand OversightSoftwareSubcontractManagementL2
22 REQUIREMENT MANAGEMENT PurposeGoalsTo establish a common understanding between the customer and the software project of the customer’s requirements that will be addressed by the software project1. System requirements allocated to software are controlled to establish a baseline for software engineering and management use2. Software plans, products, and activities are kept consistent with the system requirements allocated to softwareScopeInvolves establishing and maintaining an agreement with the customer on the requirements for the software projectAgreement is the basis for estimating, planning, performing, and tracking the project’s software activitiesL2
23 PROJECT PLANNINGPurposeGoalsTo establish reasonable plans for performing the software engineering and for managing the software project1. Software estimates are documented for use in planning and tracking the software project.2. Software project activities and commitments are planned and documented.3. Affected groups and individuals agree to their commitments related to the software project.ScopeInvolves:o developing estimates for the work to be performedo establishing the necessary commitmentso defining the plan to perform the workPlan provides the basis for initiating the software effort and managing the workL2
24 PROJECT TRACKING AND OVERSIGHTING PurposeGoalsTo provide adequate visibility into actual progress so that management can take effective actions when performance deviates significantly from the plan1. Actual results and performances are tracked against the software plans.2. Corrective actions are taken and managed to closure when actual results deviate significantly from the software plans.3. Changes to software commitments are agreed to by the affected groups and individuals.ScopeInvolves:o tracking and reviewing software accomplishments and results against documented estimates, commitments, and planso adjusting plans based on actual accomplishments and resultsL2
25 QUALITY ASSURANCE Goals PurposeGoalsTo provide management with appropriate visibility into the process being used and the products being built1. Software quality assurance activities are planned.2. Adherence of software products and activities to the applicable standards, procedures, and requirements is verified objectively.3. Affected groups and individuals are informed of software quality assurance activities and results.4. Noncompliance issues that cannot be resolved within the software project are addressed by senior management.ScopeInvolves:o reviewing and auditing the software products and activities to ensure that they comply with the applicable procedures and standardso providing the software project and other appropriate managers with the results of those reviews and auditsL2
26 CONFIGURATION MANAGEMENT PurposeGoalsTo establish and maintain the integrity of the products of the software project throughout the software life cycle1. Software configuration management activities are planned.2. Selected software work products are identified, controlled, and available.3. Changes to identified software work products are controlled.4. Affected groups and individuals are informed of the status and content of software baselines.ScopeInvolves:o identifying configuration items/unitso systematically controlling changes o maintaining integrity and traceability of the configuration throughout the software life cycleL2
27 SUBCONTRACT MANAGEMENT PurposeGoalsTo select qualified software subcontractors and manage them effectively1. The prime contractor selects qualified software subcontractors.2. The prime contractor and the software subcontractor agree to their commitments to each other.3. The prime contractor and the software subcontractor maintain ongoing communications.4. The prime contractor tracks the software subcontractor’s actual results and performances against its commitments.ScopeInvolves:o selecting a software subcontractoro establishing commitments with the subcontractor o tracking and reviewing the subcontractor’s performance and resultsL2
28 CMM LEVEL 3 KEY PROCESS AREA OrganizationProcessFocusOrganizationProcessDefinitionTrainingProgramInter-groupCoordinationPeer ReviewsIntegratedSoftwareManagementSoftwareProductEngineeringL3
29 ORGANIZATION FOCUSPurposeGoalsTo establish the organizational responsibility for software process activities that improve the organization’s overall software process capability1. Software process development and improvement activities are coordinated across the organization.2. The strengths and weaknesses of the software processes used are identified relative to a process standard.3. Organization-level process development and improvement activities are planned.ScopeInvolves:o developing and maintaining an understanding of organization and project software processeso coordinating the activities to assess, develop, maintain, and improve these processesL3
30 ORGANIZATION PROCESS DEFINITION PurposeGoalsTo develop and maintain a usable set of software process assets that improve process performance and provide a basis for cumulative, long-term benefits1. A standard software process for the organization is developed and maintained.2. Information related to the use of the organization’s standard software process by the software projects is collected, reviewed, and made available.ScopeInvolves developing and maintaining the organization’s standard software process and related process assetsThe organization’s standard software process describes the fundamental elements that each project incorporates and tailors to fit the projectL3
31 INTEGRATED SOFTWARE MANAGEMENT PurposeGoalsTo integrate the project’s software engineering and management activities into a coherent, defined software process tailored from the organization’s software process assets1. The project’s defined software process is a tailored version of the organization’s standard software process.2. The project is planned and managed according to the project’s defined software process.ScopeInvolves:o developing the project’s defined software process by tailoring the organization’s standard software processo managing the software project according to this defined software processL3
32 SOFTWARE PRODUCT ENGINEERING PurposeGoalsTo consistently perform a well-defined engineering process that integrates all the software engineering activities to produce correct, consistent software products effectively and efficiently1. The software engineering tasks are defined, integrated, and consistently performed to produce the software.2. Software work products are kept consistent with one another.ScopeInvolves performing the engineering tasks to build and maintain the software using appropriate tools and methodsIncludes requirements analysis, design, coding, integration, and testingL3
33 INTERGROUP COORDINATION PurposeGoalsTo establish a means for the software engineering group to participate actively with the other engineering groups so the project is better able to satisfy the customer’s needs effectively and efficiently1. The customer’s requirements are agreed to by all affected groups.2. The commitments between the engineering groups are agreed to by the affected groups.3. The engineering groups identify, track, and resolve inter-group issues.ScopeInvolves the disciplined interaction and coordination of the project engineering groups with each other to address system-level requirements, objectives, and plansL3
34 TRAINING PROGRAM 1. Training activities are planned. PurposeGoalsTo develop the skills and knowledge of individuals so they can perform their roles effectively and efficiently1. Training activities are planned.2. Training for developing the skills and knowledge needed to perform software management and technical roles is provided.3. Individuals in the software engineering group and software-related groups receive the training necessary to perform their roles.ScopeInvolves:o identifying the training needs of the organization, the projects, and individualso developing and/or procuring training to address these needsL3
35 PEER REVIEWS 1. Peer review activities are planned. PurposeGoalsTo remove defects from the software work products early and efficiently before unit test.To develop a better understanding of the software work products and of defects that might be prevented1. Peer review activities are planned.Defects in the software work products are identified and removed.A matrix of review results is generatedScopeInvolves a methodical examination of work products by the producer’s peers to identify defects and areas where changes are neededL3
36 KEY DIFFERENCES OF LEVEL 1, LEVEL 2 & LEVEL 3 Difference between Level 1 and Level 2: Level 1 is ad hoc and occasionally chaotic; few processes are defined, and success depends on individual effort.Level 2: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.Difference between Level 2 and Level 3: Level 3 encompasses integrated and standardized management and engineering activities; projects tailor the organization’s standard software process to meet their needs.
37 CMM KEY PROCESS AREA CHECKLIST This checklist is intended to focus senior management attention on key process areas in relation to their business goals.A typical use for this checklist would be as follows:Review and gather responses to the checklist as part of a quarterly review meeting with senior management.Identify the priorities indicated for areas rating the highest impact and highest urgency.Assign responsibility for investigating specific actions to address issues in those areas.Review feasibility of actions, and initiate appropriate actions.Critical Questions for each Key Process Area:Are we satisfied with our current performance? (Yes or No)If not satisfied (No) then answer the following:What is the negative impact on the achievement of our business goals? (H M L)What is the urgency for us to take action to address the relevant issues? (H M L)(Next steps: Assign responsibility for investigating specific actions, then review feasibility)
38 CHECKLIST 1 Key Process Area Purpose Requirements Management 23Requirements ManagementEstablishing and maintaining a common understanding between the customer and the project of the customer’s requirements that will be addressed.YesNoHMLSoftware Project PlanningEstablishing reasonable plans for engineering tasks and for managing the project, developing estimates, establishing commitments, and defining the plans.Software Project Tracking and OversightProviding adequate visibility into actual progress so that management can take effective actions when the project’s performance deviates significantly from plan.Software Subcontract ManagementSelecting qualified subcontractors and managing them effectively.Software Quality AssuranceProviding management with appropriate visibility through reviews and audits of products and activities to verify that they comply with applicable procedures.Software Configuration ManagementEstablishing and maintaining the integrity of the products throughout the life cycle, systematically controlling changes to the configuration.
39 CHECKLIST 2 & 3 Key Process Area Purpose Organization Process Focus 123Organization Process FocusEstablishing and maintaining a common understanding between the customer and the project of the customer’s requirements that will be addressed.YesNoHMLOrganization Process DefinitionDeveloping and maintaining process-related documentation and data that improve performance across projects and provide a basis for cumulative long-term benefits to the organization.Training ProgramDeveloping the skills and knowledge of individuals so that they can perform their roles effectively and efficiently, identifying and procuring needed training.Key Process AreaPurpose123Integrated Software ManagementIntegrating the engineering and management activities into a coherent, defined process, and managing the project using this defined process.YesNoHMLSoftware Product EngineeringConsistently performing a well-defined engineering process that integrates all activities to produce correct, consistent products, effectively and efficiently.Intergroup CoordinationEstablishing participation with other engineering groups to establish requirements, plan and manage technical working interfaces, conduct regular reviews and technical interchanges.Peer ReviewsRemoving defects from work products early and efficiently, and as a side-effect, to better understand the products and the defects that might be prevented.
40 CHECKLIST 4 & 5 Key Process Area Purpose 123Quantitative Process ManagementControlling the process performance of the project, identifying the special causes of variation in a measurably stable process, and correcting the circumstances leading to the transient variation.YesNoHMLSoftware Quality ManagementDeveloping a quantitative understanding of the quality of the project’s products and achieving specific quality goals.Key Process AreaPurpose123Defect PreventionIdentifying causes of defects and preventing them from recurring.YesNoHMLTechnology Change ManagementIdentifying beneficial new technologies, tools, methods, processes, and transferring them into the organization in an orderly manner.Process Change ManagementContinually improving the processes, incremental improvements, and innovative improvements, and providing them to the entire organization.
41 ISSUES WITH CMM (I)Focus mostly on activities and supporting artifacts associated with a conventional waterfall process: requirements specifications, documented plans, quality assurance audits and inspections and documented processes and procedures.It does not address evolving results, (i.e., the software product) and associated engineering artifacts (use-case models, design models, source code, or executable code) that capture the real target product.No emphasis on the architecting/design process, assessment process, or deployment process, all of which have proven to be key discriminators for project success.
42 ISSUES WITH CMM (II)CMM overemphasizes peer reviews, inspections, and traditional quality assurance “policing” method. These activities rarely uncover the architecturally significant flaws.Most organizations define their process based strictly on traceability to the CMM for passing an audit, rather than on a complete assessment framework to measure real improvement along project performance dimensions: estimated time to market, probable cost to complete, and predicted quality product.CMM is activity-based, i.e., it does not have an accurate measure of an organization’s current maturity level.
43 CMMI Capability Maturity Method Integration For details refer to the documents in the subfolder CMMI