Healthcare Software
Validation is Far More Important than Verification
The Problem. Developers often think that application crashes are the most serious problem a healthcare program can exhibit. While a crash is obviously not an ideal outcome, hospital processes are well established to deal with software crashes. Of far greater inconvenience is an application that makes a clinical worker’s job more difficult while behaving as designed.
Due to the emphasis on application stability, software teams with little healthcare experience often put too much emphasis on verification and not enough on software validation. Software can always be made to do what you want it to do (verification), but it is noticeably harder to be sure that you are building the right software for the job (validation). In the healthcare arena, software validation is critically important and while it is easy to simply allocate time for software validation, the actual validation process requires experience with a thorough validation process as well as strong domain expertise.
For Example. Many healthcare applications can be fully tested and agree with requirements yet be rejected in practice. Such problems are worse than crashes because their root cause is a miscommunication between the client and the development team. Sometimes these issues can be quickly fixed but more often than not, they require a substantial change or complete re-think of the problem.
Some validation errors are basic in nature, such as an input box not accepting the value being entered because of a misunderstanding of bounds. A developer, for example, might assume that all blood pressures are numerical and that all blood pressures have both a systolic and diastolic component. In practice however, it is sometimes difficult for a physician to measure the diastolic blood pressure component. In these cases, the practitioner would normally want to enter non-numerical values such as “125/?” or “125/P” for “125 over pulse.”
In more serious examples, we’ve seen software rejected because it lengthened the amount of time a doctor had to spend per patient as a result of it poorly mapping to the organization’s business processes, or because the development team had overlooked the fact that their software had to integrate with a major external system, like an external billing system.
Solution. Problems like those described above can be avoided if they are identified through a rigorous software validation process. This validation period must also be used to test all exceptional and rare (from a healthcare viewpoint) cases so that the application can be sure to integrate into the environment in even the most unusual circumstances.
A good software validation process will catch these problems before too much development work has been completed. Moreover, an agile software development process can be appropriate for certain types of healthcare application development, such as patient management and EMR software development. With an agile process, the application can be tested and deployed at various milestones of the development cycle. An agile process allows for more opportunities to perform software validation and ensures that it is conducted early in the project lifecycle.
Software validation allows users to report on any problems they have seen and gives users confidence that the application will fit into their workflow and do everything it is needed to do.
While a crash in any application is a serious error, a program that crashes from time to time can still be used if it solves the business need it was built to solve. In practice, these applications are simply restarted or corrected by some kind of workaround.
Software developers need to remember that a program won’t crash if no one uses it. Development teams should therefore ensure that they have the required healthcare software validation process and expertise on hand whenever they tackle a healthcare project.
About the Author
Quintin has an extensive software development background in clinical applications and business intelligence.