What Is Cost Of Quality (COQ): Cost Of Good And Poor Quality
This tutorial explains what COQ is, costs of good and poor quality, cost of quality formula, examples, and ways to improve quality to optimize COQ:
Demands of the competitive global economy have placed a strong emphasis on quality across the IT industry.
In recent years, IT has been supporting the business in many ways and so its activities are being scrutinized by business executives in terms of added value i.e. larger profit margins, lower operational costs, faster software product delivery, etc.
The cost of quality in software development is a metric that could aid in turning software into a profitable tool for companies. Companies are looking at ROI i.e., the return to the organization from investment in software development.
Quality is gained at a price and the cost is called COQ or Cost of Quality.
What Is COQ
COQ is the cost incurred to deliver a quality product to the client. The cost includes the cost of all activities taken up proactively in a planned way to prevent defects and deliver good quality.
It is not possible to deliver a zero-defect product, the idea is to minimize the expected failure for the committed requirements i.e. both Functional and Non-functional requirements. Expectations can be tangible and intangible attributes. So, setting clarity in expectations is very crucial.
Cost Of Quality Formula
COQ = Cost of control + Cost of failure of control or
COQ = Cost of Good Software Quality + Cost of Poor Software Quality
Cost of Good Quality (COGQ) = Prevention costs + Detection costs
Cost of Poor Quality (COPQ) = Internal failure costs + External failure costs
While it is most desirable to check for all quality points, every check is a cost overhead, so a balance needs to strike, and clarity of the quality coverage expected should be very clear from the beginning. This coverage should be shared with all stakeholders.
Quality management is about striking a good balance and prioritizing the high-risk quality dimensions achievable within a desirable/optimal budget.
Quality is really crucial, but it need not be attained at the micro-level of all features. The trick is to achieve the right balance between quality and cost and achieve the best that is required by the client at an optimal cost.
Some of the questions to consider:
l What is the scope of the expected functional and non-functional quality?
l What are the processes and reports that are shared for the purpose of tracking and reviewing?
l What will be the Exit or Release criteria for the Product to be released?
l What will be the process to communicate delivery failure and its consequences?
l Review Planned vs Actual budget for cost and process improvement initiatives?
l Who are the stakeholders who will participate in this review meeting?
Understanding Software Quality
“Quality is not an act; it is a habit” — Aristotle
When we go shopping, all of us young and old, men and women wish to get the best product that not only fulfills our core needs but is also efficient, cost-effective, stylish, and easy to use.
Software product’s quality expectation is also the same, it’s not just if the software serves the ‘what’ but also ‘how’ is important.
Many times when we book a hotel room online, we get the room booked, but the experience leaves a bad taste and we decide not to book through the specific site again!!
Quality refers to Functional as well as Non-Functional Performance.
Consider having bought a new washing machine which looks very good and fulfills all your needs — Hot water setting, Timer, etc. But it has gone into repair many times during its warranty period. The reason given was that the load was more than it could handle.
Thus, while externally the product was as per your requirement, the internal design which a user cannot see was not up to the mark!!
Quality refers to the internal design of the Product, Reliability, and Operability.
Functional and Non-Functional Quality
l Fitness for Purpose: Software performs all tasks as specified in the SRS document.
l Infrastructure Support: Software supports the environment specified and is scalable E.g., the software works in all browsers.
l Cost: The cost heads associated with the development and delivery of software is within the budget.
l Process: The development and review process is well established and as per standards.
l Management: The review and monitoring system has all the checkpoints to assess and ensure Product quality.
l Reporting: The reporting and documents are timely, informative, and actionable.
l Functional Suitability / Appropriateness: Appropriateness, Accuracy, and Compliance E.g. If the user wants confirmation of the ticket booked to be mailed instead of printing. Is this option available?
l Performance Efficiency (Time Behavior): Response Time, Resource Utilization, and Compliance E.g. What is the response time for the searches available? Is it quick enough?
l Compatibility (Inter-Operability): Co-existence, replaceability, interoperability, compliance E.g., Is the Website usable from a mobile/iPad?
l Usability: Ease of use, help available, learning ease, compliance E.g. Is the site easy to navigate and use?
l Reliability: Fault tolerance, availability, recoverability, compliance E.g., Will the application display the bookings when there is a power shutdown while printing the ticket?
l Security: Confidentiality, integrity, accountability, authenticity, compliance E.g. Are personal data shared on the site secure?
l Maintainability: Component reusability, ease of change, ease of replication, testability, stability, compliance, E.g. How easy is it to enhance the site with new features?
l Portability: Ease of installation, portable, adaptable, compliance E.g. Will the site behave the same way if the operating system is changed/updated?
Quality Is Multi-Dimensional
COQ Breakup
The COQ is the cost incurred to check that the Product conforms to the client’s requirement efficiently and satisfactorily and meets all the above agreed and desirable quality points.
Quality is not just reducing defects.
l In order to run a good boutique, one must first understand the market as well as the current trend/requirement.
l Get good dress designers, good tailors, train the tailors and the designers in their field.
l Plan for infrastructure to support the needs of the tailor and designer and also the client should feel at ease and secure when in the shop for trial.
l Designers should be able to communicate and understand the client and be able to change and adapt to fulfill the client’s requirements.
l Monitor and review the dress when in progress and check if it as per the design. Provide margins to be able to alter if required.
l Be ready to change the design if the client is not happy with the end product.
l Be on time and accept rejection if the product is not as per the agreed expectation and provide replacement or compensation, etc.
The client needs to be impressed and be your lifetime client and mouthpiece to market your product.
The same is also applicable for software. We need to understand the client’s requirements and market trends and suggest alignment and lead & build a strong rapport in the process.
Internally, we need to plan for technical design, process layout, infrastructure layout, resources, training, review, monitor, improve, report, and regularly communicate with all stakeholders. At the same time prepare to address failures and correct them. Have plans to address the worst and mitigate the risk of failure.
The cost of many of the above activities to manage the client’s tangible and intangible expectations adds up to the COQ cost heads.
As Dilbert puts it, Quality is Multi-Dimensional!!!
Cost Of Good Quality
The categories to measure the cost of good quality are explained below.
l Prevention Costs: It includes the cost to prevent bad quality, continuous training for developers, designers to be able to design and develop code that is easy to maintain, follow the process and adheres to performance & security standards, etc.
l Detection / Appraisal Costs: The cost incurred to determine conformance to quality requirements. This includes the cost of developing Test design and cases with full coverage of business requirements, performance checks, and application checks. The cost also includes setting up various testing environments, creating relevant Test data, Testing, Defect logging, Automation scripts, and Tracking, etc.
Prevention Costs
The costs incurred to avoid or minimize the number of defects in the first place are known as Prevention costs. Some examples of prevention costs are the improvement of manufacturing processes, workers training, quality engineering, statistical process control, etc.
In software, it will be Developer Training, good and precise functional requirements captured by BA, good designers, and architects. Secondly, good processes in place like client approval of requirements before coding, and coding standards must be followed.
Timely delivery of code post-unit testing by the developers and follow the process laid in the organization. The cost spent on building testing related components like Test planning, Test coverage, Automation scripts, Test plan review, Test Environments, Test data, etc.
The cost incurred to achieve all of the above will be considered as Prevention Cost.
Detection/Appraisal Costs
The costs incurred to detect defects before it reaches the client are known as Detection Costs. Some examples of detection costs are inspection, tests, and audits conducted to ensure consistent quality and conformance to established procedures.
Detection costs include the cost of resources, both human resources and infrastructure. In software, the cost spent to perform intermittent reviews by a peer i.e. Seniors. All audits performed, internal and external, are also part of this cost head.
Tools installed for Defect Tracking, Test Management, Automation, etc., are all consolidated under this cost head. Cost of Non-functional Testing, if done like Performance Testing, Load Testing, Usability Testing, Security Testing are all a part of this cost head.
Cost Of Poor Quality
The categories to measure the cost of poor quality are explained below.
l Internal Failure Costs include costs incurred in fixing defects during internal checks by the software organization before delivery E.g., re-work, re-testing, bug fixing, re-design, etc.
l External Failure Costs include product support costs incurred after the Product has been delivered and defects reported by the client. e.g., costs to process customer complaints, losing a competitive edge in the Market, Returns, Patches, Warranty claims, Company Reputation Damage, lawsuits, Company devaluation, Losing customer goodwill, etc.
Internal Failure Costs
Costs associated with defects can be found before the customer receives the product or service. The cost of rework for fixing the bug, re-testing efforts, root cause analysis for bugs, people, and environmental costs are all a part of this cost head.
Cost of resource unavailabilities like network failure and test environment crash is also part of this cost head. Scenario recreation to check and understand the bug even if it is rejected or non-reproducible is part of this cost head.
External Failure Costs
The costs associated with defects are found after the customer receives the product or service. Cost to fix customer complaints, Penalty cost paid due to customer dissatisfaction. Product rejection returns, and in some extreme cases lawsuits also come into the picture.
Some intangible costs like goodwill loss, loss of reputation in the market, and competitors can also be added to this. The real cost of these components of external failure may be difficult to accurately estimate & hence the real cost of external failures sometimes cannot be estimated accurately.
Reasons For Poor Quality
#1) Lack of Knowledge and Awareness about Industry Standards and Best Practices
l Many times, it is a lack of awareness in the organization about the coding standards, audits, and good processes that are being followed in the industry that contributes to poor quality.
l Senior members sometimes do not comprehend the importance and long-term impact of these practices.
l Any process to be followed diligently requires time, effort, and commitment. These points are overlooked and skipped when the focus is on short term goals and quick delivery.
l Coding standards, Causal Analysis & Resolution, Defect Triage, Internal & External Audits, etc. are value adds to the quality.
l These guidelines and awareness should be available at the organization level and updated to keep it in sync with the changes in the Industry. This should be shared and given to each and every employee and its importance must be reiterated again.
#2) Lack of Commitment to Quality
l An organization should be committed to providing quality at all levels, whether it is about the products or services they provide. Even, providing a quality work environment for its staff is very crucial for an organization.
l This is why W. Edwards Deming, the father of the Quality Movement, said that a company’s commitment to quality had to come from the top, and it had to be reinforced over and over again. He listed “constancy of purpose” as one of the main pillars of management.
#3) Lack of Domain Experts/Technical Experts
l As the software industry serves all the domains, many times it becomes difficult to get good domain experts and/or technical experts in time. This results in a lack of proper analysis and understanding of requirements.
l This has a ripple effect and has an impact from design to delivery.
l The estimates to start with are unrealistic and then the frequent changes in requirement result in multiple patches and missing of impact leading to defects.
l The test scenarios were written and the data used do not cover business scenarios realistically.
#4) Lack of Training/Training skills/Training program
l If each employee does not understand and accepts that quality is not his or her concern, the whole company is destined to be doomed. Thus, it is important that a company trains its staff at all levels to look for ways to improve quality.
l The employees at all levels should be aware of the person whom he/she can approach while having doubt. The Leader should be approachable.
#5) Lack of Motivation/Enthusiasm/Interest/Stress/Fear
l Following a process and disciplined approach has taken away the fun part of the business and turned it into something boring and tiring. We have painted the concept of quality management with negativity. Hence, it is no wonder that the workers have lost enthusiasm and the quality has gone down at so many levels as a result.
l The process, to some extent, adds more mundane effort and resources to look at it as an overhead. Some resources, do not understand the fundamentals and core purpose of the process and start fearing the review results. This adds tremendous stress and fear to them.
l Thus, the management needs to give the resources an overview of the bigger objectives being met by the processes being followed and maybe have peer reviews done by juniors so that they become aware of the deviations taken by many resources.
l Motivate the resources by appreciating those who are doing quality work and making the team a part of process improvement initiatives taken post defect causal analysis.
#6) Lack of Tracking and Management
l Management should be able to track the progress and keep a tab on key checkpoints like timeliness of all delivery items, quality reported, and timely intervention if any deviation from the expectation is observed.
l Management/Seniors should do a stringent review for the implementation of standards and processes laid out.
l Juniors need to be guided and then monitored and work must be reviewed. If not, there is a tendency for them to do shoddy work to complete it on time.
l At the same time, every work must be completed on time with good quality and needs to be acknowledged and appreciated by the team seniors to motivate the team members.
l Mistakes are bound to happen. But the thing is that we should have a way to track them and rectify them at the right time.
#7) Lack of Good Tools
l Lack of budget or awareness deprives the organization of investing in Good Quality Management Tool, Defect Tracking Tools, Automation Tools, Requirement Status Tracking Tools, etc.
#8) Lack/shortage of resources
l An organization that works under a tight budget and resources are planned accordingly. But at the same time, the management should be observant and aware as to when the resources are getting overloaded and should take appropriate action. If not, then the company will lose crucial resources or the resources may start to perform below par and deliver poor quality. The resource should also be responsible and highlight the same if it is not getting to the management’s attention.
Prevention, by stringent and regular review, tracking, and continuous process improvement is a way to progress and reduce COPQ.
Improving Quality To Optimize COQ
l Be aware of industry standards and good practices and implement only those which are relevant to your organization from the beginning and keep pace with the changes in the same.
l Commitment to quality should be visible at every level and should be communicated at every stage in action and not just words. Need not involve all seniors in all meetings, let relevant people attend, and share the MOM with all concerned.
l It is good to start investing in good practices and controls early. Following all the practices and using all the tools available in the market is not the answer.
l Communicating with all the stakeholders from the client to developers and the testers will enable us to be connected with the root and help in circumventing an issue before it crops. Communication is the key to bridging gaps and misunderstandings.
l An issue resolved earlier saves a lot of time, effort, and money.
l Focus and Test only on the areas that are relevant. e.g., Is Load Testing required? Do we need to test with all databases — Oracle, SQL, etc.? Should we test support for all web browsers?
l The lack of domain experts should be resolved as soon as possible by getting resources on contract/consultancy if possible. If not, sharing all the details of the Requirements, Test Scenarios, and getting approval from the client can also help. Use all the expertise available.
l Each leader should meet his team frequently and address their queries if proper training cannot be arranged. There should be good team rapport built, within and across the team i.e. developer, tester, BA, tester, etc.
l Motivate the resources by appreciating those who are doing quality work and making the team a part of the process improvement initiatives taken post defect causal analysis. Encourage Innovation and new ideas.
l Test early so that the mistakes can be detected and corrected early.
l Start investing in tools on a priority basis as Automation should be first.
l Maintain a Risk register and plan to mitigate risks.
Conclusion
Quality is going to be the cutting edge in Software competition. Software providing the required Quality at optimal cost is the need of the hour. Quality, both tangible and intangible, needs to be catered to.
COQ = Prevention costs + Detection costs + Internal failure costs + External failure costs
Quality commitment from all, Standard Processes, Reviewing, Tracking, Relevant Testing, finding defects early, and Automation are ways to improve Quality and optimize COQ.
Quality management is different from Project management and for good Quality the independence of the Quality management team should be ensured.
if u need more help please contact us at +91- 93 92 91 89 89 or sales@qaprogrammer.com, www.qaprogrammer.com