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
“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?
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.
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
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
So Why Don’t We Do it Better? We Don’t Know Where to Begin
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
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.
It’s Not Rocket Science
But It Requires Changes
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
Quality-Centric ALM Keys to Success People Process Metrics Continuous Improvement Automation Satisfying the Customer Chain
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
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
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
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
Keys to Success: Automation Automation removes manual activity from repetitive tasks
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
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