As a programmer, I swear to fulfill these tenets:
-
I will only undertake honest and moral work. I will stand firm against any requirement that exploits or harms people.
-
I will respect the lessons learned by those who came before me, and will share what I learn with those to come.
-
I will remember that programming is art as well as science, and that warmth, empathy and understanding may outweigh a clever algorithm or technical argument.
-
I will not be ashamed to say "I don't know", and I will ask for help when I am stuck.
-
I will respect the privacy of my users, for their information is not disclosed to me that the world may know.
-
I will be humble and recognize that I will make mistakes.
-
I will tread most carefully in matters of life or death.
-
I will remember that I do not write code for computers, but for people.
-
I will consider the possible consequences of my code and actions. I will respect the difficulties of both social and technical problems.
-
I will be diligent and take pride in my work.
-
I will recognize that I can and will be wrong. I will keep an open mind, and listen to others carefully and with respect.
Something missing? Disagree with a tenet? Think the wording should be changed? Please open an issue and we can figure it out. I highly welcome collaboration, and I will do my best to facilitate an oath that reflects a diverse range of views. Please read the code of conduct and abide by it. If you have a negative experience collaborating on this project, reach out to me and I will do my utmost to help.
Inspired by the Modern Hippocratic Oath and the Obligation of the Engineer.
My intention is to collaboratively write an oath that could be spread in my community. I think the importance of considering the impact of our actions as coders is huge, and not talked about enough.
A longer term goal would be to convince some companies to only hire developers who have taken the oath. Along the same lines if you had publicly taken the oath and your company wanted you to do something you feel is wrong, you would have a document to point at and discuss.
We have a list of public signatures in the SIGNATURES file.
If you wish to sign, please add your username and the current commit hash to the end of the SIGNATURES file (leaving a newline after your addition), and submit a pull request.
If you do sign, please also consider sharing this repository in your communities and encouraging others to take a look.
The oath is a living document, changing based on the feedback and agreement of those who wish to contribute. When you sign, the commit hash serves as the 'version' of the oath to which you have agreed. This means you are beholden to only what you have signed, and not the versions of the oath that have come later.
Signatories are welcome to upgrade or downgrade to older or newer versions of the oath whenever they choose.
To do this, open another Pull Request. On your signature line, replace the old commit hash with the hash of the version you choose. A contributor will check and merge your alteration in the same way as they would a new signature. We recommend that signatories follow the repository through GitHub so that they can see updates as they are made, and decide whether or not to re-sign.
To the extent possible under law, Widdershin (the maintainer) and other contributors have waived all copyright and related or neighboring rights to this work.