I recently wrote about how independent verification and validation (IV&V) is almost always useless for custom software projects, and nodded toward how it could actually be beneficial. Now I want to go into depth about what useful IV&V looks like.
When I wrote that earlier blog entry, there was a model for useful IV&V—18F. At the end of February, that federal team was shut down by a vindictive Trump administration, as a part of their project to demolish any part of government that is functioning well.
The ostensible purpose of IV&V is to ensure that a government procurement is going the way that it’s supposed to—that the vendor is adhering to the requirements of the contract and the deliverables are up to spec. IV&V comes into play when government lacks the in-house expertise to enforce the contractual requirements. Sometimes the agency decides to hire an IV&V vendor, but more often a funder imposes an IV&V requirement on the agency to guard their investment. IV&V doesn’t actually do that well for custom software projects, but it does provide an elaborate performance of doing that, which is apparently good enough.
18F never billed itself as providing IV&V, but that’s pretty much the process that we put together in my time there, under the umbrella of our acquisitions work. After helping agency partners through the procurement process, we’d help them in the post-award phase, teaching them how to work with an Agile vendor. (I think of this as the Cyrano de Bergerac problem—after whispering all of the right words in the partner’s ear throughout the procurement process, it’s important to stick around after the contract is awarded, lest the vendor find the agency’s high-falutin’ Agile talk isn’t supported by experience or ability.) We developed a standard process and set of services designed to help the agency ensure that the vendor was performing well, though also to ensure that agency was able to keep up with a high-performing vendor. This involved somewhat more than verification and validation, but I’ll explain the whole suite of services, for the sake of completeness.
Help the Agency Keep Up with the Vendor
For a lot of agencies, contracting with a good Agile vendor is like dropping a Ferrari engine into a school bus. There’s going to be a lot of wasted potential. Very few agencies are set up to work with such a vendor at the pace that those vendors work. The vendor’s scrum team will have questions about the product, the business requirements, and the tech stack that the agency cannot respond to fast enough to avoid leaving the scrum team twiddling their thumbs.
At 18F, we’d show up before the procurement process, not just to walk them through the procurement, but also to prepare them to work at vendor speed. That often meant building a prototype with Agile methodologies, which would allow the agency’s new product owner to practice actually being a product owner and allow us to test the process for getting to production, and we could use that as an excuse to both experience and improve the process of providing vendors with access to their environment. This meant that, once a contract was awarded, vendors could get to work immediately, instead of spending months navigating onerous agency processes that are optimized for decade-long tech projects that are outsourced lock, stock, and barrel to a single enormous vendor.
Coach the Product Owner
New product owners should go through a training program (I generally recommend Scrum Alliance’s Product Owner training), but that classroom training only prepares somebody so much to actually be a product owner. At 18F, we’d provide them with ongoing coaching as they learned to do the job. That meant ensuring that knew what it means to ruthlessly prioritize the MVP, helping them to maintain a backlog of user stories that are sized well and supporting a properly incremental development pattern, giving them the confidence to lead scrum ceremonies, and generally showing them what good looks like.
Enforce the Code Quality Requirements
The contract should (must, actually) prescribe standards of quality for the work, probably in the form of a quality assurance surveillance plan (QASP) that speaks to code quality, accessibility, documentation, security, etc. It’s rare for an agency to have anybody on staff whose job description encompasses reviewing vendors’ work for conformance with technical requirements…but it turns out that their IT shop is likely to have one or more people who have those skills, if unused from 9–5 Monday through Friday. At 18F, as with product owners, we’d coach these folks as they learned to play the role of technical lead. We’d train them on how to evaluate the sprint’s deliverables in the terms laid out in the QASP, how to perform a code review, and how to work respectfully and productively with the vendor team. It took a long time to get somebody in place to serve competently as the technical lead, so somebody from 18F would serve in this role on an interim basis, gradually replacing themselves with the agency’s technical-lead-in-training.
Start Strong, Fade Out
18F’s work on these projects always started off strong, with a team of 2–4 people joining every scrum ceremony, holding multiple standing weekly meetings with the partner, and generally filling roles that would be better filled by the agency’s employees. But the goal was always to transition all of that work to the partner agency. At one point we formalized this, setting up a big spreadsheet with a row for every task that 18F was performing, and two column headers: one labelled “18F,” one labelled “Agency Partner.” Our job was to transition every one of those tasks from the 18F column to the agency partner column. That would take months, even years, but it meant that, one day, the partner could ask “so…what is it you do for us again?” And that was when 18F’s IV&V role was no longer needed.
I’m not sure that it makes sense for a commercial IV&V vendor to strive for uselessness. It’s financially irrational to work yourself out of a job. But IV&V contracts are often imposed by external forces (e.g., federal funders), who could hypothetically require that IV&V not merely provide (often useless) oversight, but also train grantee agencies in how to oversee vendors’ work themselves.
Of course, 18F was killed by the Trump administration, so that non-conflicted partner is no longer an option for agencies. And federal grants have also become somewhere between unreliable and mirages, so that force for IV&V is much reduced. But state and local agencies‘ need for functioning software and project oversight is unchanged, and may actually become more urgent as they need to step up where the federal government is crumbling while lacking federal funding to do so. IV&V can be an important part of ensuring that systems are delivered on-time, on-budget, and within spec, but only if it’s IV&V that’s actually useful.