Hacker News new | ask | show | jobs
by magice 3179 days ago
The current state of software safety discussion resembles the state of medical safety discussion 2, 3 decades ago (yeah, software is really really behind time).

Back then, too, the thoughts on medical safety also were divided into 2 schools: the professionalism and the process oriented. The former school argues more or less what Uncle Bob argues: blame the damned and * who made the mistakes; be more careful, damn it.

But of course, that stupidity fell out of favor. After all, when mistakes kill, people are serious about it. After a while, serious people realize that blaming and clamoring for care backfires big time. That's when they applied, you know, science and statistic to safety.

So, tools are upgraded: better color coded medicine boxes, for example, or checklists in surgery. But it's more. They figured out what trainings and processes provide high impacts and do them rigorously. Nurses are taught (I am not kidding you) how to question doctors when weird things happen; identity verification (ever notice why nurses ask your birthday like a thousand times a day?) got extremely serious; etc.

My take: give it a few more years, and software, too, probably will follow the same path. We needs more data, though.

6 comments

I don't think you can compare software to other disciplines like medical, air transportation or architecture. These areas are well understood and pretty mature and move pretty slowly. If we ran air transportation like software somebody would already have self flying airplanes in service. They would crash from time to time though. I personally like the imperfection of software development and the freedom to imagine new things. If we want to be more mature we also have to accept much slower development cycles and innovation will be slower.
> I don't think you can compare software to other disciplines like medical, air transportation or architecture. These areas are well understood and pretty mature and move pretty slowly.

Architecture maybe. Air transportation is barely a century old, though you could make the argument that it's a offshoot of other industrial engineering disciplines.

When it comes to medicine however, while modern medicine is older than computer science it's not by much, and what's called medicine until the late 19th or early 20th century is as similar to modern medicine as computers of the early 20th century (aka rooms of people with rulers and mechanical calculators) are to computers of the second half.

And medicine has in fact changed at a pretty frenetic pace, the "miasma theory" was only vanquished circa 1880~1890, and we can now sample and edit living beings at coffee-cup price levels.

I still would argue that medical is moving much slower than software. I work in medical devices and simple experiments can take years to get done once humans are involved. In software we would get the result in a few days or weeks. I am not advocating easing the restrictions in human experimentation but these rules definitely slow down progress.
I am not advocating easing the restrictions in human experimentation but these rules definitely slow down progress.

They surely slow down the work, but whether they slow down useful progress is a different question. Given the amount of time and money that depend on software systems today, as well as the more general effect of software on our quality of life, poor quality software costs society as a whole a great deal. If we built our software more slowly and carefully but also with higher reliability and fewer issues with security, privacy and so on, would we really be worse off?

"If we built our software more slowly and carefully but also with higher reliability and fewer issues with security, privacy and so on, would we really be worse off?"

Probably not. Personally I often enjoy the Wild West attitude of a lot of software development but on the other hand this industry has a really short memory and reinvents the wheel every few years. So yes, it would probably be a good idea if we held ourselves to higher standards and adopted best practices that often have been around for a long time.

> I don't think you can compare software to other disciplines like medical, air transportation or architecture.

Why not? After all, the safety of a pacemaker is largely because of the software it runs. In many cases, medical safety and software safety are nearly the same. And throughout our world, this is true in many industries. Driving. Banking. Our software today is our safety for nearly everything. It will only continue to grow this way.

I know a little about pacemaker software. They are super conservative and very reluctant to change. For a good reason! But it's certainly not an area where you will get much innovation from. I bet there would no AWS or cloud if they had to file every incident and environment change to an FDA equivalent.
Interesting. Let's discuss this further during your office hours?
> Back then, too, the thoughts on medical safety also were divided into 2 schools: the professionalism and the process oriented

The key difference is in the medical world safety has been a primary concern from day one.

I.e. There has always been a high level of professionalism.

That is not true in the software world.

Imagine a doctor saying it's 5pm on a Friday and I'm meeting a friend in an hour so I'll just do a rush job of this surgery and it will probably work out fine.

I've seen devs happily check in shoddy work just to be finished hundreds of times in my career.

> Imagine a doctor saying it's 5pm on a Friday and I'm meeting a friend in an hour so I'll just do a rush job of this surgery and it will probably work out fine.

Imaging right now. No problem. Humans are humans. Humans sometimes do rush jobs. Or are overworked. Or stressed. Maybe they have private problems, so their mind isn't 100% on the task.

Your suggestion that doctors are all professionals and wouldn't do such things is actually the exact opposite of the medicine professions conclusions: Humans make errors. Doctors, software developers, we all. And what helps to fix these things are better tools and allowing other people to check something (see above, nurses training to question doctors is exactly for this problems).

> Imaging right now. No problem.

Same here.

While some argue that the medical malpractice system has been abused, I don't think anyone argues that genuine malpractice doesn't exist. It happens all the time. As you say, doctors are human beings, and sometimes they get lazy, careless, or overworked.

> Imaging right now. No problem. Humans are humans

> Your suggestion that doctors are all professionals

I'm saying the level of professionalism displayed by doctors is way above the average level of professionalism in software development.

I've worked in QA and have had dozens of developers blatantly lie to me.

How many doctors routinely lie and deliberately mislead their coworkers or their patients? 20%? 30%?

I've been a hiring manager and have interviewed hundreds of software developers and a huge proportion have misrepresented their actual skill set.

How many surgeons will claim they are experts in X surgery when in truth they sat in on an X surgery once while in med school?

What proportion of doctors knowingly push suboptimal solutions because it looks good on their resume or because they personally find it interesting?

"I've seen devs happily check in shoddy work just to be finished hundreds of times in my career"

From my experience a developer who does everything the correct way and takes his time do so has no chance of surviving in most companies. There is a lot of pressure from leadership to get things done quickly even if quality is compromised.

I don't know about that... Doctors famously didn't even wash their hands between patients.

In fact many still don't. The best practices and process-oriented thinking seem to not be uniformly spread.

I'm also reading Normal Accidents by Perrow and what he says about nuclear safety up to the 80s (that's when the book was published) is scary.

My thoughts: our safest endeavours look and feel safe, but they are still more failure-prone than one would assume and making them safer is incredibly hard because of social, technical and human issues exhibiting hidden coupling - system issues.

In an article about Medical safety I read they mentioned the numerous (!) times that someone got the wrong leg amputated, and at least one of the medical staff in the room knew that it was the wrong leg but were scared of being targetted for abuse if they publicly corrected their superiors.

This doesn't fit my personal definition of "professionalism".

This an interesting article about medical processes: https://www.newyorker.com/magazine/2007/12/10/the-checklist

The gist of it is that introducing a checklist for bloodline infection prevention had an enormous impact on survival. It was still difficult to introduce the process.

You don't seem to know much about the history and evolution of medicine.
Your comment is correct but getting downvotes (including mine) because of its tone / manner of statement. Don't say "You don't know anything about X", say "You don't seem to know about X, here are examples A, B, C... etc."
I'm reminded of an article I read a while back about the rather sizable effectiveness of checklists in the health sector, and how they're still not 'standard practice'. I think it's this article, but I'm not sure:

http://www.nytimes.com/2010/01/24/books/review/Jauhar-t.html

Aviation safety is also a domain to look up to.
> My take: give it a few more years, and software, too, probably will follow the same path.

I doubt it. The stakes are much lower than people's lives and health.

The Atlantic article that Uncle Bob was writing in response to lists several specific examples of software failures that did, or could have, resulted in loss of life: a failure of the 911 system; air traffic control systems; medical devices.
But then these scenarios already have the required incentives. Even software has liability issues if the stakes are this high.
Agreed. Let's not forget that a huge portion of software written is games.
I would bet it's a not huge fraction of the software written is for games. Games are a niche if software.
So basically work is safer when done by robots

Or if you spend a lot of resources in training people to robotize them

I prefer real robots

Except when something unexpected happens, in which case you'd love having had a human. The best is combined teams of man and machines. This also has its own problems, but nothing is ever perfect.
I was being sarcastic

The original post was about how professionalism was replaced by method in healthcare

But in my opinion saying "you have to be professional" and "you have to follow this checklist" it's the same thinkg

A doctor that was amputating the wrong leg without checking was not making a mistake because "tools", but because was being unprofessional.

A paramedic that is not checking all the vitals because it wasn't on the checklist, is unprofessional

Not having a checklist in the first place is unprofessional!

It's the same thing, said in a different way, just to have more doctors onboard willing to be trained to perform procedures like robots, that bring profits into private hospitals.

I think it's mainly an US thing though, I've worked in healthcare in Europe and it's not like that

Having said that, programmers skill vary a lot based on the type of work they do, the industry they work in, the experience they have, the context, where they come from etc. etc. etc.

Uncle Bob might be wrong or not showing enough data, but the lack of tools is still a programmer's fault.

You can blame management if they are doing it poorly, but if the tool you're using are not the best for your job, you're just being less than professional.

Maybe it's enough most of the time, but that doesn't mean that being professional is something else.