The credit for developing the concept of Total Quality Management (TQM) is given to Dr. W. Edwards Deming, who was requested by the Japanese government of 1950 to come and assist them with turning around the public perception of the poor quality of Japanese products. Following his principles of “total quality control” to continually measure and correct your progress in achieving customer service goals, in less than a generation, “Made in Japan” became associated with quality product.
Sometimes Deming’s concepts are referred to as Continuous Quality Improvement (CQI) to reflect that improving quality is a continuous process following the never-ending cycle of “Plan-Do-Check-Act”.
Benefits of Quality
Having a high quality product translates into a large number of benefits to the organization such as:
- Less time reworking the code and re-testing interim bug fixes and patches.
- Effort for product updates can focus on new features rather than bug-fixing.
- Low levels of technical support calls.
- No refunds and recalls of the product.
- Lower expense of supporting multiple versions of the product in the field.
- Good publicity rather than bad.
With a product recognized as high-quality, the number of referential accounts, total sales and customer goodwill will be much higher.
Costs of (Poor) Quality
In “Quality Cost Analysis: Benefits and Risks” (Software QA, Volume 3, #1, 1996), Cem Kaner defines quality costs as those costs associated with preventing, finding, and correcting defective work. He notes that these costs can be of the order of 20% – 40% of sales, and that many of these costs can be significantly reduced or completely avoided through the involvement of effective quality engineering.
In his article, Cem Kaner outlines four types of costs that when added together comprise the overall cost of the current quality of the application. The four types of costs are:
- Prevention – Costs of activities that are specifically designed to prevent poor quality including coding errors, design errors, mistakes in the user manuals, as well as badly documented or unmaintainable code.
- Appraisal – Costs of activities designed to find quality problems, such as code inspections and any type of testing.
- Internal Failure – Failure costs that arise before your company supplies its product to the customer. If a bug blocks someone in your company from doing their job, the costs of the wasted time, the missed milestones, and the overtime to get back onto schedule are all internal failure costs.
- External Failure – Failure costs that arise after your company supplies the product to the customer, such as customer service costs, or the cost of patching a released product and distributing the patch. External failure costs can be huge. It is much cheaper to fix problems before shipping the defective product to customers.
Total Cost of Quality: The sum of the costs: Prevention + Appraisal + Internal Failure + External Failure.
How Testing Fits In
As discussed in “Test Throughout the Development Lifecycle” testing is much more than just finding bugs to squash. It is not an event, but a set of diverse activities capable of playing a critical role in identifying problems of varied types throughout the project lifecycle, far in advance of public access to the software.
Tracking the real costs of software failure such as patches, support, and rework can be difficult, but it is clear that effective testing can help optimize Cost of Quality. Performing reviews, thoughtful test planning, risk-based testing, and strategic automation on your software before it goes to market is a direct investment in the product.
An organization can reap significant returns through investment in Prevention and Appraisal activities – such as QA and Test.
Outsourcing as a Tool for Improving Quality
Put this question to your in-house team and contract service providers:
- How are they helping you keep and satisfy your current customers and attract more?
Put these questions to yourself:
- How would you know if your current Cost of Quality could be reduced by 20% through a handful of “Quick Wins”?
- How would you know if you could get more quality out of your current project budgets?
- How would you know if your current testing solution can do more for you?
In “Roadmap To Successful Outsourcing”, Wolfgang Strigel notes that outsourcing parts of software development and maintenance activities is becoming a competitive imperative and that according to research by the Gartner Group, 75% of all Information Technology (IT) companies will outsource parts of their IT efforts by 2003.
In his paper, Wolfgang Strigel also points out that outsourcing is a tool in an organization’s toolbox that allows one to:
- Realize significant cost savings with respect to resources. Companies can take advantage of global resources to cut costs while retaining the permanent foundation of expertise in those capabilities that represent their competitive differentiation.
- Use their core staff for strategic work while contracting out other activities. This improves company focus and increases margins by using specialty knowledge only when needed, and avoiding make-work projects for in-house staff who are suddenly not on the critical path.
- Shorten delivery cycles and get quick reaction and greater flexibility to ramp resources up or down as project needs and market conditions demand.
- Access the experts in a Just-In-Time fashion through a reliable pool of freelance or outsource contractors. Increasing complexity and specialization of new technologies make it difficult for companies to have in-house expertise in all areas.
Making Outsourcing Work
Building long-term relationships with a service provider does not mean anything as dramatic as a switch from the current solution to a new one. Serious vendors of contract services will want to participate in an evolution and growth of services that are backed-up with proof by performance while working within and improving the organization’s current project process framework.
Starting with a sample or “pilot project” of a controlled size and scope will allow you to measure the results and judge the potential value of the vendor for the future.