Quality Assurance prevents bad things from happening (also known as risk mitigation) which is essentially preventative maintenance. Just like your health, eating right and exercising regularly prevents future problems. Proper Quality Assurance is like “an apple a day” for any software organization.
Quality Assurance:
- Prevents delivering a product that fails to meet business needs
- Quality Assurance is the customer’s advocate – involved in the process from the onset. This approach protects the user experience and ensures that the development team builds exactly what the business needs, not simply what’s been captured in requirements.
- Even if you build the product correctly, meeting all specifications and requirements, it doesn’t mean you’ve built the RIGHT product. The market (and customers) can be fickle, so spend the time upfront to understand what they really need.
- Protects against unexpected downtime, i.e. stock markets or any 24/7 SaaS
- Downtime is the bane of an always-online culture. Doctors need to be able to instantly access patients medical records, users should be able to check their Gmail inbox whenever they want, and Netflix users should be able to binge watch the latest shows anytime, day or night.
- Downtime can happen through unintended regression due to software updates. Quality Assurance ensures that there are no unexpected regressions as a result of a software change. QA automation can add smoke tests to protect repository commits from breaking builds. Software with Quality Assurance simply works better and is more reliable.
- Protect internal reputation, which affects future budgeting and staffing levels
- Failed software projects reflect badly on IT leadership and on the overall team. By only delivering secure and reliable software, Quality Assurance adds the technical “wax” on the product to ensure it’s nice and shiny when users first get ahold of it.
- Protects external reputation through customer adoption and product success
- While time-to-market is generally key, delivering a real working solution is important too. Who cares if you have an initial adoption of 10k users when all the Google Play reviews are 1-star?
- Protects the business from inadvertent disclosure of sensitive information:
- Banking details and financial data
- Human Resources/Employee data
- Protected Health Information or Medical data (resulting in HIPAA violations)
- Credit card information
- Personal identification data
- Protects the company from bad public relations as a result of software failures
- Leaking data is guaranteed to become a public relations nightmare especially when we consider how Healthcare.gov affected the Obama administration or how NASA’s Mars Climate Orbiter largely became a $125 million mistake.
A FOCUSED team is a PRODUCTIVE team as context switching wastes precious time and energy.
A great example of misspend occurs when overloading role types. Using a software developer to test is both a conflict of interest and a poor use of their skill set. Yet, having two technical-minded roles interpret the requirements is an optimal scenario. Keep your expensive developers developing! By doing so, you allow Quality Assurance to own the testing and quality process and enable your software developers to do what they do best – build! Remember, developers build, but Quality Assurance breaks.
The benefits of Quality Assurance to your organization:
- Gain an independent and objective view of the state of software, i.e. what’s complete, what works, and what needs improvement
- Protect the user experience by improving functionality and reducing defects
- Ensure validation and compliance with software requirements – the business actually gets what the business wants, not what the developers have offered.
- Allow developers freedom to make large changes with confidence, knowing that key functionality will be protected
- Establish proper checks and generate key documentation for audit compliance
- Help support Sarbanes-Oxley Compliance, FDA compliance, etc.
- Improve customer satisfaction levels and integrity of the overall application
- Speed time-to-market, whether internal or external via fewer cycles and delays
- Answer scalability questions, i.e. will the system effectively support the desired number of users?
- Educate management on the true state of the system that allows for more educated business decisions: release dates or timing, safety and inherent risks, and costs.
- Manage holistic effects of software change.
Want some extra reading?
We’ve compiled a comprehensive business justification examining why Quality Assurance is such an important part of building reliable software. If you have software engineering needs, be sure to include QA as part of your development process and complete the form to receive our white paper on “Realizing the Value of Quality Assurance”.