Software Engineering Management Course # CISH-6050 Lecture 2: Software Process Maturity Convener: Houman Younessi 05/14/2012 AGENDA • Software Process Maturity - Need for Process Maturity? - Maturity Concepts and Origins Software Maturity Models - Frameworks Quagmire - Standards vs. Capability Maturity Models 2 CISH-6050 - Software Engineering Management AGENDA … • Standards - Software Systems Engineering Quality Measurements Six Sigma SPICE In Class Team Assignment 3 CISH-6050 - Software Engineering Management Software Process Maturity What is it? Why do it? 4 CISH-6050 - Software Engineering Management Software Process Maturity … • A need for Process Maturity, from SW-CMM V1.1 - Two decades of unfulfilled promises about productivity & quality gains from applying new software methodologies & technologies - Industry & government organizations realize fundamental problem is inability to manage the software process 5 CISH-6050 - Software Engineering Management Software Process Maturity … - Even in undisciplined organizations, some individual software projects produce excellent results - When such projects succeed, generally through the heroic efforts of a dedicated team vs. through repeating the proven methods of an organization with a mature software process 6 CISH-6050 - Software Engineering Management Software Process Maturity … - Success relying on specific individuals provides no basis for long-term productivity & quality improvement throughout an organization - Continuous improvement occurs through focused & sustained effort in building a process infrastructure of effective software engineering and management practices 7 CISH-6050 - Software Engineering Management Software Process Maturity … • Characteristics of an Immature Software Organization - Software process improvised Software process not always followed Reactionary vs. planned Fire fighting mode Quality & functionality compromised to make schedule - Difficult to predict product quality - Schedules and budgets routinely exceeded 8 CISH-6050 - Software Engineering Management Software Process Maturity … • Characteristics of a Mature Software Organization - Organization-wide processes communicated to all staff - Work done and tracked according to planned process - Process improvement where necessary - Project quality managed & monitored - Schedules & budgets are realistic and usually achieved 9 CISH-6050 - Software Engineering Management Process Maturity Concepts • Software Process Capability - Range of expected results that can be achieved by following a software process - Software process capability of an organization provides one means of predicting the most likely outcome to be expected from the next software project the organization undertakes 10 CISH-6050 - Software Engineering Management Process Maturity Concepts … • Software Process Performance - Represents actual results achieved by following a software process - Based on the attributes of a specific project and the context within which it is conducted, the actual performance of the project may not reflect the full process capability of the organization 11 CISH-6050 - Software Engineering Management Process Maturity Concepts … • Software Process Maturity - Extent to which a specific process is explicitly defined, managed, measured, controlled, and effective - Implies potential for growth in capability - Indicates the richness of an organization's software process & the consistency with which it is applied in projects throughout the organization 12 CISH-6050 - Software Engineering Management Process Maturity Concepts … • Institutionalization - Building infrastructure & corporate culture that supports the methods, practices, and procedures of the business so they endure after those who originally defined them have gone 13 CISH-6050 - Software Engineering Management Process Maturity How Process Maturity Started 14 CISH-6050 - Software Engineering Management Process Maturity • Start of Process Maturity - Software process management objectives include producing products according to a plan, while simultaneously improving the organization to produce better products - These are also the basic principles of Statistical Process Control (SPC) - A process is under statistical process control if its future performance is predictable within established statistical limits 15 CISH-6050 - Software Engineering Management Process Maturity … • W. E. Deming - Introduce the concept of SPC - Worked with Japanese industry after World War 2 to improve quality - Japanese industry committed to continuous process improvement for many years - SPC contributed largely to the quality of Japanese manufactured goods 16 CISH-6050 - Software Engineering Management Process Maturity … • SPC Methodology - Basis - measuring product defects and relating these defects to the process - Process is improved with goal of reducing the number of defects - Process is improved until it is repeatable - Process is then standardized and further improvement cycles begin 17 CISH-6050 - Software Engineering Management Process Maturity … • SPC Application - With manufacturing, process and product relationship is very obvious Improving process to remove defects in the manufacturing process will produce a better product - Relationship less obvious with intangible products like software Dependent on an intellectual process which can not be automated 18 CISH-6050 - Software Engineering Management Process Maturity … Watts Humphrey on SPC: "While there are important differences, these [SPC] concepts are just as applicable to software as they are to producing consumer goods like cameras, television sets, or automobiles." 19 CISH-6050 - Software Engineering Management Intellectual Product Quality With Intellectual products like software, where quality is principally dependent on design, four factors affect product quality Development Technology Process Quality Product Quality People Quality Cost, Time, Schedule 20 CISH-6050 - Software Engineering Management Intellectual Product Quality … • Example: Very large systems made up of subsystems, which are developed by different teams - Factor determining product quality will probably be the software process - Why Process Quality factor rather than the other 3 factors? 21 CISH-6050 - Software Engineering Management Intellectual Product Quality … • Example: For smaller teams, with only few team members - The quality of the development team (i.e. people quality factor) is more important than the development process used. - Why People Quality factor rather than the other 3 factors? 22 CISH-6050 - Software Engineering Management Intellectual Product Quality … • Product Quality Factors affecting productivity - Smaller teams Development Technology Developers spend good portion of time in development activities Good development tools affect productivity 23 CISH-6050 - Software Engineering Management Intellectual Product Quality … - Larger teams Software Process Members spend less time developing & more time communicating and understanding other parts of the system Basic level of development technology essential for information management 24 CISH-6050 - Software Engineering Management Intellectual Product Quality … • For all projects, regardless of size, Cost, Time, and Schedule are key quality factors - Under budgeted Unrealistic schedules Insufficient resource Inadequate resource 25 CISH-6050 - Software Engineering Management Intellectual Product Quality … • Process improvement to become a mature development organization - Assess the organization's current process Develop goal of desired process capability Determine where to improve Produce a plan to accomplish the actions Commit resources and funding for the plan Make improvements Repeat the improvement process 26 CISH-6050 - Software Engineering Management The Frameworks Quagmire Thoughts on the Frameworks Quagmire? 27 CISH-6050 - Software Engineering Management Source: S. A. Sheard, "Evolution of the Frameworks Quagmire", IEEE Computer, July 2001, p. 97. 28 CISH-6050 - Software Engineering Management The Frameworks Quagmire • Elements of the Frameworks Quagmire - Software Capability Maturity Models Systems Engineering Maturity Models Software Standards Systems Engineering Standards Measurements Standards Quality Standards 29 CISH-6050 - Software Engineering Management The Frameworks Quagmire … • Three ways to create a standard: 1. De facto – free interplay of market forces; example: MS Windows 2. Government body – example: DoD standards for the US 3. Voluntary consensus – established by standard setting organization; example: ISO, ANSI, IEEE 30 CISH-6050 - Software Engineering Management The Frameworks Quagmire … • Voluntary consensus organizations: - ISO - International Standards Organization: Non gov’t org established in 1947 Established to improve international communication and trade 160 Technical committees - ANSI - American National Standards Institute: Represents US in ISO Carries out standards activities 31 CISH-6050 - Software Engineering Management The Frameworks Quagmire … • Voluntary consensus organizations: - IEEE – Institute of Electrical and Electronics Engineers: Professional society Active with Telecom and Computer standards activities 300,000 members world wide 530+ currently active standards 32 CISH-6050 - Software Engineering Management The Frameworks Quagmire … • Standards vs Capability Models - Both describe good systems/software engineering, but differently: Standards must go through a defined industry approval process to meet a nation's guidelines, such as those set by ANSI Capability models can be created by anyone with resources 33 CISH-6050 - Software Engineering Management The Frameworks Quagmire … - What not how: Both focus on processes and related activities (what), not on methods or tools (how) - Purpose: Capability Models provide a way to evaluate systems or SE capability US Military standards originally supported contracts to aid the government in utilization of consistent processes by contractors 34 CISH-6050 - Software Engineering Management The Frameworks Quagmire … - Lifecycle: Capability models don’t prescribe a life cycle, but rather applies to any system life-cycle Standards may prescribe a life-cycle - Number of process elements Capability models have 18 or 19 Most standards have less than 10 35 CISH-6050 - Software Engineering Management The Frameworks Quagmire … • Standards and Models distinction can blur: - EIA/IS 731 is SE Capability Model submitted as standard - Model heavily tied to existing standards EIA 632 and IEEE 1220 - Two consistent SE standards EIA 632 – What to do in SE systems EIA/IS 731 – How to measure and improve the SE systems capability 36 CISH-6050 - Software Engineering Management The Frameworks Quagmire Software Standards 37 CISH-6050 - Software Engineering Management Quagmire: Software Standards • MIL-STD-498 Created in 1994 by US Defense Department to integrate: 1. DOD-STD-2167A Software development 2. DOD-STD-2168 Software quality 3. DOD-STD-7935A Documentation requirements 38 CISH-6050 - Software Engineering Management Quagmire: Software Standards … • J-STD-016 Demilitarized version of MIL-STD-498: 1. Released by joint IEEE and (EIA) committee 2. Based on MILSTD-498 3. Limited changes 39 CISH-6050 - Software Engineering Management Quagmire: Software Standards … • ISO/IEC 12207 Jointly released in 1995 by ISO and IEC 1. Standard for Information Technology software life-cycle processes 40 CISH-6050 - Software Engineering Management Quagmire: Software Standards … • IEEE/IEA 12207 Jointly created by IEEE and EIA work group 1. Based on ISO/IEC 12207 2. Supersedes MIL-STD-498 and J-STD-016 41 CISH-6050 - Software Engineering Management Quagmire: Software Standards … • RTCA DO -178B Software Considerations in Airborne Systems and Equipment Cert. 1. Addresses aviation software systems safety 2. Developed independently of other frameworks 42 CISH-6050 - Software Engineering Management Quagmire: Software Standards … • Summary – Four Software Standards in Quagmire: 1. IEEE/EIA 12207 2. ISO/IEC 12207 3. RTCA DO-178B 4. SPICE (To be discussed) 43 CISH-6050 - Software Engineering Management The Frameworks Quagmire System Engineering Standards 44 CISH-6050 - Software Engineering Management Quagmire: SE Standards • MIL-STD-499B - Submitted in May, 1992 by the Department Of Defense: 1. Total systems approach for developing defense systems 2. Industry never accepted these standards 3. DOD Cancelled in 1993 45 CISH-6050 - Software Engineering Management Quagmire: SE Standards … • EIA/IS 632 - Approved as an Interim Standard (IS) in December, 1994 : 1. Total systems approach for developing defense systems 2. EIA sponsored a small group to make minor wording changes to MIL-STD-499B 46 CISH-6050 - Software Engineering Management Quagmire: SE Standards … • IEEE 1220 - Released as trial-use standard in 1994 & re-released as full standard in 1998 : 1. Created at the same time as EIA/IS 632 2. Contains a more commercial life-cycle and less military terminology 47 CISH-6050 - Software Engineering Management Quagmire: SE Standards … • EIA 632 - Released in January, 1999: 1. Bears little resemblance to the EIA/IS 632 2. Defines 13 processes and 34 requirements for engineering a system 3. Can be applied to any enterprise based life cycle phase to engineer system 48 CISH-6050 - Software Engineering Management Quagmire: SE Standards … • ISO/IEC 15288 – 1. Addresses both systems engineering and management (business) processes 2. Focuses on “system” vs. “component” 49 CISH-6050 - Software Engineering Management Quagmire: SE Standards … • Summary – 5 Systems Engineering standards in quagmire: - MIL-STD 499B, EIA/IS 632, IEEE 1220, EIA 632, ISO/IEC 15288 50 CISH-6050 - Software Engineering Management The Frameworks Quagmire Quality Standards 51 CISH-6050 - Software Engineering Management Quagmire: Quality Standards • Malcom Baldridge National Quality Award: - Established in 1987 - Quality standard and way of comparing org’s quality practices - Practices in seven categories 52 CISH-6050 - Software Engineering Management Quagmire: Quality Standards … • ISO 9000 Series – Set of standards and guidelines: - Released in 1994 - Originally developed for manufacturing environment - Not written for a specific industry or business 53 CISH-6050 - Software Engineering Management Quagmire: Quality Standards … • ISO 9000 Series: - Q9000 – American Society for Quality’s version of ISO 9000 - TL9000 – Telecom’s adaptation of ISO 9000 54 CISH-6050 - Software Engineering Management Quagmire: Quality Standards … • ISO 9000 Benefits: - Product Registration Establishes foundation of quality Increased productivity Consistency Improved competitiveness Customer demand Corporate image 55 CISH-6050 - Software Engineering Management Quagmire: Quality Standards … • ISO 9000 for Software Development: - ISO 9000 – Quality systems - ISO 9001 – QA in design/dev, production, installation, servicing - ISO 9002 – QA in production & installation - ISO 9003 – QA in final inspection & test - ISO 9004 – Quality management and systems elements – provides guidance on ISO 9001 - 9003 56 CISH-6050 - Software Engineering Management The Frameworks Quagmire Measurement Standards 57 CISH-6050 - Software Engineering Management Quagmire: Measurement Standards • Practical Systems & Software Measurements (PSM) • ISO/IEC 15939 • Six Sigma 58 CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma • Example Six Sigma Benefits: - Raytheon Aircraft saved $500K from a single project - Textron saved $5M in six months - Fidelity Wide Processing expects to deliver $6M - $8M in cost reductions in 2003 - In 1997, Six Sigma delivered more than $300M to GE operating income - In 1998, financial benefits of Six Sigma at GE doubled to over $600M 59 CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma … • What is Six Sigma? - Started in manufacturing in Motorola in the 1980’s - Defect reduction methodology - Focuses on quality of the customer experience - Improves profitability - Each sigma is a deviation from the ideal level of operation - Fewer defects as sigma level increases 60 CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma … Six Sigma and cost of quality: Sigma % Accurate Defects Per Million Output Cost of Quality 1 31 690,000 N/A 2 69.1 308,537 N/A 3 93.32 66,807 4 99.379 6,210 25% - 40% of Sales 15% - 25% of Sales (Industry Avg) 5 99.9767 233 6 99.99966 3.4 61 5% - 15% of Sales <1% of Sales CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma … • Is 99% Accurate close enough? - 117,000 pieces of first class mail lost per hour - 800,000 mishandled personal checks each day - 23,087 lemons among new computers shipped each month - 7.2 hours per month without electricity 62 CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma … • Applying Six Sigma Breakthrough Strategy – 8 stages: - Recognize Define Measure Analyze Improve Control Standardize Integrate 63 CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma … • The 8 stages are applied across the organization on three levels: 1. Business Level 2. Operations Level 3. Process Level • Example: Recognize … - Business – true state of business - Operations – operational issues that link to business systems - Process – functional problems that link to operational issues 64 CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma … • Six Sigma Players: - Champions – Exec. Leader champions Six Sigma across orgs & ensures all connected - Master Black Belts – In house experts for disseminating Breakthrough Strategy knowledge throughout organization - Black Belts – Apply Six Sigma Breakthrough Strategy tools and knowledge to projects - Green Belts – Employees who execute Six Sigma as part of their overall job 65 CISH-6050 - Software Engineering Management Quagmire: Msmt Stds – Six Sigma … • Is Six Sigma for everyone? - Metrics/Measurements are key and must be properly utilized by the organization - Smaller companies may take longer to realize benefits of Six Sigma, because it might take them longer to produce 1M products - If organization has had extensive IT cuts, might be difficult to fully embrace Six Sigma and effectively use it - Need executive championship, top down 66 CISH-6050 - Software Engineering Management The Frameworks Quagmire Software Standard: SPICE 67 CISH-6050 - Software Engineering Management Quagmire: SPICE • ISO/IEC TR 15504 SPICE: - Software Process Improvement Capability dEtermination (SPICE) - Standard for Software Process Assessment 68 CISH-6050 - Software Engineering Management Quagmire: SPICE … • First goal achieved in June, 1995 with release of version 1: - Draft International Standard for software process assessment - Worked to revise technical report to be ultimate publication as full standard - Evolved to include process evaluations - SPICE has reference model that can be replaced by models like CMM 69 CISH-6050 - Software Engineering Management Quagmire: SPICE … • SPICE Trials: - Empirical trials designed to validate the developing standard – coverage, usability, applicability - Provide evidence of benefits of standard - Trials conducted in 3 phases Design and usability testing of core Product integration & repeatability testing Validation of overall SPICE goals 70 CISH-6050 - Software Engineering Management Quagmire: SPICE … • Benefits for Participants in the SPICE Trials: - Influence the emerging standard Customized benchmarking Early access to SPICE trial results Support in conducting assessments 71 CISH-6050 - Software Engineering Management Quagmire: SPICE … • SPICE Trial Phase 1: - Goal: Validate initial working drafts in SPICE project - Tested key components of SPICE document set - 35 trials conducted in Europe, Canada, and Pacific Rim - Recommendations to product set prior to starting Phase 2 of trials 72 CISH-6050 - Software Engineering Management Quagmire: SPICE … • SPICE Trial Phase 2: - Commenced in September, 1996 - Provided further experience feedback on using SPICE - Several hundred assessments conducted - Focus on evaluating usability, repeatability, portability of framework - Results finalized in October, 1998 - Recommendations made 73 CISH-6050 - Software Engineering Management Quagmire: SPICE … SPICE Process Assessment 74 CISH-6050 - Software Engineering Management Quagmire: SPICE … SPICE Documentation Suite 75 CISH-6050 - Software Engineering Management Quagmire: SPICE … • SPICE Reference Model: - Two dimensional reference model defined by SPICE: 1. Process dimension (base practice) which includes essential activities of a specific process 2. Process Capability dimension (generic practice) which is characterized by attributes applicable to any process; needed to improve capability 76 CISH-6050 - Software Engineering Management SPICE Reference Model • 5 Base Practices: 1. Customer-Supplier (CUS) - processes that directly impact the customer 2. Engineering (ENG) - processes that directly affect software product 3. Project (PRO) - processes which establish the project 4. Support (SUP) - processes which enable & support perf. of other processes 5. Organization (ORG) - processes which establish business goals of the org 77 CISH-6050 - Software Engineering Management SPICE Reference Model … • 5 Process Categories contain 35 Process Areas and 201 Base Practices: 1. CUS – 8 process areas; 39 base practices 2. ENG - 7 process areas; 32 base practices 3. PRO – 8 process areas; 50 base practices 4. SUP – 5 process areas; 32 base practices 5. ORG – 7 process areas; 48 base practices 78 CISH-6050 - Software Engineering Management SPICE Reference Model … • Process Category Nomenclature: - PC.PR.PT PC = 3 character Process Category PR = Process Number within Process Category PT = Base Practice within Process Category • Example: ENG.3.1 = Engineering, process 3 (develop software design), base practice 1 (develop architecture design) 79 CISH-6050 - Software Engineering Management SPICE Reference Model … • Six Capabilities in SPICE Model: - Level 0 – Not Performed No identifiable work products - Level 1 – Performed Informally Performance not rigorously planned & tracked Performance depends on individual Identifiable work products 80 CISH-6050 - Software Engineering Management SPICE Reference Model … - Level 2 – Planned and Tracked Performance according to specified procedure is verified Work products conform to specified standards and requirements - Level 3 – Well Defined Base practices performed according to well defined process using approved, tailored version of standard documented process 81 CISH-6050 - Software Engineering Management SPICE Reference Model … - Level 4 – Quantitatively controlled Detailed measures of performance are collected and analyzed Quantitatively understood & managed - Level 5 – Continuously Improving Quantitative process effectiveness and performance efficiency goals are established Based on organization business goals 82 CISH-6050 - Software Engineering Management SPICE Reference Model … • Capability levels have 13 Common Features (CF) and 25 Generic Practices (GP) applicable to all process categories: - Level 1 – 1 CF Level 2 – 4 CF; 12 GP Level 3 – 2 CF; 5 GP Level 4 – 4 CF; 3 GP Level 5 – 2 CF; 5 GP 83 CISH-6050 - Software Engineering Management SPICE Reference Model … • Capability Level Nomenclature: - CL.CF.PT CL = Capability Level Number CF = Common Feature Number within the capability level PT = Generic Practice within Common Feature • Example: 2.3.1 = Capability Level 2 (Planned and Tracked), Common Feature 3 (Verify Performance), Generic Practice 1 (Verify Process Compliance) 84 CISH-6050 - Software Engineering Management SPICE Reference Model … SPICE Model Architecture – Process & Capability 85 CISH-6050 - Software Engineering Management SPICE Reference Model … Combining Process & Capability Architectures 86 CISH-6050 - Software Engineering Management Lecture 2 Recap: Process Maturity • Software Process Maturity • Software Maturity Models - Frameworks Quagmire • Standards - Software, Systems Engineering, Quality, Measurements - Six Sigma • SPICE • In Class Team Assignment 87 CISH-6050 - Software Engineering Management References • M. Paulk, B. Curtis, M. B. Chrissis, C. V. Weber, "Capability Maturity Model for Software", Version 1.1, Software Engineering Institute, Carnegie Mellon University, February, 1993. Available at http://www.sei.cmu.edu/publications/documents/93.reports/93. tr.024.html • ISO/IEC TR 15504:1998 - Software Process Assessment (SPICE) documentation suite. Available at http://www.sqi.gu.edu.au/spice/suite/download.html • S. A. Sheard, "Evolution of the Frameworks Quagmire", IEEE Computer, July 2001, pp. 96-98. Available at http://www.software.org/pub/externalpapers/Evolution_Frame works_Quagmire.pdf 88 CISH-6050 - Software Engineering Management References • S. A. Sheard, J. G. Lake, "Systems Engineering Standards and Models Compared", Proceedings of the International Council on Systems Engineering, Vancouver, British, Columbia, 1998. Available at http://www.software.org/pub/externalpapers/9804-2.html • W. S. Humphrey, Managing the Software Process, AddisonWesley, Reading, MA, 1989 • I. Sommerville, Software Engineering, 5th ed., AddisonWesley, Reading, MA, 1995 89 CISH-6050 - Software Engineering Management References • D. B. Simmons, N. C. Ellis, H. Fujihara, W. Kuo, Software Measurement: A Visualization Toolkit for Project Control and Process Improvement, Prentice Hall PTR, Upper Saddle River, NJ, 07458, 1998 • M. Harry, R. Schroeder, Six Sigma, Doubleday, New York, NY, 10036, 2000 • T. Mayor, “Targeting Perfection”, CIO Magazine, Vol. 17, No. 5, December 1, 2003, pp. 62-70. Also available at http://www.cio.com/archive/120103/sigma.html 90 CISH-6050 - Software Engineering Management