INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management INFO636 Week 9 www.ischool.drexel.edu.
Download ReportTranscript INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management INFO636 Week 9 www.ischool.drexel.edu.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management INFO636 Week 9 1 www.ischool.drexel.edu Software Quality Management • The PSP focuses on managing defects to produce a quality product • This, in turn, helps improve productivity – Productivity still falls as the size of a system increases, due to its increasing complexity • To improve further, must improve your process quality INFO636 Week 9 2 www.ischool.drexel.edu What is Quality? • Crosby considered software quality to be “conformance to requirements” • Meeting user needs is often key to determine quality • We can distinguish between the quality of the product created, and the quality of the process used to create it INFO636 Week 9 3 www.ischool.drexel.edu Product Quality • A software product must provide the functions defined in its requirements, and must be a functioning application – Beyond that, how sensitive the user is to other aspects of usability, reliability, compatibility, etc. varies wildly – Poor quality products tend to have a lot of focus on testing to find defects INFO636 Week 9 4 www.ischool.drexel.edu Process Quality • Process quality focuses on meeting the developer’s needs • A quality process supports creating good products – Process consistency and repeatability are generally critical – Efficiency and usability are less obvious objectives INFO636 Week 9 5 www.ischool.drexel.edu Cost of Quality • Quality is a big cost issue for software • Each defect has costs for – – – – – – – – detecting it finding the source determining a solution fixing the problem (req’ts, design, and/or code) reviewing the fix testing the fix to see if it works testing the fix to check for regression problems updating documentation to reflect the fix INFO636 Week 9 6 www.ischool.drexel.edu Cost of Quality • The relative cost of finding and correcting a defect increases through the life cycle – During requirements or design phases, a defect has a relative cost of about 1 – Coding and testing phases, cost 10-40 – After release to the customer, cost 100-1000 INFO636 Week 9 7 www.ischool.drexel.edu Cost of Quality • Many of you also noted that the time to fix defects found in testing or later is much higher than those found earlier (see pp. 276-7) • PSP experience has shown that reviews are twice as efficient at finding defects as testing INFO636 Week 9 8 www.ischool.drexel.edu Testing Schedules • Many organizations focus on getting into system testing quickly, as a sign of progress • However, more time in requirements and design would produce higher quality code which needs less testing time INFO636 Week 9 9 www.ischool.drexel.edu Cost of Defect Removal • Typical developers inject (create) about 100 defects per thousand LOC – About half are found by compiler – The rest need to be found by inspection or testing • Using the PSP, about 70% of defects entering inspection are found INFO636 Week 9 10 www.ischool.drexel.edu Cost of Defect Removal • Inspection and review average about ½ hour per defect, whereas testing averages 8-10 hours per defect – so the cost benefit of inspection becomes clear INFO636 Week 9 11 www.ischool.drexel.edu An Example • Consider a 50,000 LOC project – About 5000 defects are initially created, but 2500 are found by the compiler (and are presumably fixed immediately) – Without reviews or inspections, those 2500 defects would take at least 2500*8 = 20,000 hours to find and fix using testing alone INFO636 Week 9 12 www.ischool.drexel.edu An Example – Using inspections, we would expect to find 1750 of those defects, and fix them in ½ hour each for 875 hours – The remaining 750 defects would be found by testing, and fixed in 750*8=6000 hours • Total defect removal time with inspection and test is 6,875 hours, versus 20,000 hours for testing alone – That saves $1.3M at $100/hr INFO636 Week 9 13 www.ischool.drexel.edu Cost of (Low) Quality • Poor quality can be measured to determine its impact on the project – Failure cost = the cost of finding and repairing failures – Appraisal cost = the cost of conducting reviews (called), and testing which finds no defects – Prevention cost = the cost of preventing the failures from occurring INFO636 Week 9 14 www.ischool.drexel.edu Cost of Quality (COQ) • For the PSP we simplify these to – Failure cost = time for compile and test – Appraisal cost = time for reviews and inspections – Prevention costs are low, since we have few projects to examine for defect trends • Based on this, define COQ measures INFO636 Week 9 15 www.ischool.drexel.edu COQ Measures – Failure COQ = 100*(compile time + test time)/(total devel time) – Appraisal COQ = 100*(design review time + code review time)/(total devel time) – Total COQ = Failure COQ + Appraisal COQ – Appraisal cost as % of total quality = 100*(appraisal COQ)/(total COQ) – A/FR ratio = Appraisal COQ/(Failure COQ) INFO636 Week 9 16 www.ischool.drexel.edu COQ Measures • The purpose of these measures is to help look for trends in quality over several projects – Hope to see higher ‘appraisal cost as % of total quality’ over time – This should lead to lower defect rates for later projects INFO636 Week 9 17 www.ischool.drexel.edu Quality Strategy • Important to keep product and process measures separate – both are important • Avoid productivity measures by themselves – they can help with planning, and be compared to other measures, but don’t use them as a sole objective INFO636 Week 9 18 www.ischool.drexel.edu Process Yield • Total process yield is helpful – the percent of defects removed before test • You can also evaluate yield for every life cycle phase, but only after hidden defects have been later discovered • The life cycle is a filtering process – Each phase has some kind of step to help find and remove defects to keep from feeding them into the next phase INFO636 Week 9 19 www.ischool.drexel.edu No One Answer • The PSP is a personal process for many reasons – one is that there is no one best way to find and remove defects – Need to look for the best ways for you to improve your work – Then reevaluate your strategy periodically INFO636 Week 9 20 www.ischool.drexel.edu Benchmarking • It can be helpful to compare your product and process measures to other people’s, or to industry standards – For example, plot the A/FR ratio over time • It should increase (p. 288) – Or look at A/FR versus the yield – Or Test defects per kLOC versus A/FR INFO636 Week 9 21 www.ischool.drexel.edu Benchmarking • Productivity can be compared to other measures, such as yield, to look for trends • Yield acts like the filter part of the life cycle process – Each step’s yield reduces the number of defects to be found later, so a small improvement in yield can be significant INFO636 Week 9 22 www.ischool.drexel.edu Injection and Removal • The key to understanding your software development process is to balance the injection of new defects with activities to detect and remove them • To achieve greater control, need to examine the factors which cause defects to occur INFO636 Week 9 23 www.ischool.drexel.edu Defect Causes • Education – didn’t know how to do it • Communication – weren’t informed about something • Oversight – forgot to do something • Transcription – knew what to do, but made a mistake • Process – the process misled your actions INFO636 Week 9 24 www.ischool.drexel.edu Yield Management • While the overall process yield doesn’t care if you have 80% review yield, and 40% test yield, or 40% review and 80% test, the costs and A/FR ratio of those situations are quite different • This is why so much emphasis is placed on the quality of early reviews (see recommendations on pp. 298-300) INFO636 Week 9 25 www.ischool.drexel.edu Defect Prevention • Finding and fixing defects is purely defensive • To be more proactive, need to prevent defects from being created • Analyze the types of defects which occur frequently in your experience • Determine the causes of common defect types (see slide 24 again) INFO636 Week 9 26 www.ischool.drexel.edu Defect Prevention • Then look for ways to prevent those defects from being made again, e.g. – Improve review checklists – Get additional instruction – Conduct more detailed design – Get independent reviews • And change your processes accordingly INFO636 Week 9 27 www.ischool.drexel.edu Defect Prevention • The critical follow-up is to re-examine your defects later, and see if your changes helped or not • Incidentally, defect prevention and continuous process improvement are the highest levels of process maturity – CMM and CMMI level 5 activities INFO636 Week 9 28 www.ischool.drexel.edu