If you’ve had the opportunity to work for more than one organization, you’ve probably come across a situation in which IV&V is part of the organization’s process for developing software. IV&V, or Independent Verification and Validation, is an approach to testing in which a team that was not involved with the development of a solution both verifies and validates the functionality provided by that solution. This team can either be part of another organization or report to a different Vice President (VP) within the same organization.
Having an independent group execute these tests increases the customer’s confidence in the findings from testing, as the team performing IV&V is incentivized to identify issues, while the team developing the solution is typically incentivized to say that they are done and collect their paycheck. An IV&V team that is not independent may be pressured by their superiors into accepting the solution that is being tested regardless of its efficacy. IV&V is often mandated by regulatory or oversight bodies. For example, I have seen IV&V mandated both for biomedical device companies and government agencies.
Because IV&V is often mandated, teams must find a way to perform it when using any development methodology, including Agile. Given the way in which IV&V is typically performed, it is often challenging to integrate it into a modern, fast-paced development environment. Many organizations think about IV&V in a waterfall fashion, where IV&V begins after the solution has been developed and tested by the organization that developed it. However, waiting to involve IV&V slows the development process and defeats the purpose of moving to an agile working model, since the development team will receive feedback about a particular build or release long after they have finished working on it.
Because of this, it is important to find ways to integrate IV&V into the development team to improve the team’s and organization’s velocity. The recommendations that I’m presenting are my initial thoughts based on an analysis of this problem and my own experience working on projects with IV&V teams — I plan to refine this thinking over time as I gain experience with helping my current client integrate legally mandated IV&V into their development process.
Identifying an IV&V Partner
The first key to effectively incorporating IV&V into an agile environment is identifying an IV&V partner that has a chance of being able to keep up with the pace of agile development. The testers who are part of the development team should write and maintain automated tests within an agile environment, and the same should be expected of the IV&V testers. This approach works if the development team has a choice as to which IV&V provider it uses, but sometimes this provider is mandated. In these situations, the best approach is to have a conversation with the IV&V team to assess their automation experience as it relates to your development project.
If you have the bandwidth, it will be valuable to set up training and coaching sessions with the IV&V team members to help them come up to speed on automation so that they can use it when evaluating the deliverables that the development team is producing. During your initial conversations you should emphasize how the IV&V team will benefit from the use of automation to help gain their support.
Agile Ceremony Participation
Even if the IV&V team uses automated tests to ensure the quality of your team’s deliverables, they still won’t be able to keep up with your development team’s pace if they aren’t involved with the development process until a build is available to test. While the IV&V team shouldn’t be involved with developing the software, since they would then no longer be able to claim that they are independently verifying and validating it, you should still include them in all of your agile team ceremonies, especially those meetings during which work items are created and refined. Even if IV&V doesn’t participate in these meetings, they will have the opportunity to understand what is being built so that they can develop and automate the test cases that they will use to evaluate your team’s deliverables. Involving IV&V in these meetings may also help reduce the adversarial relationship that often exists between the development team and the IV&V team, which often slows down releases.
Eliminating Redundant Testing
An IV&V team that is writing automated tests and observing key agile team meetings should be able to keep pace with development. However, there is still further room for improvement, as IV&V is probably writing and executing many of the same tests that the development team is writing and executing. Executing the same test on the same version of your product does not add any value, assuming of course that your tests and the system being tested are stable. If your tests and system are stable, then your test team and the IV&V group should discuss which tests each group will execute while still adhering to any regulatory requirements.
One initial suggestion, although the balance of testing effort is probably context-specific, is to have the development team write and execute happy path tests and leave negative and error condition tests to the IV&V group. Another possible approach is to have the IV&V team review the automated tests that the solution team is developing and executing to ensure that they properly verify and validate the solution.
While incorporating IV&V into an agile environment may seem challenging at first, it is not impossible. By engaging the IV&V group in conversations around automation, when they are involved during the process, and which tests are written and executed by each group, you can increase the likelihood that you are still able to deliver new features to your users in a timely fashion.