910 likes | 1.15k Vues
Capability Maturity Model. INTRODUCTION By Basker George. Email: Basker.George@gmail.com. Introduction. Software Organizations employs 7million engineers & generate > $600 billion revenue Growing at an annual rate of > 25%
E N D
Capability Maturity Model INTRODUCTION By Basker George Email: Basker.George@gmail.com
Introduction • Software Organizations employs 7million engineers & generate > $600 billion revenue • Growing at an annual rate of > 25% • The software Industry is viewed as the promising Industry segments having tremendous future potentials. • Hence executing software projects efficiently is of paramount importance to the software Industry.
Introduction • The processes used for executing software projects have major effect on the Quality & Productivity. • Hence we need to Evaluate & Improve the processes used in organization • The CMM(Capability Maturity Model) for software developed by SEI(Software Engineering Institute) is a FRAMEWORK that can be used for improving Quality & Productivity.
What is the Software Process? • A process is a systematic approach performed to achieve a specific purpose. • A software process is the set of activities, methods, practices, and transformations used to develop software and associated products that are released with it. • (e.g., project plans, design documents, code, test cases, and user manuals). • As an organization matures, the software process becomes better defined and more consistently implemented throughout the organization.
CMM • Capability Maturity Model (CMM) • Developed by Software Engineering Institute (SEI) of Carnegie-Mellon University, first introduced in 1987 • Goal • To provide a means by which organizations can appraise their ability to perform their software process successfully, and to provide guidance to improve their process capability • Initially seen as a valuable approach, but questioned over ability to deliver business results. Now supported by body of published results:
CMM Industry Feedback of Raytheon • Raytheon Company is a world leader in developing defense technologies and converting those technologies for use in commercial markets. ... • Raytheonbegan a CMM-based improvement effort in 1988. In 1990, they estimated that they saved $4.48M for an investment of $0.58M giving a return on investment of 7.7. Over a period of four and a half years, mid-1988 to the end of 1992, the company estimated that they had eliminated $15.8M in re-work costs. Over a six year period, 1988 to 1994, they saw a 2.7 times increase in productivity and an improvement in budget accuracy (target/actual) from 40% overruns to +/-3%.
CMM Industry Feedback Motorola • Motorola is a global leader in providing integrated communications solutions andembedded electronic solutions. • Motorola estimate that an organization moving from CMM Level 2 to CMM Level 5 will see an eightfold reduction in defects, an eightfold improvement in cycle time and a threefold increase in productivity
CMM Industry Feedback of HP • Hewlett-Packard’s Software Engineering Systems Division achieved a reduction in cycle time of 46%, a 60% reduction in shipped defects and schedule estimation error reduced to zero over two years May 1994 to May 1996.
Hughes Aircraft • Hughes Aircraft • 1987 level 2, 1990 level 3 • 45K Assessment cost, 400K improvement cost, 2M cost savings, 2 % increased overhead • 5x improvement in estimation
CMM….More Feedback… • In addition, a number of less tangible benefits are reported: • Increased customer focus • Improved ability to react flexibly to change • Increased job satisfaction amongst engineers • Decrease in variability of schedule and cost performance
Global Software Group (GSG) China • GSG China is the first organization to implement SEI CMM in software engineering in Mainland China. • It achieved Level 5 in 2000, making China the 3rd country receiving CMM Level 5 after the US and India. • GSG China has set its goal to become the chosen software solution provider to customers and achieve total customer satisfaction. • Currently there are about 700 R&D staff working in three software centers located in Beijing, Nanjing and Chengdu.
CMM at Infosys • Infosys is a highly successful software company assessed at Level 5 based at Bangalore India, with worldwide development center. • This course describes the processes used for project execution at Infosys & one possible way of implementing CMM • This Course deals with CMM & PROCESS that are used for project execution at Infosys.
Process Based Approach for Project Execution • Main characteristic of a PROJECT are: • Cost, Schedule & Quality • Project is initiated after ESTIMATION of the above • Project is Successful if it meets or Exceeds above expectation • But Analysis of project data shows that • 1/3 rd of projects have cost & schedule overrun of 125% • Possible reasons for project failure are : • Improper Estimation, Loose requirement Management, weak project management, improper risk management, poorly engineered solutions..etc..
Cont… • Other possible reason could be Unclear objective, Bad planning, No project Management methodology, insufficient staff.. • That is, We can call it PROCESS FAILURE • Therefore for a project to be successful, the key parameter is the set of processes followed in the project • Hence if suitable process model are chosen for the project, the chances of project success is extremely high. • Therefore High Q & P should be the twin aim of any Projects • The Organization should also have predictable Q & P • Also Organization should desires continuous improvement in Q&P
Quality & Productivity • Depends on Process, People & Technology • This is known as Quality Triangle or Iron Triangle • Therefore to increase Q&P, we have to Improve Process used by the organization. • The CMM for software deals with Process used in an Organization .
Software Process • They Encapsulate the collective experience (Success & Failure) of an organization. • Use this experience in future projects • Thus the process allows the experience gained to be conferred even to a newcomer • Therefore it is important for an Organization to take considerable effort to capture the experience of the process & improve the process. • Learning & Leveraging experience with process constitute an important aspect of CMM level 3.
Cont.. • If Quantitative information is available about the process capability, then Q&P can be determined unambiguously • Quantitatively managing the process is the focus of LEVEL 4 of CMM
SEI’s Fundamental concepts • Software Process Capability is the range of expected results that are achievable by following the software process. • Software process performance is the actual result achieved in the development of software by following a software process. • Software Process Maturity is the extent to which a Software Process is defined, managed, controlled, measured and effective.
CMM for software • What are the desirable characteristic of an organization processes for executing software? • How can the organization improve the processes for improving the Q&P? • What are the desirable characteristic of the improved processes? • The answer to the above questions is : “PROCESS FRAMEWORK”
PROCESS FRAMEWORK • CMM for software is a framework that focuses on processes for software development. • Framework provide guidance regarding the improvements needed to move from one maturity level to another. • CMM framework describes the key elements of software processes at different levels of maturity. • Specifies the characteristic that the process must have to “qualify” as a process of maturity. • The maturity of the process may be classified into different levels. • Many framework are available for software process • ISO 9001, CMM, Trillium, SPICE & BOOTSTRAP
Why a CMM? • “Silver Bullets” failed • Process, not technology is the key • Projects grossly over schedule/budget • Early 1980s, US DoD misjudged software contractors and suffered. • How can we tell a good contractor from a bad one?
Whence CMM? • The CMM is based on knowledge acquired from software process assessments and extensive feedback from both industry and government • By Dept Of Defence and • SEI (Research & Development center at Carnegie mellon University) • Mark Paulk (project lead for CMM) • Bill Curtis • Mary Beth Chrisis • Charles Weber
What is CMM? • Assessment / Evaluation • What to do not How to do • Determine maturity through 5 levels: • Initial -1 • Repeatable – 2 • Defined – 3 • Managed – 4 • Optimizing - 5
CMM Overview SEI’s Vision:To bring engineering discipline to the development and maintenance of software products Desired Result:Higher quality -- better products for a better pricePredictability -- function/quality, on time, within budget Methodology to Achieve that Desired Result: 2. Identify Desired State:Understand the description of the next Level 1. Identify Current State:Know your current Capability Maturity Level 3. Reduce the Gap:Plan, implement, and institutionalizethe key practices of the next Level.Repeat until continuous optimization is part of the culture.
The CMM Levels High 5 Process Performance Process Capability 4 Process Maturity Low 3 Low 2 Risk 1 High
Level 1 Initial • Chaotic(not organized) • May still deliver quality software • Dependent on “HERO” • Processes are ad hoc(not planned) • Just get it done mentality • Minimal data collected or evaluated
Level 2 Repeatable • Policies for planning and management established • Basic management controls established • Process is stable, results can be repeated • Identified inputs, outputs, constraints • Management needs to be in control first, then technology
Level 3 Defined • Activities with definitions, entry and exit conditions for software and management processes in organization • SEPG – group established to oversee process in organization • Organization process tailored for specific projects • Software quality is tracked • Activities include peer reviews, CASE tool usage, testing standards, and full lifecycle configuration management
Level 4 Measured • Organization sets quantitative quality goals • Productivity and quality are measured • Organization-wide database maintained for planning and evaluation of projects • Processes measure control and variation • Processes predict trends in quality and schedule • Detailed time, cost, and other metrics are collected and used to quantitatively manage software development. • The organization has a quality focus, with tools and training to support development.
Level 5 Optimizing • Entire organization focused on improvement of processes • Organization has mechanisms to identify and correct weaknesses. • Statistical data used to prevent defects • Process improvements may be incremental or innovative • Continuous process improvement is achieved through quantitative management. • Processes such as software inspection, code walkthroughs, automatic metrics collection, and technology review are part of the standard development methodology.
Definitions • KPA- Key Process or Performance Area • KPA – Cluster of related activities that when met,achieve a set of goals for a level. • Goals – signify the scope, boundary and intent of a KPA • Key Practices – satisfy goals of the KPA
KPA’s at different levels • The KPA’s can be considered as the requirement for achieving that maturity • Every KPA’s specifies a group of activities, called key practices, which satisfy the goal of that KPA. • Key practices are organized into various groups called: • Commitment to perform • Ability to perform • Activities performed • Measurement analysis • Verifying implementation
The Key Process Areas for Level 2: Repeatable • Requirements Management(RM) • The purpose of Requirements Management is to establish a common understanding between the customer and the customer's requirements that will be addressed by the software project. • The customer may be interpreted as System Engineering group,Marketing Group or External customer • Goal 1 System requirements allocated to software are controlled to establish a baseline for software engineering and management use. • Goal 2 Software plans, products, and activities are kept consistent with the system requirements allocated to software.
Level 2 KPA : Software project planning(SPP) • The purpose of Software Project Planning is to establish reasonable plans for performing the software engineering and for managing the software project. • Software Project Planning involves developing estimates for the work to be performed, establishing the necessary commitments, and defining the plan to perform the work.
SPP cont… • The software planning begins with a statement of the work to be performed and other constraints and goals that define and bound the software project (those established by the practices of the Requirements Management key process area). • The software planning process includes steps to estimate the size of the software work products and the resources needed, produce a schedule, identify and assess software risks, and negotiate commitments.
SPP Cont… • Iterating through these steps may be necessary to establish the plan for the software project (i.e., the software development plan). • This plan provides the basis for performing and managing the software project's activities and addresses the commitments to the software project's customer according to the resources, constraints, and capabilities of the software project.
SPP Goals… • Goal 1 Software estimates are documented for use in planning and tracking the software project. • Goal 2 Software project activities and commitments are planned and documented. • Goal 3 Affected groups and individuals agree to their commitments related to the software project.
Level 2 : Software Project Tracking and Oversight(SPTO) • The purpose of Software Project Tracking and Oversight is to provide adequate visibility into actual progress, so that management can take effective actions when the software project's performance deviates significantly from the SPP. • Software Project Tracking and Oversight involves tracking and reviewing the software accomplishments and results against documented estimates, commitments, and plans, and adjusting these plans based on the actual accomplishments and results.
SPTO Cont… • A documented plan for the software project (SPP) is used as the basis for tracking the software activities, communicating status, and revising plans. Software activities are monitored by the management. • Progress is primarily determined by comparing the actual software size, effort, cost, and schedule with the SPP when selected software work products are completed or a milestone is reached.
SPTO Cont… • When it is determined that the software project's plans goals are not being met… • corrective actions are taken. • These actions may include • revising the SPP to reflect the actual accomplishments • re-planning the remaining work • or taking actions to improve the performance
SPTO Goals • Goal 1 Actual results and performances are tracked against the software plans. • Goal 2 Corrective actions are taken and managed to closure when actual results and performance deviate significantly from the software plans. • Goal 3 Changes to software commitments are agreed to by the affected groups and individuals.
Level 2: Software Subcontract Management(SSM) • The purpose of Software Subcontract Management is to select qualified software subcontractors and manage them effectively. • Software Subcontract Management involves selecting a software subcontractor, establishing commitments with the subcontractor, and tracking and reviewing the subcontractor's performance and results. • These practices cover the management of a software (only) subcontract, as well as the management of the software component of a subcontract that includes software, hardware, and possibly other system components.
SSM Cont… • The subcontractor is selected based on its ability to perform the work. • Many factors contribute to the decision to subcontract a portion of the prime contractor's work. • Subcontractors may be selected based on strategic business alliances, as well as technical considerations. • The practices of this KPA address the traditional acquisition process associated with subcontracting a defined portion of the work to another organization.
SSM Cont… • When subcontracting, a documented agreement covering the technical and nontechnical (e.g., delivery dates) requirements is established and is used as the basis for managing the subcontract. • The work to be done by the subcontractor and the plans for the work are documented. • The standards that are to be followed by the subcontractor should be compatible with the prime contractor's standards.
SSM Cont… • The software planning, tracking, and oversight activities for the subcontracted work are performed by the subcontractor. • The prime contractor ensures that these planning, tracking, and oversight activities are performed appropriately and that the software products delivered by the subcontractor satisfy their acceptance criteria. • The prime contractor works with the subcontractor to manage their product and process interfaces.
SSM Goals • Goal 1 The prime contractor selects qualified software subcontractors. • Goal 2 The prime contractor and the software subcontractor agree to their commitments to each other. • Goal 3 The prime contractor and the software subcontractor maintain ongoing communications. • Goal 4 The prime contractor tracks the software subcontractor's actual results and performance against its commitments