An Engineer’s Code of Ethics

updated 10 months ago; latest suggestion 10 months ago

Development does not exist in a vacuum. Society is the biggest system we can impact and everything you do is a part of that system, good and bad. Ultimately we must judge the weight and value of our work based on that impact.

We should have a code of ethics in whatever we do because it allows us to measure our decisions against our values. An engineer is first and foremost a human being, but sometime engineers ignore ethics and ship unethical features or outright products to users. With this talk I will try to explain why people push unethical code into production and ways that we can stop that from happening. We have a duty as people building products for people on the other end of the screen, to build a product that they can love and trust. I will answer some questions such as:

  • What’s the code of ethics of an engineer?
  • Why many of the engineers that are working on products tend to not follow this code and push “unethical” code to production?
  • What are some examples of unethical features pushed to production?
  • What we can do as a community to persuade people to follow this code of ethics?

The talk will kick off by outlining some of the basic principles an ethical engineer should follow:

  1. A engineer is responsible for the work they put into the world. Engineering is a discipline of action. You are responsible for what you put into the world. It has your name on it.

  2. An engineer values impact over form. Engineering does not exist in a vacuum. Society is the biggest system we can impact and everything you do is a part of that system, good and bad.

  3. Accept full responsibility for their own work. If you write code that is unethical you should expect that you will have consequences for your actions.

  4. Work to develop software and related documents that respect the privacy of those who will be affected by that software. As an engineer you should write software and push code to production that doesn’t violate the privacy of the user.

We have a duty as people building products for people on the other end of the screen, to build a product that they can love and trust. But we can only do that if we ourselves are transparent and straightforward in the way we do so and the route we take to get there.

Suggestions

  • 8b2f2d3e6553c2b4048b93300959895ab76b4154?size=100x100 8b2f2d3e6553c2b4048b93300959895ab76b4154 suggests 10 months ago

    This is very topical given the recent scandals at Uber and VW, however, I think it's probably best to focus this on why it's important for a developer's career to develop an ethical and moral code. The ethicality and morality of our decisions is independent of whether there are repercussions or not. I'd hesitate to tie the two too closely.

  • 8f060d3e981416a538d31896c2040ba09bb64443?size=100x100 8f060d3e981416a538d31896c2040ba09bb64443 suggests 10 months ago

    The topic is really interesting, but I wish it was a bit more specific about what kind of unethical code is addressed, like perhaps any of...

    • participation in a morally questionable product/service/company
    • malevolent code injection for personal or other reasons
    • Knowingly wasting resources (bandwidth/electricity...)
    • Producing code unmaintainable by others

    Furthermore, it would be interesting to get a glimpse of advance information about the potential speaker's own experience that has led her/him to come up with this.