The Concept of Capability Maturity Model (CMM) Magister Teknologi Informasi Fakultas Ilmu Komputer Universitas Indonesia Capability Maturity Model (CMM) n Facts: n n n Fred Brooks: no technological “silver bullet” to rescue software crisis. In software organization, talented people are important, and they are supported by a good working environment. CMM bukanlah software life cycle model. 2 Capability Maturity Model (CMM) n n n 1986: Process Maturity Model Watts S. Humphrey 1991: Capability Maturity Model n n Organization-wide improvements Terbaru: Personal Software Process (PSP) n Software engineers are taught to improve their personal work styles. 3 Software Engineering Institute (SEI) n n n Dibentuk 1984, berlokasi di Carnegie Mellon University (CMU). Didanai oleh U.S. Department of Defense. Tujuan semula: meningkatkan kualitas perangkat lunak (militer) dengan mengevaluasi proses dari kontraktor yang mengerjakannya dan memberikan penghargaan kepada kontraktor yang menunjukkan level proses yang matang. 4 Capability Maturity Model (CMM) n Underlying the CMM; n n The belief that the use of new software techniques will not in itself result in increased productivity and profitability, because the cause of our problems is how we manage the software process. CMM assists organizations in providing the infrastructure for a disciplined and mature software process. 5 Capability Maturity Model (CMM) n The improved process should result in better quality software and fewer software projects that suffer from time and cost overruns. 6 Terminologi pada CMM n n Process: Terminologi ini dipergunakan untuk menjabarkan kesatuan antara orang, metoda, dan alat bantu yang dipergunakan untuk menghasilkan perangkat lunak. Software Engineering Process is defined as the system of all tasks and the supporting tools, standard, methods, and practices involved in production and evolution of software product throughout the software life cycle. 7 Software Process Maturity Level n Pengembangan software process tidak bisa dilakukan dalam sekejap, oleh karenanya CMM memberikan tingkatan yang bisa dicapai secara bertahap oleh pengembang perangkat lunak. 8 Software Process Maturity Level Process Control: Continuosly improving process Process Measurement: Managed Predictable Process Process Definition: Standard, consistent Defined (3) process Basic Mgt Control: Disciplined Repeatable (2) Process Initial (1) Optimizing (5) (4) Ad hoc process 9 CMM levels related to Productivity, Quality and Risk Process Control: Continuosly improving Optimizing (5) process Process Measurement: Managed (4) Predictable Process Productivity & Quality Process Definition: Standard, consistent Defined (3) process Basic Mgt Control: Repeatable (2) Disciplined Process Initial (1) Ad hoc process Risk 10 CMM: Initial Level n Characterized as: n n Ad hoc process, no sound software engineering practices Without formal procedure, cost estimates, project plan Enough of this design stuff!! We’re behind schedule!! Let’s start coding 11 CMM: Initial Level n Characterized as: n n n n n Tools, if they exist, are not well integrated. Change control is nonexistent. Success generally depends on the efforts of individuals, not the organization. As the staff changes, so does the process. Usually time and cost overruns. 86% of the American software organization in this level (early survey). 12 CMM: Repeatable Level n n Basic software project management practices are in place Project control have been established over: n n n n n Quality assurance Change control Cost, and schedule Planning and management techniques are based on experience with similar products; hance the name repeatable. Measurements on costs and schedules. 13 CMM: Repeatable Level n n n Enables earlier successes to be repeated. The organization has achieved a stable process. Managers identify problems as they arise and take immediate corrective action to prevent them from becoming crisis. 16% of the American software organization in this level (SEI survey in 1991). 14 CMM: Defined Level n n n The organization has defined the process as a basis for consistent implementation and better understanding. The process of software production is fully documented.Managerial and technical aspects of the procfess are clearly defined, and continual efforts are made to improve the process. Reviews are used to achieve software quality. 15 CMM: Defined Level n n A Software Engineering Process Group (SEPG) has been established, to lead the improvement effort, keep management informed on progress, and facilitate introducing other software engineering methods. 1% of the American software organization in this level. 16 CMM: Managed Level n n n The organization has initiated comprehensive process measurements and analysis. Requires that measures of software process and product quality be collected so that process effectiveness can be determined quantitatively. Statistical quality control are in place. 17 CMM: Managed Level n n The organization should support the automatic data gathering process and economically technology investment justification. A process database and adequate resources are needed. 18 CMM: Optimizing Level n n n Goal: continuous process improvement. Statistical quality and process control techniques are used to guide the organization. The knowledge gained from each project is utilized in future projects. Positive feedback loop, resulting in a steady improvement in productivity and quality. 19 Table 1: Industry Distribution across maturity levels (1995) CMM Level Distribution 1 Initial 70% 2 Repeatable 15% 3 Defined <10% 4 Managed <5% 5 Optimizing <1% (Walker Royce, Software Project Management: A Unified Framework, Addison Wesley, 1998, p 364) 20 Key Process Area (KPA) n n Untuk setiap level maturity, SEI telah menyiapkan sekumpulan Key Process Area (KPA) sebagai acuan untuk naik ke level berikutnya. SEI juga telah membuat kuesionerkuesioner untuk melakukan assessment pada level mana sebuah organisasi berada. 21 Key Process Area (KPA) n Level 2 n n Requirements Management, Software Project Planning, Software Project Tracking and Oversight, Software Subcontract Management, Software Quality Assurance, Software Configuration Management. Level 3 n Organizational Process Focus, Organization Process Definition, Training Program, Integrated Software Management, Software Product Engineering, Intergroup Coordination, Peer Reviews. 22 Key Process Area (KPA) n Level 4 n n Process Measurement and Analysis, Quality Management, Defect Prevention. Level 5 n Technology Innovation, Process Change Management. 23 Software Capability Evaluation (SCE) n n n SCE biasanya digunakan untuk mengkaji level maturity sebuah organisasi. SCE berusaha mengkaji apakah sebuah organisasi ‘says what it does and does what it says’ dengan mengevaluasi software process organisasi (say what you do) dan implementasinya di proyek (do what you says). Evaluasi dilakukan dengan menggunakan kerangka kerja KPA. SCE dilakukan dengan melakukan analisis rinci, wawancara dsb., awalnya biasanya menggunakan SEI Maturity Questionnaire. 24 Project Performance Expectations Level 5 Level 4 Level 3 Level 2 Level 1 Performance •Cost •Schedule •Quality Expected Trend Successive Projects 25 Project Performance Expectations n Rifkin melakukan model prediksi untuk program pemrosesan data 200.000 baris dengan menggunakan data dari 1300 proyek. CMM Level Duration (Calendar Months) Effort (Person Months) Faults Detected during Development Faults Delivered to Client and Installed Total Cost of Development Level 1 29.8 593.5 1,348 61 $5,440,000 Level 2 18.5 143.0 328 12 $1,311,000 Level 3 15.2 79.5 182 7 $728,000 Level 4 12.5 42.8 97 5 $392,000 Level 5 9.0 16.0 37 1 $146,000 (S.Rifkin, Usenet-posting on comp.software-eng, March 1, 1993) 26 Implementasi n n Does implementing CMM lead to increased profitability? Beberapa contoh: n Software Engineering Division of Hughes Aircraft in Fullerton, California. Menghabiskan dana $500.000 antara tahun 1987-1990 untuk kegiatan assessments dan improvement. Dalam kurun waktu 3 tahun tsb, naik dari level 2 ke level 3. Konsekuensinya, Hughes Aircraft memperkirakan annual savings sebesar $2 million (Decreased overtime hours, fewer crises, improved employee morale, lower turnover). n (W.S.Humphrey, T.R Snider, and R.R Willis, Software Process Improvement at Hughes Aircraft, IEEE Software July 1991, p 11-23) 27 Implementasi n Contoh lainnya: n Equipment Division at Raytheon meningkat dari level 1 (1988) ke level 3 (1993). Produktivitas meningkat dan keuntungan sebesar $7.70 untuk setiap dollar yang diinvestasikan dalam rangka process improvement. (R. Dion, Process Improvement and the Corporate Balance Sheet, IEEE Software July 1993, p 28-35) n Schlumberger juga punya cerita sukses sama. (H. Wohlwend and S. Rosenbaum, Software Improvements in an International Company, Proceedings of the 15th International Conference on Software Engineering, Baltimore, MD, May 1993, p 212-220) 28 Implementasi n U.S Air Force pada tahun 1998 telah menetapkan bahwa organisasi pengembang perangkat lunak yang ingin menjadi kontraktor Air Force harus telah mencapai level 3. 29