Keeping Life-Critical Decision Support Applications Shippable

Written by Joel Norman

Image for post
Image for post

In an earlier life, I coded several different life-critical applications that aided decision support in complex domains. Domains where a mistake could result in people being injured or dying. As the code was written, new use cases were discovered. What if there is a 2,000-pound baby with kidney failure? Is that a typo or a real thing? What if the scientist in the lab did not follow the formula as described? What if, what if?

Naturally, the fear of harm slowed development due to an abundance of caution. The qualified clinicians and scientists could describe scenarios fantastically, and always prescribe a solution. We would record each scenario or use case in the following format:

As the product was developed and new use cases were discovered, the clinician would always have an answer. For example, even the 2,000 Pound Baby scenario resulted in a prescribed solution.

If all the inputs could be discovered, it could be codified into the correct set of outputs. As the product matured, a pattern started to appear — all edge cases followed the same algorithm. Any patient or scenario in which we did not have clarity on the solution would result in asking clarifying questions to the clinician or scientist. All edge cases followed this same pattern, then I realized — all cases followed this pattern, a default use case, “Ask a Qualified Clinician.”

Given ANY INPUT that doesn’t meet any other input criteria when WE DO ANYTHING then return “Ask a qualified clinician”

If the first use case or scenario had been, “Ask a Qualified Clinician” and carefully coded the other exact scenarios, we could have theoretically released daily since the “Ask a Qualified Clinician” scenario would protect us from the “What if, what if” scenarios.

This was our first step on our pathway to keeping our Life Critical Decision Support Application always shippable. A future post will talk about carefully coding the other exact scenarios. And like all good decision support systems, before you adopt this practice, “Ask a qualified clinician in your organization and domain.”

About Joel

Joel Norman is polyglot developer, and leader, focused on delivering happiness via value to the customer. Read More…

Originally published at https://www.leadingagile.com on December 10, 2020.

The Path to Agile Transformation Starts Here | www.leadingagile.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store