Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
1  
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. –  Paddyslacker Sep 12 '10 at 14:54
add comment

2 Answers

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.

share|improve this answer
add comment

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.

share|improve this answer
    
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 Sep 20 '10 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 Dec 2 '10 at 19:40
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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