DEV Community

Cover image for What should be in the software developers 'Hippocratic Oath'?
Arden de Raaij
Arden de Raaij

Posted on

What should be in the software developers 'Hippocratic Oath'?

In my blogpost from last week I said that if software developers had a Hippocratic Oath most (tech) companies would be out of business. I said that jokingly but when I read this Guardian article: 'Coders of the world, unite: can Silicon Valley workers curb the power of Big Tech?' I was wondering if it holds some value, and what you lot think about this.
From the article:

Martin Manning, a former Silicon Valley labour organiser who served as assistant secretary of labour for Bill Clinton, believes unionising engineers is impossible. “It isn’t to say a group of engineers with concerns about privacy, AI, anything, shouldn’t be getting together and sharing those concerns,” he told me. “But they should think about a professional organisation.” Manning believes that engineers should establish codes of conduct, like doctors or librarians. (There was one such organisation in the 1980s, called Computer Professionals for Social Responsibility.)

Some questions to get you started:

  • What would be in the 'developers Hippocatic Oath'?
  • Do you think something a 'developers Hippocatic Oath' could actually change something?
  • Would a 'developers Hippocatic Oath' be viable and why / why not?

Top comments (28)

Collapse
 
sammyisa profile image
Sammy Israwi

I think something somewhat similar already exists in ACM's Code of Ethics and Professional Conduct. More specifically, the first section deals with moral imperatives and the like.

The code has some points like "Contribute to society and human well-being" and "Avoid harm to others" which sorta align with the values and ideas of the Hippocratic Oath.

Collapse
 
weswedding profile image
Weston Wedding

Came here to post the ACM's Code. ACM has had this code around for a long time and it's been, as I understand, rigorously debated for a long time. It's at least a good starting point, because of how much legwork has already gone into it.

Collapse
 
heyitshannes profile image
Hannes Calitz

I found this talk by Robert Martin that I think is a great starting point. We try and implement all of these where I work. youtu.be/BSaAMQVq01E

Collapse
 
ardennl profile image
Arden de Raaij

Thank you for that! Robert Martin has been mentioned before in this thread. It's very long though, is there a tl;dr on his views by any chance? (asking to simplify deep matter... I just realised that I'm what's wrong with the internet).

Collapse
 
joelkinzel profile image
Joel Kinzel

TL:DR; People are already dying as a result of bad software. Eventually people will catch on and demand politicians do something about said bad software. Uncle Bob wants to get ahead of that regulation and have some sort of non-governmental body that oversees the software development profession (made up of software developers instead of lawyers and politicians). That group sets for expectations for super high quality code and a set of ethics.

Thread Thread
 
ardennl profile image
Arden de Raaij

Thank you, that's appreciated. I might give it a go soon

Collapse
 
rysilva profile image
Ryan Silva

"I will always run before pushing, no matter how trivial the change"

Collapse
 
bgadrian profile image
Adrian B.G.

Random thoughts
Imgur

I agree to Uncle Bob, the regulations will come for sure, the issue is that we will be prepared or not, we will make laws, good practices or wait for the hammer bashes.

Collapse
 
damcosset profile image
Damien Cosset

It's a fascinating subject. Robert Martin had quite a few ideas on this topic.

Here is what I am scared of. We lack rules that define what a developer should do/be. Anybody can become a developer. Developers rule the world. What company doesn't rely on software these days? Governments can't enforce laws without using software at some point along the way. Of course, most of us do not have such powers or responsibilities, but it is a little daunting to think about our job in this context.

Just think about the Wolkswagen thing, where they cheated some pollution tests. During the hearing, the company official talked about 'developers who did it'. Fine, so we cheat to get by a pollution test. What next? Will we cheat to pass other security tests? People already die because of poor software. Maybe one day, some developers will decide to cheat to pass on a software test on a plane. Because of that, maybe one of those planes will crash in a stadium full of people....

Of course, I'm imagining the worst case scenario. But if that time comes, what will happen? What will we say? ' Well sorry, but that was the only way we could meet the deadline so we went for a shortcut this time...' . Pretty sure that won't work.

At this point, people might realise that we have no idea what we are doing, and it has been this way for a very long time. People will be upset, of course. Politicians will get on the case. And politicians will do the only thing they can: legislate. They will tell us what degree you must have to code. What language you must use, what tools, what libraries, frameworks...

I know it sounds very pessimistic :D But, I don't believe such an oath could be enforced by the developers on their own, but I think we definitely should while we're still free to do what we want.

Collapse
 
ardennl profile image
Arden de Raaij

Woah, that's a scary picture you paint right there! When you put it like this, I can definitely see it happening. And it makes for a damn good story too. I sure hope not though.

I guess there are quite a few regulations when human lives are involved, and when shortcuts or downright foul play is exposed companies do pay the consequences. Volkswagen definitely felt the consequences of their cheating diesel cars. Market forces sort of work when the consequences are directly felt.

But to continue on the VW example, I wonder what the engineers that applied the techniques to cheat the test are up to? Did they ever get any flack of that? Did they get away with saying 'I just did what I was told'? Did anyone even bother to ask what their responsibility is in this all?

To end on a positive note, I think there will always be a place for autodidacts in technology. There are new techniques to work on and experiment with every single day and a degree will always be a few steps behind current technology!

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

The Hippocratic Oath is from the medical profession. In that profession, it is often necessary to damage a human being (make incisions, remove parts, chemo, etc.) in order to help them in the long term. Because damaging a person is inherent in the craft and we are dealing with human life, it is necessary to acknowledge and promise that the any damage is for the long term goal of healing.

In general, this same kind of consideration does not apply to engineering disciplines. For the most part, we are tasked with manipulating non-sentient elements like electrons or metal. Most of what you are talking about as negative are business goals that many of us do not have any decision about. If anyone should have to take such an oath it would be the business executives and government officials.

The only place which such an oath might apply is to our personal responsibility for what we create. But everyone's personal values are different. And at the end of the day, if you are not okay with what your business has tasked you to do, then quit. (Realizing that not everyone has a choice to quit, but people who might be tempted to take such an oath do have the choice.)

Collapse
 
ardennl profile image
Arden de Raaij • Edited

Indeed, but I'd argue that it's not necessary to physically damage a human being to harm one and that a lot of fields edging on the medical could use a Hippocratic Oath as well.

Psychologists don't have a Hippocartic Oath for example, and they are able to severely harm people. Apparently psychologists in the CIA both think up and apply torture methods

Physically harming a person directly doesn't apply to software engineers, indeed. But software engineers are entrusted with lives, wether it's in software for medical equipment, autopilots in transport or critical control systems in industries. Even though they're edge cases they are increasingly less uncommon.

And then there's that fine line that goes back to psychology again, like the creation of extremely addictive interfaces. You can argue about how much you need to protect people from themselves, but if developers themselves shy away from the products they invented because they personally can't agree with them anymore there might be a base somewhere for some kind of pledge or oath or union or whatever.

If you make that personal oath anyway, why not make it public? Maybe a lot of people agree with your points. And maybe it's something software developers can rally behind, which in turn gives a gaggle of faceless engineers at Facebook the chance to say come together and say: This new thing we're working on doesn't really agree with all the points we've discussed. "Let's take it up, they can't fire us all".

In short: maybe, just maybe, part of the personal of software engineers, developers and even UX designers will overlap and being able to stand behind these points publicly and together could make a difference in some cases.

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

I can see that you are passionate on this topic. Good luck!

Thread Thread
 
ardennl profile image
Arden de Raaij

And I saw you changed your reply, it's appreciated, haha! To be honest, I'm not that passionate on the topic, I hardly think it's viable. I just think it's worth of discussing and thinking about, and I am happy that people like yourself take the time to read and reply to my thoughts. The stance I took is a positive one and I'm trying to imagine ways it could or should happened. I'm just as happy to read reasons why it couldn't or shouldn't be!

Collapse
 
val_baca profile image
Valentin Baca • Edited

Here's a good start:

nspe.org/resources/ethics/code-eth...

As a Professional Engineer, I dedicate my professional knowledge and skill to the advancement and betterment of human welfare.

I pledge:

To give the utmost of performance;
To participate in none but honest enterprise;
To live and work according to the laws of man and the highest standards of professional conduct;
To place service before profit, the honor and standing of the profession before personal advantage, and the public welfare above all other considerations.
In humility and with need for Divine Guidance, I make this pledge.

Collapse
 
ardennl profile image
Arden de Raaij

It's a start alright! Maybe a bit 50's though, with the Divine guidance and all.

To give the utmost of performance;

Sounds pretty Calvanistic to me. If you pledge that nowadays you'll never leave Google campus. Unless it's talking about server performance: "I pledge not to waste resources with my code".

The others points do really resonate though. I'm sure there's quite a few companies you wouldn't work at if they'd be your mantra.

Collapse
 
david_j_eddy profile image
David J Eddy • Edited

The IEEE actually has an engineer's code of ethics, I too have been thinking about a code or oath that software engineers could pledge toward in order to signify what we, the professional, are and are not willing to be involved in.

Ref: computer.org/cms/Publications/code...

What would be in the 'developers Hippocratic Oath'? A pledge to be professional, never knowingly put a system or user at risk, never engage in questionable business or advertising practices, report those that do.

Do you think something a 'developer's Hippocratic Oath' could actually change something? Did Unions change things for the working blue collar? Yes, I do think, if positioned and adopted, it could make a difference.

Would a 'developer's Hippocratic Oath' be viable and why / why not? See #2 above.

Collapse
 
ardennl profile image
Arden de Raaij

Thank you for your very clear reply, it's appreciated! I'll have a look a the IEEE's engineer's code for ethics. Maybe I should make a follow up post with all the knowledge I've gained from the replies.

Collapse
 
maxx0r profile image
Max

But what is making people better? Is entertaining them in their spare time making them better? Because they're not wasting it? Or is that entertainment numbing their soul and therefor not making them better?

And is advertising always bad for you user? If you get to spend more time making you product better because of the revenue of ads, aren't the ads good then?

Lots of the things mentioned are strongly opionated. And who's going to enforce the rules? The government? I can't speak about other countries, but the Dutch gov has proven to be rather incapable handling anything IT-related.

ad.nl/binnenland/rijk-faalt-bij-ic... (1-5 billion euros wasted per year on failing IT projects)
tweakers.net/nieuws/95618/een-derd... (36% of the projects fail completly and quite a few go over budget)

It's not that I think that an oath is a bad idea, but putting it together in a way there can't be any discussion if something is according to the rules or not, is quite hard...

Collapse
 
omawhite profile image
Omar White

This seems like an interesting idea, but I’m not sure if it would be viable. Like how would you set this up and then hold people to it.

Collapse
 
ardennl profile image
Arden de Raaij • Edited

To be honest, I don't think it's viable either. There's a fundamental difference between the medical field and the technical. Nobody wants their surgeon to be an autodidact who mostly learned by watching youtube video's and crashing a few of their first startups. Or can you image your physician being hired because they had some really interesting side-projects? We want all the insurances and credentials we can get with whoever treats us.

In development there's no oath that could be invoked or no license that could be revoked. It's a different situation.

But nonetheless, I think the idea is nice. If a doctor is asked to do something unethical by their boss, like subscribing too much addictive pills, they are supposed to speak up. If a developer is asked to make highly addictive notifications, shouldn't they speak up as well? (this might be a bad analogy...).

Anyway, it's more of a thought exercise than anything else. So let's say it would be viable, do you have any ideas on what should be in it?

Collapse
 
omawhite profile image
Omar White

I don’t think I could have put this better myself. Though I can’t think of too many specifics off the top of my head. I think securing and respecting user data/privacy would be an important part of the oath.

Collapse
 
bgadrian profile image
Adrian B.G.

To be honest, I don't think it's viable either. There's a fundamental difference between the medical field and the technical. Nobody wants their surgeon to be an autodidact who mostly learned by watching youtube video's and crashing a few of their first startups. Or can you image your physician being hired because they had some really interesting side-projects?

Nobody wants but if the employer would have a choice or the laws would restrict it for practicing until he got a license it would be possible.

Even nowday you can compare a street "dentist" from India to an US private office dentist, they both repair teeth, probably just one of them went to a proper school, only one of them would be hired by a hospital.

Collapse
 
jasodonnell profile image
James O'Donnell

Start every task with the assumption that I am wrong and full of other assumptions. Write tests that prove or disprove those assumptions first.

Collapse
 
eljayadobe profile image
Eljay-Adobe

I think a good start for the "Developer's Hippocratic Oath" is Robert Fulghum's All I Really Need To Know I Learned In Kindergarten.