5 ms·
One of the problems I see here, and would love to find a way to solve it, is that software is best developed interatively. I see a lot of software that has some
by jrumbut 8y ago
One of the problems I see here, and would love to find a way to solve it, is that software is best developed interatively. I see a lot of software that has some cool ideas, it just needs some tweaks to get rid of ridiculously annoying flaws, or needs to put some more control in the user's hands.
Unfortunately, and inevitably, a little tweak in medical software may as well be a tweak on a satellite in space.
Like I said, changes need to be prevented from making the software bad, but the difficulty of making changes also makes the software bad. I don't know what the solution is, but I would like to see this aspect addressed more explicitly.
- zdragnar 8y agoSafety first, full stop, no exceptions. Until correctness can be done easily in accessible programming languages with a decent developer pool, iteration in this space, along with other life-critical spaces such as trains, planes (and wouldn't automobiles be nice too?) is sadly a long, manual process compared to web development. Edit: to expand a bit on correctness, think Coq but with the ease of Java or Typescript. Even Rust's safety isn't yet formally proven; that's not a knock on rust, but a demonstration of just how hard it is to do.
- jrumbut 8y agoWell that's totally true, but even then I have no idea what the legal mechanism is for making a formally verified language in the context of a medical device looks like, or even decision support software like the grandparent was discussing. Even if such a thing existed, it would require a very rich set of constraints on the program to be able to encode something like "won't make the wrong decision when a patient has a pulmonary embolism and these three other conditions" and I think that's what doctors would want.
- zdragnar 8y agoFormal verification is a barrier to quick iteration (parent comment) not just for medical software, but anything "mission critical" where the mission is "worst case scenario, don't kill someone". Hence my point about train switching and avionics. Legal mechanisms are beside the point, I think. As for rich constraints, that does bring up another point- how do you quickly iterate on a system full of bad data or systems of incompatible data? To get Watson to a degree of certainty, so much data manipulation and review happened by hand that it was a wasted effort. This isn't to say that I'm in love with what I've seen of the software my doctors use (or the puckering feeling seeing how outdated the OS tends to be). I'd be a whole lot less happy, though, if their software had the reliability of say, imgur or reddit.
- conanbatt 8y ago> Safety first, full stop, no exceptions. And here you are, cutting-edg hospitals running 2012 versions of modern software, and paying millions of dollars for the privilege. The direction has to be exactly the opposite, by giving the patient increasingly more control over his own health.
- Fomite 8y agoHaving seen several talks from some patient advocates recently, I'm skeptical that's a good idea.
- conanbatt 8y agoI think health services are some of the most misunderstood by the population above everything else.
- Pharmakon 8y agoPatients are the worst at their own health, and often deluded about their ability to manage it. Gwyneth Paltrow and homeopaths don’t rake in money because people make great decisions. When you “empower” patients past their competence you get Steve Jobs in the ground. If he had just been another schmuck, he’d probably still be alive.
- conanbatt 8y agoHealth services are in service of the patients, not on your commoner opinion of what health should be and how it should be imparted.
- ionised 8y agoAnd being in service of the patient often requires not doing what the patient wants, because the patient is not a medical professional and doesn't know shit.
- dabbledash 8y agoMost people taking homeopathic medicine want their symptoms to get better. It’s not as though they have some different definition of a “good health outcome,” they’re just mislead about the effects of the what they’re buying.
- TeMPOraL 8y agoI don't think safety issues are preventing anything here. You don't have to iterate on live systems or real patients. You can test and develop on mockups and simulated scenarios taken straight from real life. But you need to be able to get regular feedback from actual end-users.
- YorkshireSeason 8y agoCoq but with the ease of Java or Typescript Don't hold your breath. There is currently no technology on the horizon that holds a promise to bring use even close to what you ask for. Note also that Coq/Isabelle/Agda and their successors will still suffer from a variant of the oracle problem: where should the specifications come from? Finally note that almost virtually aviation software is formally verified in with interactive theorem proving as of 2018. The extreme levels of reliability in this space have always been achieved with other software engineering methods, including rigorous testing.
- zdragnar 8y agoI was thinking more of that would be (a or the) barrier to rapid iteration in medical software, not that it is likely to be achievable. Given the rigorous testing required in its place, we don't get web dev agile style iteration in medical software.
- daveFNbuck 8y agoThis is not unique to software. Physical objects also benefit from iterations in development. That doesn't mean you have to update things you've already sold. The iteration happens when people buy the next version. This used to be how software was sold too.
- TeMPOraL 8y agoI believe GP's point is that you won't even make the first version of the software good if you aren't allowed to iterate on prototypes, with feedback from actual end-users.
- daveFNbuck 8y agoThe first version doesn't have to be good. It just has to be plausibly better than not having that software or device.
- TeMPOraL 8y agoSure. But most of the time, the first version is worse than having no software, by the virtue of interfering with existing workflow. (This is what you get when you design for those who pay for your software, and not for those who'll use it.)