There was a time when I thought it might be worth it to try and create a Software Professional Code of Ethics. I no longer think the effort is worth it as there is already a big enough rat hole in this space as evidenced here. At the time this held my interest I read some codes of ethics from other fields and studied the matter.
Here is what I came up with at the time.
- Consider first the well-being of customers and colleagues, never exploiting them for any reason.
- Give customers and colleagues respect, honesty, and confidentiality.
- Be transparent in limitations in skill or ability, saying “I do not know” without shame.
- Confer with appropriately qualified professionals when their skills are needed.
- Prevent defects whenever possible, for prevention is preferable to correction.
- Active collaboration with customers is required to provide correct solutions or services.
- Practice the science and art of software development to the best of my ability.
- Continue lifelong learning to improve my standard of software development.
- Recognize some situations are beyond my capabilities and I cannot help my customer.
- Ensure customers are aware of costs and risks to the best of my ability.
- Gladly share knowledge with others, respecting the hard-won gains of technologists in whose steps I walk.
- Consciously balance the competing forces of utility and elegance to provide appropriate and fit-for-purpose solutions.
And here are some leftover questions I still have.
- Should we address stealing and/or crediting the work of others?
- Should we address issues of data privacy and access?
- What’s missing?
- What shouldn’t be there?
- Is there any point to this?
Looks good to me, don’t forget to give credit when credit is due.
Would “don’t be a dick” not have sufficed? 🙂
It hasn’t so far.
Most of this is a transfer of ideas from the Hippocratic oath. Is that what you mean?
I saw this license on one of Phil Sturgeon’s website, which made me laugh so much I kept in my notes —>
DON’T BE A DICK PUBLIC LICENSE
Version 1, December 2009
Copyright (C) 2009 Philip Sturgeon
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DON’T BE A DICK PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1. Do whatever you like with the original work, just don’t be a dick.
Being a dick includes – but is not limited to – the following instances:
1a. Outright copyright infringement – Don’t just copy this and change the name.
1b. Selling the unmodified original with no work done what-so-ever, that’s REALLY being a dick.
1c. Modifying the original work to contain hidden harmful content. That would make you a PROPER dick.
2. If you become rich through modifications, related works/services, or supporting the original work,
share the love. Only a dick would make loads off this work and not buy the original works
creator(s) a pint.
3. Code is provided with no warranty. Using somebody else’s code and bitching when it goes wrong makes
you a DONKEY dick. Fix the problem yourself. A non-dick would submit the fix back.
This by far… is the best license agreement I’ve ever read! Made my day!
I like your list. In my mind, it represents a “Pledge to customers” and I should add a section for that on this site: http://www.programmerspledge.com/
In the DRY tradition – there is some redundancy here. 3 and 9 are very similar. It also seems to boil down to:
Care about your customer.
Act with Integrity.
This is utopian pablum that bears no resemblence to reality. This type of thinking drives my nuts. It is feel good psychobabbel from someone who is in love with their own mind, usually masked by false humility.
1. Really? My company is exploiting me. And I hope they continue to do so. Perhaps you should look up the definition of exploiting.
2. Giving respect and being honest can be mutually exclusive.
5. No one does this, ever. Anyone who has worked in software quality knows defect prevention “whenever possible” is not the goal and is too expensive. “whenever possible” has a billion dollar price tag. And you still wouldn’t prevent all the bugs.
7, 10 “best of my ability”, no one does this. Everyone works at about their average most of the time. And who is to judge what the “best of my ability” is?
8, 12. How are these ethical issues?
You can eliminate any item that is not externally, observably verifiable, since we know that self assessment is the most error prone assessment.
You should provide examples for each item in the list. What action would be in compliance and what would not? Focus on the edge conditions.
A professional code of ethics must come with sanctions for non-compliance or it is just mental masturbation. Going down that road means licensing, and malpractice insurance, and attempts to control the labor market for software engineers. Think hard before starting down that road.
Sanctions must apply, not just to engineers, but to the corporations that employ them. If your building falls down, you can sue the contractor as well as the architect. As long as software companies can disclaim liability, software engineers ought not paint a target on their foreheads.
Codes of conduct do not guarantee ethical behavior. Engineers are human beings, and they exhibit the same range of ethical conscience as the human population.
I thought I admired physicians swearing to the ancient Hippocratic Oath, until I discovered (while writing this comment) that its original text had lost its direct relevance, and had been reworked and reimagined so many times as to lose its value. So there is danger in this path too.
Can’t we just swear by all the gods and goddesses not to be a dick?
Hmm… seems to me that you’re over-thinking it. My version goes like this: “Write the system because you love it. If you don’t love it, don’t write it… or if you must, then don’t inflict the result on anyone else.”
Have you looked at the code of ethics published by ACM many, many years ago? Or the IEEE Computer Society’s either? How about the DPMA’s professional code (forgot what the “newest” name of the association is)? This is old ground, do some real research before venturing in to this arena. There are professional societies that have addressed this issue beginning as much as 50 years ago.
you are the reason lists like this exist
Oh ya, the IEEE and DPMA… who-wha? Seems like those have done a lot of good. Old ground is right.
Perhaps you should re-read the post and follow the links in it. Yes, I read them all and found that they were not representative of me or my thoughts on our craft.
All of this is why (as I wrote in the post) I came to the conclusion that this was simply a mental exercise not worthy of pursuit beyond my own consideration.
Thanks for the thought-provoking post….
I think Jose means that Giving credit where due should be in the code of ethics!
See also http://friendda.org/, the only NDA you should ever need.
Do you go to work in a Barney suit? Just kidding. What a wonderful world it would be. I can certainly strive for all these. The only person I can reasonably expect to change is me.
I’d agree with this. As I am dealing with people that don’t understand that they are ‘being a dick’, and can comprehend why they aren’t liked (assuming they notice).
Have you considered you might be working in a hostile environment and might need a job change? Or has “bitter” invaded you psyche to the point of non-extraction?