Process Improvement It is not necessary to change. Survival is not mandatory. » W. Edwards Deming Both change and stability are fundamental to process improvement. » Dennis Ahern Models • Models provide a common set of process requirements that capture the best practices and knowledge in a format that can be used to guide priorities. » CMMI Distilled, Ahern, Clouse, Turner, p5. Basic Model of Improvement • • • • • Observe some difficulty Collect some data Identify the root causes (hypothesis) Develop reasonable solutions (test) Plan and implement the changes Process Improvement Doesn’t Just Happen • many models and buzzwords – SEI – ISO 9000 – CQI – test process improvement – PSP – CMM – Plan-Do-Check-Act – QIP –… Emphasis • high-quality software • finite amount of resources • cost-effective manner Two Observables • Cost: – Main cost in software is time. (Why?) • Quality: – correctness – reliability – robustness – user friendliness – verifiability – maintainability – safety Why is Process Improvement Difficult? • Software development is: – Evolutionary and experimental – Not production – Human based • Software is variable: – Processes – Goals – Content • We lack models: – Needed to to reason about the process and the product Capability Maturity Model (CMM) for Software Capability Maturity Model (CMM) for Software • Process Capability – ability of a process to produce planned results • Software Engineering Institute (SEI) – Carnegie Mellon • 5 Levels • Certification based on audits 5 Stages of CMM for Software • • • • • Level 1: Initial Level 2: Repeatable Level 3: Defined Level 4: Managed Level 5: Optimizing Optimizing Managed Defined Repeatable Initial SEI Capability Maturity Model Optimizing Major improvements in quality and quantity Managed Substantial quality improvements • Comprehensive measurements Defined Achieved foundation for major and continuing progress Repeatable Achieved a stable process with a repeatable level of statistical control Initial • Ad hoc • No process in place Level Focus Initial Heroics Repeatable Basic project management Defined Process standardization Managed Quantitative management Optimizing Continuous process Improvement CMM Maturity Level 1: Initial Characteristics To get to next level • No sound SE management • Initiate project principles in place management • Ad hoc practices • May be successful because of competent manager and team • Activities are not preplanned, but response to crisis • Unpredictable process • Cannot predict time and cost of development Elements of Basic Project Management • • • • • • Software Configuration Management Software Quality Assurance Software Acquisition Management Software Project Control Software Project Planning Software Requirements Management CMM Maturity Level 2: Repeatable Characteristics • Basic SE management practices in place • Planning and management are based on experience with similar products (repeatable) • Track costs and schedules • Identify problems as arise and take immediate corrective action To get to next level • Standardize Processes Process Standardization • Peer Reviews • Project Interface Coordination • Software Product Engineering – methods and technologies – software development process architecture • Integrated Software Management • Organization-level Awareness – Organization Training Program – Organization Process Definition – Organization Process Focus CMM Maturity Level 3: Defined Characteristics • Process for development fully documented • Reviews used to achieve software quality • Introduce CASE Tools To get to next level • Quantitative Management Quantitative Management • Statistical process management – quantify quality and cost parameters • Process database to maintain process data • Assess relative quality of each product CMM Maturity Level 4: Managed Characteristics • Organization sets quality and productivity goals for each project • Continually measure • Statistical quality control in place To get to next level • Support automatic gathering of process data • Use data to analyze and modify the process • Defect Prevention CMM Maturity Level 5: Optimizing Characteristics To maintain level • Statistical quality and • Continue improvement process control techniques and optimization of the are used and guide the process organization • Process has positive feedback loop Other Improvement Process Models-1 Plan-Do-Check-Act (Deming) (Improving single process within an organization) • Plan. Develop plan for effective improvement • Do. The development organization carries out the plan • Check. After process termination, observe the effects of the change or test • Act. Study the results and document the lessons learned. Emphasis on – understanding the principles of the process, – predicting product’s quality – suggest further improvement Other Improvement Process Models-2 Quality Improvement Paradigm (NASA Goddard) (Systematic software development and SE technology validation ) • Characterize project using models and baselines • Set quantifiable improvement goals on basis of relevance to organizing successful project and organization performance improvement • Execute the plan to develop products and provide feedback • Analyze the collected data and information gathered and evaluate the current practices, determine problems, record findings, and make recommendations for improvement • Package the experience in the form of new, updated or refined models. Store them in an experience base so it is available for future projects. Process Improvement Framework Quagmire CMMI: CMM Integrated Reduce Cost: – – – – eliminate inconsistencies between processes Reduce duplication Provide common terminology and style Increase clarity CMMI Principles • Maintain executive support – Strong consistent support is crucial • Pick your targets carefully – Don’t underestimate effort • Leverage best practices – “Steal with pride” • Align process improvement with your business objectives – Improve your business The Model • Required: Statement of Goals – a desirable end state; succinct – Example: Requirements are managed and inconsistencies with plans and products are identified • Expected: Statement of a Practice – the expected means of achieving a goal – every practice maps to exactly one goal – Example: Develop an understanding with the requirements providers on the meaning of the requirements • Informative: 10 types of information components identified (e.g. purpose, reference, typical work products) Goals of the capability levels Level Goal CL 0 No goal CL 1 CL 2 The process supports achievement of specific goals of the process area by transforming identifiable inputs to identifiable outputs The process is institutionalized as a managed process CL 3 The process is institutionalized as a defined process CL 4 The process is institutionalized as a quantitatively managed process The process is institutionalized as an optimizing process CL 5 Level 3 • Defined: For each process area considered, each project in the organization will have a managed process (created under Level 2) that is tailored using standard guidelines. 4 process categories • • • • Process Management Project Management Engineering Support 4 process areas • Process Management – Process Definition – Training • Project Management • Engineering • Support 4 process areas • Process Management • Project Management – Project Planning – Monitoring and Control – Risk Management • Engineering • Support 4 process areas • Process Management • Project Management • Engineering – Requirements Development and Management – V&V – Product Integration • Support 4 process areas • • • • Process Management Project Management Engineering Support – Configuration Management – Measurement and Analysis – Decision Analysis and Resolution Summary: Process improvement • May not be necessary for a given project • May be neglected by some companies • May be necessary for survival of – companies – employees