Stanley Curtis, Head of Software Engineering for SmartSolve EQMS, IQVIA
You rely on an enterprise Quality Management System (eQMS) to manage the quality of your products. Have you stopped to think about the quality of your eQMS? Do you know the level of diligence that your solution provider puts into the quality of the software that powers your eQMS? This is a guideline of what to look for when evaluating an eQMS vendor (or any software solution provider).
The most overarching part of ensuring software is developed to the highest quality standard is a strong Software Development Lifecycle (SDLC). The SDLC defines the entire process of developing software. It is here that the first notion of quality is introduced. The SDLC defines:
- the processes for defining requirements as well as designing, building, and testing the software;
- the appropriate workflows to follow when everything is going smoothly;
- the processes and procedures to follow when problems arise, and defects are found; and
- the necessary artifacts that are developed during the SDLC and the processes to successfully release the software.
Adopting Structure to Construct a Quality Framework
Without a robust SDLC, consistency and diligence suffer, creating greater opportunity for unpredictable software. The FDA does not define which SDLC must be used when developing software in the Life Sciences, but it does stipulate that an SDLC must be defined and used for software development. Some of the more common SDLC methodologies are Agile, Waterfall, and V-Model. Most SDLC methodologies are guidelines that are tailored for the specific product and company.
Whichever SDLC model you choose, it is important to ensure that it fits your needs and is consistently followed for each software development project. Equally important, your SDLC should be reviewed periodically to ensure it is still defining a methodology that when followed, produces quality software.
“The SDLC should be considered a living methodology that can be adapted for continuous improvement.”
The SDLC typically defines the SDLC processes of requirements definition, design, building, testing, and releasing the software. Depending on the SDLC methodology chosen, these processes may be implemented at different times in the SDLC, and in varying methods, with the ultimate goal of producing high quality software.
Practicing Quality to Build Quality
Requirements definition is a joint effort, typically led by Product Management, involving customers, market forces (Sales and Marketing input), regulatory inputs, engineers, and architects. A weak requirements definition process will likely result in poor quality software that may not meet the needs of the customer. Requirements should be well documented to minimize any ambiguity between the software developer and the originator of the requirements. The SDLC should define requirement tracing between the final software and the defined requirements to confirm that the software meets the requirements.
During the design and build phase of the SDLC, multiple techniques can be used to find discrepancies and defects early in the process. The earlier in the process that these discrepancies are found, the easier and less expensive they are to resolve.
Peer reviews should take place during the design process and the coding phase of the project. Design reviews and code reviews not only help to find potential software defects, but they also are excellent ways to enforce coding standards and educate other members of the team on how that piece of code works. Developers should perform unit testing on all code they develop as the first level of code testing in the product.
Quality Assurance to Assure Effectiveness
Quality Assurance (QA) activities within the SDLC should start early and occur often, and not be relegated to an afterthought. At a minimum, QA should be involved, up front, during the planning and design phases. During the early parts of the SDLC, they should be developing test plans from the requirements, participating in design reviews, and starting to build any necessary testing frameworks. Test plans should be peer reviewed for the same reasons as a developer’s code is reviewed.
Once the test plans are approved, QA engineers can start developing the tests that will be executed as part of the SDLC. The testing should be a combination of manual and automated tests. Test automation is a powerful tool for continuously looking for regressions in existing software that may have been introduced by new code or code changes. Automated regression testing should be executed frequently during the software development process to find the defects as early as possible.
Approved Consent to Signal Readiness
The release process pulls together the other phases of the SDLC to put the software into a package that is then validated and useable by the customer. During this phase, various departments, or responsible roles, sign-off on the release indicating their agreement that the software was developed following all of the necessary processes in the SDLC and the software has met the accepted quality standards.
Having a robust and documented SDLC that is followed during the software development, is a powerful tool to help ensure a high-quality product. Additional measures can enhance the quality process such as using a defined quality framework.
A Powerful Foundation for a Mature Quality System
A mature, compliant quality system requires an automated, integrated approach. That’s where IQVIA SmartSolve® QMS’ advanced compliance technology comes in. SmartSolve® is a powerful compliance platform that makes it easy to scale your quality system as the demands on it grow. The compliance platform enables quality to become a centralized hub for continuous improvement throughout your business while maintaining regulatory compliance.
SmartSolve® is developed using the Agile SDLC as we believe this provides the greatest visibility into the quality of the product as it is being produced. Test automation is one strategic component the SmartSolve product development team engages to produce a high-quality product. Additionally, IQVIA itself is ISO 9001:2015 certified in order to further strengthen its commitment to building quality QMS software.
SmartSolve Platform for Compliance
SmartSolve Platform for Compliance provides a powerful foundation for building a mature quality system.