An overview of Management’s Role in Achieving Predictable Software Development Q Software Quality Consulting Inc. Steven R. Rakitin Consulting Training Quality Systems Phone: Fax: www.swqual.com info@swqual.com President 508.529.4282 508.529.7799 Copyright ©2001 Software Quality Consulting Inc. Slide 1 Topics • Motivation – Economics of Software Development • Balancing Quality, Features, and Schedule – Management’s Role • Balancing People, Process, and Product – Management’s Role Copyright ©2001 Software Quality Consulting Inc. Slide 2 Motivation Software Development is like the stock market You’d be way ahead of the game if only you could predict what will happen Copyright ©2001 Software Quality Consulting Inc. Slide 3 Motivation • Many software development organizations lack: – Discipline – Credibility – Predictability • As a result, these organizations are unable to accurately predict when products will be released. When will the software be done? • To be competitive in today’s global economy, these issues must be addressed. Copyright ©2001 Software Quality Consulting Inc. Slide 4 Motivation • Managers have the ability to change the organization and influence the behavior of developers, QA, and project managers. – How can you exert this influence? – What behaviors should be encouraged and which should be discouraged? – How can you know if you are the right track? Copyright ©2001 Software Quality Consulting Inc. on Slide 5 The Goal Delighting your Customers by consistently delivering Quality products on time. Predictable Software Development Copyright ©2001 Software Quality Consulting Inc. Slide 6 Unpredictable Organizations – Planning new product releases is difficult – Staffing projects difficult – Customer frustrated from promises not kept – Employees frustrated from promises not kept – Many unplanned bug fix releases – Product quality low – Time to market goals consistently not met – Costs higher than expected – Revenue projections frequently not met – Over-commit AND under-deliver Copyright ©2001 Software Quality Consulting Inc. Slide 7 Root Causes • Inadequate training • Lack of measurement • Unrealistic schedules • Poor project management skills • Don’t understand Customers • “Crisis mentality” • Reward wrong behaviors Copyright ©2001 Software Quality Consulting Inc. Slide 8 Predictable Software Development • Set achievable expectations • Develop accurate, realistic schedules • Meet them! • Follow a documented Development process • Hold people accountable • Proactively Manage Risk • Manage Internal and External Commitments • Measure what happens Copyright ©2001 Software Quality Consulting Inc. Slide 9 Characteristics of Predictable Organizations • Measure Quality and Customer Satisfaction regularly • Measure Employee Satisfaction regularly • Make effective use of scarce, expensive resources • Rarely in ‘fire fighting’ mode • Few unplanned bug fix releases • Follow a documented Development Process • Actively Manage Risks • Under-commit AND Over-deliver Copyright ©2001 Software Quality Consulting Inc. Slide 10 Predictable Software Development Commitment Management Quality People Predictable Software Development Features Schedule Process Product Risk Management Copyright ©2001 Software Quality Consulting Inc. Slide 11 From a Management Perspective... Culture Process Performance Copyright ©2001 Software Quality Consulting Inc. Slide 12 Economics of Software Development • • • • How Startups Acquire Bad Habits Cost of Software Defects Time to Market vs. Quality Economic Value of Quality Copyright ©2001 Software Quality Consulting Inc. Slide 13 Cost of Software Defects Requirement Analysis Requirements Definition $1 Design $5 Coding Relative cost factor to find and fix defects at each phase of the Software Development Life Cycle Source: Boehm, B., Software Engineering Economics, Prentice-Hall, 1981 Copyright ©2001 Software Quality Consulting Inc. $20 Testing $50 Maintenance $100 Slide 14 Software Defect Cost Model Profit loss due to schedule slip Software Defect Cost Rework Cost Design Design Inspections Coding Code Inspections Integration Testing Validation Testing Documentation Copyright ©2001 Software Quality Consulting Inc. Ward, J., “Calculating the real cost of software defects”, AAMI 27th Annual Conference Proceedings, 1992. Slide 15 Pre-release Find/Fix Cycle This cycle can take from 10-30 hours per defect Using an average of $150 per hour for Software Engineering time... Max cost per defect is: Testing uncovers a potential defect Potential defect reported Dev. investigates & verifies defect Dev. fixes defect & does some testing 30 * $150 = $4,500 For a product with 100 defects, the cost is: Development includes fix in next baseline New release to SQA 100 * $4,500 = $450,000 SQA performs regression testing Copyright ©2001 Software Quality Consulting Inc. Slide 16 Post-release Find/Fix Cycle Pre-Release Find/Fix Cycle This cycle can take from 20-60 hours per defect Using an average of $150 per hour for Software Engineering time... Defects? No Update documentation Max cost per defect is: New version released to Mfg 60 * $150 = $9,000 For a product with 100 defects, the cost is: 100 * $9,000 = $900,000 Yes New version distributed to Customers Customers install new version Copyright ©2001 Software Quality Consulting Inc. Slide 17 Economic Motivation How do you want to allocate Engineering resources? Develop New Projects OR Rework Existing Products $$ Generates revenue Copyright ©2001 Software Quality Consulting Inc. $ Doesn’t generate revenue Slide 18 Balancing Quality, Features, and Schedule • Software Quality Myths/Facts • “Good Enough” Quality Debate Quality • Economic and Competitive Value of Quality • Creating accurate, realistic schedules • Management’s Role Features Schedule Copyright ©2001 Software Quality Consulting Inc. Slide 19 Creating Accurate, Realistic Schedules • Understand why estimates and schedules wrong most of the time • Identify “Best Practices” for estimating and scheduling • Provide staff with training in “Best Practices” • Allow them to do it! Copyright ©2001 Software Quality Consulting Inc. Slide 20 Why are estimates and schedules wrong? • We play ridiculous negotiating games... Doubling and Add Some Reverse Doubling Spanish Inquisition “Guess the date I'm thinking...” We don’t teach people how to do it! We allow feature creep without assessing impact We don’t hold people accountable Accountability = Responsibility + Authority Source: Yourdon, E., Death March: The Complete Software Developer’s Guide to “Mission Impossible” Projects, Upper Saddle River, NJ: Prentice-Hall PTR, 1997 Copyright ©2001 Software Quality Consulting Inc. Surviving Slide 21 Why are estimates and schedules wrong? • Management frequently OVER-commits • Project teams have not been taught estimating and scheduling techniques • Project Management skills are lacking • Interdependencies are frequently ignored • “People issues” are frequently ignored • Known risks are frequently ignored Copyright ©2001 Software Quality Consulting Inc. Slide 22 Typical “scheduled-backwards” Project • Project starts with predetermined end date • Tasks estimated based on time available rather than time required • Task interdependencies not identified • Unexpected things that ALWAYS happen on every project not anticipated... • • • • • • • the requirements WILL change key members of the project team will leave a key assumption about the product will prove wrong needed training for new tools / technology not provided dependencies arise that were previously unknown or ignored key resources pulled off to fight most recent “fire” etc... Copyright ©2001 Software Quality Consulting Inc. Slide 23 Typical “scheduled-backwards” Project • Sooner or later, the schedule slip becomes so large it can’t be ignored – Project Manager panics and starts paring down features and cranking up coding – Whatever process the project was following is abandoned – Activities like Design Reviews and Code Inspections are eliminated. Testing time curtailed. • Usual outcome is a lose-lose situation – Organization loses – Customers lose Copyright ©2001 Software Quality Consulting Inc. Slide 24 Some Observations... • Projects that are late are almost always “scheduled backwards” • “Scheduling backwards” has a negative impact on project morale, product quality, and productivity • Scheduled backwards projects frequently require unplanned bug fix releases • Many people have personal “Quality Standards” that are significantly higher than Management’s... Copyright ©2001 Software Quality Consulting Inc. Slide 25 Estimation and Scheduling “Best Practices” • COCOMO II • Function Points • Feature Points • Wideband Delphi • Yellow Sticky Method Copyright ©2001 Software Quality Consulting Inc. Slide 26 Balancing Quality, Features, and Schedule • Management’s Role: – Work to create culture - under-commit / over-deliver – Train staff in estimating and scheduling techniques – Manage commitments made to Customers – Require schedules be developed going forwards by people who will be doing the work – Negotiate schedule based on fact not fiction – Hold project team accountable – Reward teams that meet commitments! Copyright ©2001 Software Quality Consulting Inc. Slide 27 Balancing People, Process, and Product • Software Development Best Practices • People Issues People Process • Product Issues Product Copyright ©2001 Software Quality Consulting Inc. Slide 28 Best Practices • • • • • Risk Management Define Requirements FIRST Peer Reviews Binary Quality Gates at the inch-pebble level Project-wide visibility of project plan and progress vs. plan • Defect tracking against Quality Targets • Configuration Management Source: Ed Yourdon, Rise & Resurrection of the American Programmer, Prentice-Hall, 1998 Web sites: www.spmn.com www.christine.com Copyright ©2001 Software Quality Consulting Inc. Slide 29 Binary Gates at the Inch Pebble Level The Problem... Scheduled Ship Date Project Start Management made aware that there is a “crisis” Copyright ©2001 Software Quality Consulting Inc. Slide 30 Binary Gates at the Inch Pebble Level • Beware of the “90% done” syndrome • Use binary measures (done / not done) • Precisely define what is meant by “done” • Define gates at each major stage of development • Proceed “at risk” when gates not met Copyright ©2001 Software Quality Consulting Inc. Slide 31 Binary Gates at the Inch Pebble Level Gate Requirements Complete Design Complete Code Complete Testing Complete Precise Definition SRS conforms to standard. SRS reviewed and approved. SDD conforms to project standard. SDD reviewed and approved. All features coded and checked into source control All modules compile with no errors Unit testing completed and bugs fixed All planned tests have been executed Bugs reported fixed and validated Planned regression testing completed Release criteria defined in Test Plan met Copyright ©2001 Software Quality Consulting Inc. Slide 32 Best Practices Summary • A Written Software Development Process... – The “wrapper” that encompasses Best Practices – Best Practices are only BEST if they work for you – Measurement is essential - You can’t know what you don’t measure – A written Development Process DOES NOT limit people’s ability to do creative work – Software Development Process should include Development, QA, and Doc Copyright ©2001 Software Quality Consulting Inc. Slide 33 Software Development Best Practices • Management’s Role – Work to create “process-oriented” culture – Require written process that’s appropriate and flexible tailored to meet specific needs of each project. – Require people who must follow the process be actively involved in creating it. – Ensure the process is communicated and understood. If necessary, provide training. – Hold project teams accountable for following the process. – Require the process be reviewed periodically and changed based on process measures. Copyright ©2001 Software Quality Consulting Inc. Slide 34 The Goal... Delighting your Customers by consistently delivering Quality products on time. Predictable Software Development Copyright ©2001 Software Quality Consulting Inc. Slide 35 Thank you... ...for taking time to attend this meeting! If you have any questions on the material in this presentation, please don’t hesitate to call or e-mail Q Software Quality Consulting Inc. Steven R. Rakitin Consulting Training Quality Systems Phone: Fax: www.swqual.com info@swqual.com President 508.529.4282 508.529.7799 Copyright ©2001 Software Quality Consulting Inc. Slide 36