A Code of Ethics for Software
Ask a plumber not to bother with gluing the PVC piping under your sink. The fit is snug enough and will likely be just fine. It’s your risk to take, right?How would a professional plumber respond? It would probably be along the lines of “I can’t do that. It is against code and I could lose my license. Find someone else.”
But aren’t you their customer? Don’t you get to choose?
Ask your dentist to only clean the front of your teeth for half price; after all, you can only see the front of them. You are the customer and need to be frugal with your money. Isn’t it your risk to take?
As a small business owner, you tell one of your employees that was injured on the job that reporting the injury--which would raise the business’ insurance rates--would be a career limiting move. It’s your business. Shouldn’t you keep costs down?
Now, ask a programmer not to write Unit Tests (just this once) since we have some big deadlines to meet. It's your product after all. What do you suppose the typical programmer’s response would be? In our experience, they likely say something along the lines of “Ok then. It’s your funeral.”
Why is this? Why does our industry get to act so unprofessionally? Can you even call software development a profession?
What do all these other industries have that we do not? Education? Quality guidelines? Government regulations? What about a Code of Ethics?
There are quite a few differences, but we contend that one key aspect of any profession (or at least a great starting point) is a Code of Ethics. Something a professional can always fall back on when the pressure is on.
Earlier this year, several Scrum experts got together to craft a Code of Ethics for software development. After a few iterations, here is what we came up with:
Software Professional Code of Ethics
As a software professional, I will conduct myself honestly and ethically wherever I operate in the world. I will adhere to the code of ethics herein and uphold the values of Openness, Courage, Respect, Focus, and Commitment.
I will not waver from any of the following professional standards under any pressure or incentive and:
- I will understand and communicate the value of the work delivered.
- I will define and uphold a clear and transparent standard of quality and I will not compromise on that standard.
- I will not withhold any information that might harm my team, our stakeholders, our users or the public community.
- I will not imply certainty where it does not exist.
- I will selflessly share my knowledge with others.
- I will continuously improve myself.
- I will do the best I can.
- I will challenge anyone that does not demonstrate the professional standards herein.
- I will uphold this code of ethics for myself and others so we collectively improve the software profession.
By this code, I will abide and subscribe.
We did not want to make it about Scrum or any particular practices. It focuses on values and professionalism. You may notice that the 5 Scrum values are included, but that is because these are the values we, as software professionals, truly believe in. It is why we were drawn to Scrum in the first place.
What do you think? Would you sign it?
Mark Noneman has been a Scrum and Lean practitioner since 2002 applying, adapting, teaching and coaching agile and lean development in a wide variety of software and non-software projects. The most rewarding part? Helping teams succeed at becoming self-organizing and delivering higher quality more quickly than they have ever experienced before!