I am sure we have all heard about quality assurance or quality control at some point in our careers. Quality assurance at face value means that a product or service is at its optimum level and that it’s ready for release to the general public. Basically, it’s the weight behind phrases such as “satisfaction guaranteed.” But, what does quality assurance look like in action and why does this often obstructed facet of companies live behind the curtain when it’s really those sets of rigorous standards and regulations that ensure product integrity and success? Let’s bring quality assurance to the forefront and take a look at its impact in the world around us and why at Terso Solutions, quality assurance is built into the foundation of what we do.
I’ll start by providing some background on the current landscape of software creation / distribution and why quality is such an important factor to consider when working with a company who specializes in this type of product. According to The Consortium for Information & Software Quality™ (CISQ™), Cost of Poor Software Quality (CPSQ) for 2020 is estimated to be $2.08 trillion. For comparison, only a dozen countries have an annual gross domestic product (GDP) of $2 trillion or more. Not only is this bad for business, but this represents a huge drain on the economy as a whole.
The 2020 report also observes that while there are multiple factors causing project failures, “one consistent theme has been the lack of attention to quality.”
At Terso, we take the opposite approach and place a great deal of attention and effort in establishing and delivering quality software. We believe that a consistent, high level of quality is important to build customer confidence and increase the company’s credibility. We strive to incorporate quality checks and design reviews throughout our software development process to ensure that our software meets the requirements of our customers as well as our own high standards for quality. We achieve this by including our Software Quality Assurance (SQA) team from the very beginning of the process, starting with planning.
As the Senior Software Quality Assurance Engineer, I believe that software quality assurance begins even before the first line of code is written. I also believe that transparency and accountability is key to establishing a product that is of the highest quality. You should know what steps are in place to guarantee that standards have been met or exceeded and that all variables have been considered throughout the process. The following is a summary of the key stages in the software development process and how quality assurance is incorporated every step of the way:
Planning & Analysis – In this phase, SQA personnel are involved with the analysis and review of the high-level product definition and requirements. We ensure that the customer requirements are documented and are unambiguous while identifying any gaps.
Design & Development – During this phase, the SQA personnel work closely with various internal stakeholders to ensure that the outputs of the software development meet the requirements of our customers. This may include participation in several design reviews and/or walkthroughs of the software.
Software Testing – In this phase, SQA personnel conduct validation of the software product. We apply various testing techniques and tools to ensure comprehensive coverage of the code. This process generally uncovers software defects, vulnerabilities, and any uncovered gaps in the requirements.
Release – The release process is initiated after the SQA team has completed the process of testing. The SQA team is very closely involved with the release process by conducting review of release and user documentation.
Maintenance – The SQA team is just as integral to the maintenance of our software products as it is with new product development. Our process described above applies largely the same way in both cases, with the involvement of SQA personnel starting from the get-go.
You might be thinking to yourself as you read through the list above, “wow, that’s a lot of time spent to maintaining quality standards. Doesn’t this increase the cost of the product?” This is a common misconception of software quality assurance. Oftentimes people think that increased quality leads to increased delivery times, adds to the cost of software development, and starts after software development is complete. I can’t stress enough that a properly implemented Software Quality Assurance process reduces the number of defects in releases, the time-to-market, as well as the cost to maintain the software product, all while enhancing customer satisfaction.
Our Software Product Management, Software Engineering, and Software Quality Assurance teams are aligned on the fact that it is about 10 times more expensive to fix the defects that cause failures after a product has been released than it is to find and fix them during development.
As Aristotle said, “Quality is not an act, it is a habit” and we make it a habit by making quality an integral part of our business and strive for continuous improvement.