2. Agenda The problem with software quality What is quality-centric ALM and how can it help? How do I implement quality-centric ALM? Benefits of quality-centric ALM Wrap-up and questions
3. “Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.” - Rick Cook, The Wizardry Compiled Why Quality in ALM?
4. Cost of Poor Software Quality NASA lost a $125 million Mars orbiter because one engineering team used metric units while another used English units for a key spacecraft operation, according to a review finding. "Our inability to recognize and correct this simple error has had major implications," said JPL Director Edward Stone.
5. Software Quality by the Numbers There can be as many as 20 to 30 bugs per 1,000 lines of software code. —Sustainable Computing Consortium There are no methods of removing software defects or errors that are 100% effective. —“Software Quality: Analysis and Guidelines for Success,” by Capers Jones 32% of organizations say that they release software with too many defects. —Cutter Consortium 38% of organizations believe they lack an adequate software quality assurance program. —Cutter Consortium 27% of organizations do not conduct any formal quality reviews. —Cutter Consortium Formal design and code inspections average about 65% in defect removal efficiency. Most forms of testing are less than 30% efficient. —“Software Quality: Analysis and Guidelines for Success,” by Capers Jones Developers spend about 80% of development costs on identifying and correcting defects. —The National Institute of Standards and Technology Peer reviews of software will catch 60% of defects. —Institute of Electrical and Electronics Engineer
6. So Why Don’t We Do it Better? “Testing will find the problems” “We don’t have the time to look for any problems” Management perceives little ROI from an investment in QA personnel and testing tools Developers want to work on new, cool features rather than on bug fixes QA is not involved from the beginning of the project so they are always behind
7. So Why Don’t We Do it Better? We Don’t Know Where to Begin
8. There are Solutions A solution to these problems is a quality-centric approach, like quality-centric ALM In quality-centric ALM, quality is central to the application development lifecycle Not testing, but quality Testing flows from quality practices
9. Quality-Centric ALM Key Concept:Software development needs to be transformed into a managed, quality-centric business process where quality is a fundamental part of every phase of the software development lifecycle.
12. Quality-Centric ALM Tenets Engineering is a discipline You cannot test your way to quality Error prevention is cheaper and better than error detection Begin with the end in mind Software quality needs to be factored in to every part of the design and development process Quality is more a culture or philosophy than a process Investment in quality more than pays for itself
13. Quality-Centric ALM Keys to Success People Process Metrics Continuous Improvement Automation Satisfying the Customer Chain
14. Keys to Success: People Quality starts at the top The CEO and top management define the culture Pride of work The culture enables people to care about their work and results
15. Keys to Success: Process A process defines your practice It’s a guide, not a rule book No single ‘correct’ process It’s got to work for your unique circumstances Any process is better than no process If your process is documented and repeatable, you can measure and improve it
16. Keys to Success: Metrics When you can measure what you are speaking about, and express it in numbers, you know something about it. Baron William Thomson Kelvin
17. Keys to Success: Continuous Improvement Requires repeatable process and key metrics Review metrics and the process periodically Make the process review a team activity Document the changes and begin measuring again
18. Keys to Success: Automation Automation removes manual activity from repetitive tasks
19. Keys to Success: Customer Chain Satisfy the End User “The one number you need to grow [related to customer satisfaction is] “‘Would you recommend this company/product/service to friends and colleagues?’”– Harvard Business Review, December 2003 End User Product Manager Designer Coder Tester
20. Benefits of Quality-Centric ALM Lower development costs Bugs fixed earlier in the development cycle cost less to fix Teams understand product goals and can do their jobs right the first time Higher product quality Fewer bugs at each stage of the development process Better understanding of causes of poor quality and changes needed to correct them
The metric/US customary units mix-up that destroyed the craft was caused by a human error in the software development. The thrusters on the spacecraft, which were intended to control its rate of rotation, were controlled by a computer that underestimated the effect of the thrusters by a factor of 4.45. This is the ratio between a pound force (the standard unit of force in the United States customary units system) and a newton (the standard unit in the metric system). The software was working in pounds force, while the spacecraft expected figures in newtons; 1 pound force equals approximately 4.45 newtons.The software had been adapted from use on the earlier Mars Global Surveyor, and was not adequately tested before launch. The navigation data provided by this software was also not cross-checked while in flight. The Mars Climate Orbiter thus drifted off course during its voyage and entered a much lower orbit than planned, and was destroyed by atmospheric friction.Multiple calculations which indicated that the probe was off course were ignored.