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

Arden de Raaij on October 31, 2017

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 th... [Read Full]
markdown guide
 

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.

 

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.

 

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

 

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).

 

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.

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

 

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

 

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.

 

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.

 

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!

 

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.)

 

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.

 

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

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!

 

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.

 

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.

 

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.

 

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.

 

On the one hand I like the idea. On the other hand the only thing I can think of for any oath is "try your best to do good". Without some sort of guild or union structure I don't think an oath is any use. Someone needs to enforce the rules and provide education, aka indoctrination. I don't mean indoctrination in a bad way but in a way that makes certain thought patterns second nature.

But of course guilds and unions have their own problems and failure modes because most tend to get corrupted over time. So I'm not sure where that leaves us other than following in the footsteps of the better engineers.

 

Build honest products that make people better and don't monetize them with advertising

 

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...

 

Right. That is the problem whenever you try to say something in a condensed form.

I really meant this as a statement against all of the ad-driven products that monetize our attention span. It's complicated. Not every product needs to make us better, and some products make us better for a brief period of time while making us worse in some other way.

It's like dessert. Dessert certainly doesn't make us better, but it makes life worth living. Entertainment fills a similar function.

What we have now are software products that function like an endless dessert tray. You can watch as many YouTube videos as you want. You can get addicted to the constant stream of Twitter and Facebook posts. These sites are designed to suck you in and keep your attention.

A spoonful of this stuff is good. But these products are built to gorge you.

Advertising is the reason we have these endless dessert cart products. If we could find a different way to make money, we could find a healthy balance.

 

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.

 

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?

 

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.

 

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.

 

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

 

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.

code of conduct - report abuse