As we mentioned in our previous post in this series, the quality of your software refers to its ability to meet requirements. There are a variety of metrics you can use to measure quality — with varying degrees of importance depending on who you ask and what aspects you want to measure. Fortunately, a number of standards can guide you, and common steps can help ensure your software is high quality.
In clinical laboratories, quality is a foundational principle. It ensures reliable, accurate, and precise test results. This is critical because errors in any step of the testing process could result in dire consequences for the patient. It’s also important in the software industry, so it’s no surprise that we have similar goals and use similar methods to achieve quality in both cases.
The two complementary quality processes you need to adopt
Quality assurance (QA) and quality control (QC) are two processes commonly practiced in both the clinical laboratory and software industries. These processes require different skill sets, but the ultimate goal is the same — producing the highest quality end product. In labs, the “product” is the patient test result, whereas in software, it’s the end-user software.
QA is a set of activities designed to prevent errors and defects in a product. According to ISO 9000:2015 section 3.3.6, QA is “focused on providing confidence that quality requirements will be fulfilled”.
You could think of it as ensuring the quality of the processes rather than the product itself. By implementing certain practices to prevent errors, you can keep the quality of the product high.
|In the lab||QA is all about documentation, establishing standard operating procedures, and performing internal audits to make sure processes are followed as documented. If you’re coming from the software side, you can start your learning journey here.|
|In Software||Not unlike in the lab, QA is proactive and involves documenting processes and meeting standards to ensure procedures are followed correctly during the entire software development life cycle. Software verification (building the system right) is generally recognized as a QA process.|
|QC||In contrast to QA, QC is a set of activities designed to detect any flaws in the quality of a product. Once detected, the error can be investigated and corrected, thereby improving the quality. QC is more product-oriented, while QA is process-oriented.|
|In the lab||QC is imperative to ensure the precision and accuracy of patient test results. For example, within the analytical phase of the testing process, during each analytical assay run, a QC sample with a known value is run alongside patient samples with unknown values to provide a check as to whether the sample results can be trusted.|
|In Software||QC is a corrective process. The bulk of QC performed during software development occurs in the software testing phase. That’s because this is the stage when rigorous testing is conducted to detect bugs. Peer review of software code is also considered a QC process.|
Managing QA and QC with a quality management system
In the lab, implementing a quality management system (QMS) is undoubtedly one of the best ways to maintain control of quality. Furthermore, many regulatory bodies now require clinical laboratories to develop and follow QMS policies. The CDC, for example, provides some great QMS tools and resources for clinical labs performing NGS-based tests, while ISO 9001 is a prominent worldwide standard that sets out the requirements for a good QMS, which can be used by any organization regardless of size or industry.
- Customer focus
- Engagement of people
- Process approach
- Evidence-based decision making
- Relationship management
There are also a number of technical standards used to improve the quality of software — for example, those developed by the IEEE and CISQ. Sadly, much software still fails to meet these standards. This can be because software systems are too complex to evaluate against all of these standards. However, it’s worth noting that poor-quality software costs trillions of dollars each year. That’s a huge expense that could be reduced by applying quality standards.
Standards continue to be developed and refined. In fact, earlier this year, ISO released a new standard, collaborated on by thousands of experts. ISO 5055 specifically targets flaws in the source code or architecture, which is something that the existing software quality standard ISO 25000 lacks. It also focuses on four key quality metrics: security, reliability, performance efficiency, and maintainability.
Better quality leads to increased confidence
The more effort you put into quality management, the better the quality of your end product, whether that’s patient test results or the clinical software used by your team. It means patients get the accurate health insights critical to their care, and the users of your software have greater satisfaction and the ability to perform their jobs efficiently and with confidence. Additionally, high-quality lab software will inevitably help your lab staff conduct quality management more effectively.
At Semaphore, we have a deep commitment to quality and have documented our quality practices to ensure they are followed. We always conform to the regulatory requirements of our customers, but we also have our own internal QMS to ensure the highest quality regardless of what our clients may expect.