| Faster, Better, Cheaper... Validated?! | | Print | |
| Written by Frank Jacquette | |
| Friday, 01 March 2002 00:00 | |
|
The FDA wants your software to work right, and if you're in a regulated environment, they have the force of law behind them. But what do you do when you want to apply modern, "agile" software development methodologies in a validated environment? And how do you get regulatory to believe you when you tell them that it's all going to be ok?
The FDA, of course, is charged with ensuring that products under its jurisdiction are both safe and effective. FDA regulations, including those that define computer validation, stem from the goals of safety and efficacy. In fact, the FDA defines systems validation as follows:
Note the critical aspects of that statement: the FDA wants clear-cut documentation that shows that you have a process, that you follow it, and that the process will produce a quality product. In fact, that statement can be applied to drug compounds, medical products, and safety documentation just as easily as it can be applied to software.
The FDA has a history of providing high-level objectives and then permitting industry to find the best way to meet those objectives. For instance, the regulations in 21 CFR 11, which define the requirements for electronic records and electronic signatures, do not specifically address individual products or protocols. Instead, the FDA describes the qualities of a compliant system, and then lets industry demonstrate how specific systems possess those qualities. This approach permits the FDA to maintain safety and efficacy standards without micro-managing the free market, and it has worked fairly well.
In fact, the FDA's validation definition is so high-level that there would seem to be wide leeway in how software might be developed, and in fact this is true. However, one piece of that definition is problematic:
will consistently produce a product meeting its predetermined specifications and quality attributes.
Yes, the FDA assumes that, whether you're producing pills or programs, you have predetermined, clear-cut specifications.
Now, this makes absolute sense in most cases. Of course we want that pill's makeup to be clearly defined before it's made -- how else will the FDA know what goes into that pill? Even in software development, this approach makes sense under most methodologies, including the waterfall methodology that is popular at most pharmaceutical companies. Indeed, Edward Yourdon's The Decline and Fall of the American Programmer, one of the "bibles" of the waterfall development methodology, was published at about the same time that the FDA was becoming aware of the need for computer systems validation.
So what's wrong with following a waterfall methodology? In many cases, nothing at all: the waterfall methodology has many strengths, including a very predictable sequence of steps that produces a very concrete and well-defined set of deliverable documents.
However, as the state of the art of software development has moved forward over the last ten years, those of us in the field have come to realize that the waterfall methodology (and other "heavy" methodologies that depend on a complete understanding of requirements up front) has significant weaknesses. To quote Martin Fowler, Chief Scientist at ThoughtWorks:
These methodologies have been around for a long time. They've not been noticeable for being terribly successful. They are even less noted for being popular. The most frequent criticism of these methodologies is that they are bureaucratic. There's so much stuff to do to follow the methodology that the whole pace of development slows down. Hence they are often referred to as heavy methodologies, or to use Jim Highsmith's term: monumental methodologies. The rest of Fowler's essay is available at http://www.martinfowler.com/articles/newMethodology.html#N401.
So permit me a leap of logic and let's assume that we agree that agile methodologies can help us produce better software for the end users. How then do we reconcile ourselves with the FDA's definition of validation? It clearly states that specifications are predetermined, yet the very heart of the lightweight methodology is the concept that a clear understanding of requirements is achieved throughout the development cycle. The primary thought-shift that makes this reconciliation possible is this: Writing code is part of the specification process, and the software itself is part of the documentation.
If you're a regulatory affairs specialist or someone else who is responsible for ensuring quality in software, you probably fell over in your chair as visions of cowboy programmers running rampant danced in your head. For many programmers, documentation is an evil chore to be avoided at all costs. For many regulatory specialists, project managers, and business people, documentation is the only tool with which to try and understand just what the heck it is those crazy programmers are up to.
Agile methodologies don't dispose of documentation. Instead, they recognize that a three-inch thick functional requirements specification may not be the optimal tool for programmers and users to use in coming to a common understanding of the system requirements, and instead attempt to use the software itself as the tool. How is it possible that the software can be a tool in its own creation? Through an iterative process. This is the basis behind Joint Application Development (JAD) and Rapid Application Development (RAD) methodologies: involve the users early and often, and give them something they can touch, use, and react to. This is the lifeblood of an agile methodology.
This is all very well and good, but we need concrete steps to be able to make this fly in a validated environment. The FDA is concerned with process and product: you can define your own process, but you'd better follow it and it had better produce a quality product.
So how would we go about it?
The end goal of every methodology is the same: to produce a quality software product. Agile methodologies accomplish this goal with greater flexibility and user input, often resulting in shorter development times, fewer defects, and greater user satisfaction with the end product. By taking the time to understand the FDA's objectives and applying them to agile methodologies, you can develop better software in a validated environment. 2008 addendum: I originally wrote this article in 2002, when agile methodologies were still relatively new. Since then, methodologies like Scrum and Extreme Programming have become popular in pharmaceutical companies, and my company alone has developed a half dozen major validated systems using this approach. Every once in a while another practitioner of the engineering arts will challenge the points I've made in this article in a good-natured way, especially with regards to development of hardware or medical devices - prototyping is much more expensive and time-consuming in the hardware world. If you've had an experience with using agile methodologies in a validated setting, good or bad, feel free to This e-mail address is being protected from spambots, you need JavaScript enabled to view it and let me know how it went.
Copyright (C) 2002, 2008 by Frank Jacquette. Permission to redistribute this document is granted provided that it is unaltered and attribution, including this copyright notice, remains intact. |