When writing software for yourself, your company or third parties, do you always consider certain principles, values, standards, or rules of behavior that guide the decisions, procedures and systems in a way that contributes to the welfare of its key stakeholders, and respects the rights of all constituents affected by its operations?

And can this code of conduct sometimes be overruled by business requirements, lack of technical skills or other friction during the development process?

Some random examples in order of severity. (yes that is controversial) :

  • Do you accept known bugs as a risk for the end-user?
  • When writing applications, do you always give the end user the chance for a complete de-install?
  • Do you always secure and encrypt private data delivered end-users in your web application?
  • Do you alwask ask the end-user before submitting his entered data to the server?
  • Did you ever wrote an application that sends unwanted e-mails?
  • Did you ever work on harvesting or scraping projects only for the benefit of the business?
  • Did you ever write software that is legal but moraly controversial, like for weapons industry.
  • Did you ever wrote software that ( can intentionally) or is be used for criminal activities

It would be nice if you can get a good case with explanation on your moral and ethical decisions.

note: Since ethics and law are quite local and cultural dependent, it would be interesting if you add the location of the "crime scene" with it.

  • 2
    I think there are some really interesting talking points here @Caspar, but there are two or three good questions within this one & it might be worth asking some of the sub-points as separate questions. Commented Sep 12, 2010 at 14:54

2 Answers 2


Overall, I always keep the Software Engineering Code of Ethics in mind. However, to address some of your particular points:

Do you accept known bugs as a risk for the end-user?

It depends. If it's a mission critical system and the bug is a showstopper, that's unacceptable. However, if it's a minor flaw that has workarounds in a non-critical system, that's acceptable. I always consider the impact of the problem on the system and to the users (and people affected by) the system.

Do you always secure and encrypt private data delivered end-users in your web application?

If I was on a project where this applied, I would consult any applicable laws and guidelines and follow them. If there were no applicable guidelines, I would err on the side of caution and use some form of security. Of course, you have to weigh a number of factors, ranging from how the system is deployed (physical locations, connections between nodes) and performance of any algorithms or techniques used.

Did you ever write software that is legal but morally controversial, like for weapons industry.

All of my jobs (as you can see in my profile) have been in the defense industry (and I'm also planning on working in the defense or intelligence industries after graduation), including work on ISR systems and Command and Control systems. I don't understand anyone, especially really good software engineers with skills that these projects need, who says that they won't build such systems. The way I see it, by bringing the best software engineering practices to these systems, you are only making them safer and more reliable. And these systems that involve life and death need to be as safe and reliable as possible.

  • I believe the moral objection some people have is that you are building systems to help kill people which is wrong according to the Ten commandments. On the other hand a lot of Christians seem to think war is ok but killing individuals yourself is not. BUt it is same object a conciencious (sp?) objector has to being drafted, if war is wrong, then you shouldn't particiapte in it.
    – HLGEM
    Commented Sep 20, 2010 at 15:01
  • Then they shouldn't participate, if they really can juustify that war is wrong. Btw, I'm a Christian, and a just war is not wrong. i.e. Us fighting against Hitler was fighting an enemy of God, therefore just.
    – Michael K
    Commented Dec 2, 2010 at 19:40
  • This is a really good answer, thank you for linking to the ACM Software engineering code of ethics. As of 2017, the ACM has a working group in place to update the code of ethics to raise awareness and make it more applicable to developers
    – user7433
    Commented Aug 23, 2017 at 14:40
  • 1
    @RudolfOlah The Software Engineering Code of Ethics and Professional Practice is not the code being updated. To the best of my knowledge, there is no plan to update this code. The ACM is currently revising the ACM Code of Ethics and Professional Conduct, which is different.
    – Thomas Owens
    Commented Aug 23, 2017 at 14:43
  • oops yes you are correct! I thought they were similar!
    – user7433
    Commented Aug 23, 2017 at 14:48

Everyone does all the time in everything they do. Your actions disclose your values, your morality and your ethics, regardless of what you say or think or think you believe. If there's a discrepancy between them and it arises from a considered choice, not some sort of reflex or "passion of the moment" or out of the possession of misinformation or ignorance you could not remedy, then that choice makes clear what your true moral and ethical values are. If compensation can change your choice when faced with a particular decision, then that simply shows that money or other forms of material value are part of your moral and ethical code.

I'll also add that your list discloses things about your own moral sentiments and does not stem from some absolute moral or ethical source. I am not passing judgment or commenting on it in any way, just pointing out that presumably these are things you care about and, perhaps, things you are sometimes conflicted about.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.