Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Ethical Dilemmas Today's Programmers Face

samzenpus posted about 6 months ago | from the do-the-right-thing dept.

Programming 183

snydeq (1272828) writes "As software takes over more of our lives, the ethical ramifications of decisions made by programmers only become greater. Unfortunately, the tech world has always been long on power and short on thinking about the long-reaching effects of this power. More troubling: While ethics courses have become a staple of physical-world engineering degrees, they remain a begrudging anomaly in computer science pedagogy. Now that our code is in refrigerators, thermostats, smoke alarms, and more, the wrong moves, a lack of foresight, or downright dubious decision-making can haunt humanity everywhere it goes. Peter Wayner offers a look at just a few of the ethical quandaries confronting developers every day. 'Consider this less of a guidebook for making your decisions and more of a starting point for the kind of ethical contemplation we should be doing as a daily part of our jobs.'"

cancel ×

183 comments

Sorry! There are no comments related to the filter you selected.

I've grappled with the ethics of CS for 20 years.. (5, Insightful)

Hentai (165906) | about 6 months ago | (#46810181)

And every employer I've developed code for has told me the same thing: shut up and get back to work.

Ultimately, in order to address the ethical considerations of programming, we would need a work culture that supports it. Otherwise it simply becomes another "know which side your bread is buttered on" lesson.

Re:I've grappled with the ethics of CS for 20 year (5, Informative)

Tablizer (95088) | about 6 months ago | (#46810313)

I've been in a situation where I pretty much had to lie or lose my job. This was just after the dot-com crash in California and new gigs were hard to find and I had a family to support. If I were single, I'd tell them to shove it and find a gig in the north east, which still had "legacy" openings at the time. But that wasn't a real option.

I had knots in my stomach over that conundrum; it's not pleasant. I could relate a little bit with the dude in Les Miserables who had to choose between theft or starvation.

Even now I have to often live with foolish choices by PHB's simply because they are the boss. It may not be "unethical", but often it's bone-headed unprofessionalism. I try to CYA as much as possible, but sometimes you just have to shut up and play the game if you want the rewards of the game. The work world is messy Dilbertism in most orgs.

Re:I've grappled with the ethics of CS for 20 year (4, Insightful)

musth (901919) | about 6 months ago | (#46810529)

...but sometimes you just have to shut up and play the game if you want the rewards of the game.

Basically, you chose to shut up and do unethical things, to keep getting your hands on those $$$$ greasy paychecks. So quit rationalizing.

You had and have options.

Re:I've grappled with the ethics of CS for 20 year (5, Insightful)

Tablizer (95088) | about 6 months ago | (#46810627)

Those options don't scale. Honest people will receive less resources and have less influence and perhaps have less children, leaving the world full of slimebags and enablers of slimebags.

It's probably why so many slimebags exist today. If you want to solve the issue on a large scale, you need to find a way to change the system(s) to not reward slimebags, not rely on futile individual volunteerism.

Re:I've grappled with the ethics of CS for 20 year (2)

rk (6314) | about 6 months ago | (#46810751)

Honest people becoming dishonest doesn't scale either.

Re:I've grappled with the ethics of CS for 20 year (0)

Anonymous Coward | about 6 months ago | (#46810779)

> Honest people becoming dishonest doesn't scale either.

You don't get out of your mom's basement much, do you? Because in the real world, it scales *just fine*.

Re:I've grappled with the ethics of CS for 20 year (2)

gweihir (88907) | about 6 months ago | (#46811263)

Indeed. Going over to the dark side is easy. Coming back from it is hard or impossible.

Re:I've grappled with the ethics of CS for 20 year (0)

Anonymous Coward | about 6 months ago | (#46811891)

Going to the dark side is easy...for money nope...because if it was everybody would do it

Re:I've grappled with the ethics of CS for 20 year (2)

musth (901919) | about 6 months ago | (#46810769)

That's convenient, isn't it? Because in your worldview individuals are exempt from making moral choices - they need just point out some other person or entity which has a lot of influence.

Re:I've grappled with the ethics of CS for 20 year (1)

gweihir (88907) | about 6 months ago | (#46811259)

Making moral choices is not an absolute business. In the real world, you have to balance different, often contradictory things, take into account how big your influence actually is, etc. Those that require absolute morality from everybody (such as you do) are just authoritarian morons. They are likely lying to themselves on a daily basis, because nobody can sustain absolute morality. Also, quite a few of these assholes are something even worse: They do require absolute morality from _others_ but do not even start to think that it might apply to themselves.

Re:I've grappled with the ethics of CS for 20 year (0)

Anonymous Coward | about 6 months ago | (#46811195)

Oh, so honest people should be dishonest because otherwise the dishonest win? You're a real hero [akimbocomics.com] fighting dishonesty like that.

Re:I've grappled with the ethics of CS for 20 year (3, Interesting)

Tablizer (95088) | about 6 months ago | (#46811383)

You are putting words into my mouth. Basically I'm saying that IF you want to change behavior on a large scale, you need to find a way to change the reward system(s) on a large scale.

Nagging people to "be good" and accept the down-sides of honesty for altruistic reasons alone will not work well in the longer run. I'm not saying whether asking them to do such is good or bad, I am only saying it won't work on a large scale. I'm trying to explain it in terms of cause and effect rather than give it a good/bad value judgement.

X will change Z but Y won't change Z. Whether doing Y is "good" even though it won't change Z is another issue that I didn't address either way.

Re:I've grappled with the ethics of CS for 20 year (1)

gweihir (88907) | about 6 months ago | (#46811203)

Indeed. It is actually pretty problematic putting children into this world, when you think about it. Things are grim (not that they have been any better before...).

Re:I've grappled with the ethics of CS for 20 year (1)

Jmc23 (2353706) | about 6 months ago | (#46811327)

...says the slimebag.

You shouldn't be critical of the spineless cowards that made the same decision as you. Nice how you managed to blame others for making the choice too easy for slimebags like yourself.

Re:I've grappled with the ethics of CS for 20 year (2)

gweihir (88907) | about 6 months ago | (#46811181)

Oh those with simple models of the world and simple minds....

You do realize that you are part of the problem, right?

Re:I've grappled with the ethics of CS for 20 year (1)

Tablizer (95088) | about 6 months ago | (#46811427)

In that case, show me the "proper" complex model and explain, with evidence, why it is correct, and perhaps I'll start to agree with you. I'm open to good old-fashioned logic, science, and reason.

Re:I've grappled with the ethics of CS for 20 year (1)

Beck_Neard (3612467) | about 6 months ago | (#46811899)

It's always this, isn't it? "Be realistic, it's a tough world, you can't get by being honest!" I'm not judging people who do what they have to do to survive. But if you are faced with a choice between a $10k job that is honest and a $20k one that involves taking advantage of the poor and the weak and the less intelligent, and you choose the latter, you can't complain that the world is a tough place. You're the one making it a tough place. You are directly responsible, in part, for all the bad shit that happens in the world.

Re:I've grappled with the ethics of CS for 20 year (1)

datorum (1280144) | about 6 months ago | (#46811095)

I've been in a situation where I pretty much had to lie or lose my job.

do you have an example? I only have limited work experience, but I can't remember anyone else I know or myself run into situations like that, well at least no programmers.

Re:I've grappled with the ethics of CS for 20 year (2)

Tablizer (95088) | about 6 months ago | (#46811495)

I don't want to go into details, but basically it was we actually used component brand X to build an application with when the customer wanted brand Y. I never learned why they were picky about such, for as far as I could tell it didn't matter much. Either way, there was not enough time to recode it and rather than tell the customer, my boss & owner wanted me to lie with them.

Re:I've grappled with the ethics of CS for 20 year (3, Insightful)

websitebroke (996163) | about 6 months ago | (#46811685)

While lying to someone is quite bad, it is a whole order of magnitude worse to be forced to lie with them.

Re:I've grappled with the ethics of CS for 20 year (1)

Anonymous Coward | about 6 months ago | (#46811739)

I am not the poster, but I do have an example and a different answer. I worked for a very large telecom who wrote applications polling data from people's phones. At first I liked the project, it used some cool technology and was not pulling a user did not opt in to. GPS data, phone health, etc..

When they started triangulating locations from towers and bypassing the user, I took issue. They also started polling data on phones which a user would never agree to, and hid the polling in encrypted blobs. I argued the ethics, and left the company. It's a luxury that a vast amount of experience has given me, and many people don't have that luxury.

Companies may claim to poll this data for good purpose, and it often starts that way. However, with great power comes cravings for more power. Also lots of nepotism and cronyism. As a side note, if you trust your smartphone you are a moron.

Re:I've grappled with the ethics of CS for 20 year (2)

khasim (1285) | about 6 months ago | (#46810381)

It's worse because while YOUR post actually reflects an ethical/moral issue, TFA does not.

Here's their #1 item:

Ethical dilemma No. 1: Log files -- what to save and how to handle them
Programmers are like pack rats. They keep records of everything, often because it's the only way to debug a system. But log files also track everything users do, and in the wrong hands, they can expose facts users want kept secret.

90%+ or whatever of the programmers out there are working on in-house code for in-house projects used by in-house people. Stuff that will never ship. So it does not matter how much stuff is logged.

For those coders who are working on code to ship, the issue becomes more about where to save the huge log files.

Log everything and store it locally? Why is your app taking up 20 GB of space?

Log everything and store it remotely? Why is your app sending 20 GB of traffic?

The ethics/morality is more "how badly do you want to be the punchline to a joke when it is discovered".

Re:I've grappled with the ethics of CS for 20 year (1)

HornWumpus (783565) | about 6 months ago | (#46810533)

20GB of logs? Stop logging routine, all the time, stuff.

Tell IT about the logs. Throw the responsibility over the wall. Under no circumstances, remote log a customer. IT eventually has to support your system. Build it so they can. Logging levels etc. Every coder should do a year or two doing, at least, part time IT, just so you understand how much the job sucks and how easy it is to not fuck them over while coding. They'll complain anyhow.

You don't want to still be supporting the POS yourself do you? If you don't know how to do it better when you're done, all that proves is you didn't learn anything.

Re:I've grappled with the ethics of CS for 20 year (4, Insightful)

K. S. Kyosuke (729550) | about 6 months ago | (#46810593)

Furthermore, they completely forgot the obvious ethical dilemma of an InfoWorld web site programmer tasked with implementing multi-paged articles.

Re:I've grappled with the ethics of CS for 20 year (1)

Rudisaurus (675580) | about 6 months ago | (#46811491)

Furthermore, they completely forgot the obvious ethical dilemma of an InfoWorld web site programmer tasked with implementing multi-paged articles.

Slashdotted. Problem solved.

Re:I've grappled with the ethics of CS for 20 year (1)

DaveV1.0 (203135) | about 6 months ago | (#46811215)

Why isn't your program logging based on need instead of logging everything all the time? There should be at a minimum a switch for managing logging levels, Ideally, the log level could be changed on the fly via signals or reloading the configuration.

Re:I've grappled with the ethics of CS for 20 year (1)

swillden (191260) | about 6 months ago | (#46811949)

90%+ or whatever of the programmers out there are working on in-house code for in-house projects used by in-house people. Stuff that will never ship. So it does not matter how much stuff is logged.

It still matters, if the data being manipulated is about customers. And it almost always is.

Re:I've grappled with the ethics of CS for 20 year (1)

genx76 (3622475) | about 6 months ago | (#46810715)

I like to classify the things we do as useful/useless/harmful for the progress of humankind (or, to be less pompous, for the use of the society, or for the common good). I consider that during my years of work, I have been 90% useless, 8% useful, and 2% harmful.

Naturally, everyone may set different limits for these categories. As far as I am concerned, in my useless category, I put the products I have developped when a competitor already had a very similar product, and the stuff that should have been useful if the projects had not been canceled and trashed. In the useful, what I have done for public transportation (well, the small part that was not trashed). I was lucky to avoid most of the harmful kind until my last position, where I had to design stupid and polluting gadgets for billionaires, which was partly the cause of my early resignation.

What we need is Guild-style unions (1)

marcgvky (949079) | about 6 months ago | (#46810753)

Where the guild has a code.... I don't promote a mafia-style-teamsters thing. But a strong union of folks where your peers will be "influenced" to support ethical behavior. Let's face it, most U.S. citizens have too much to lose (mortgage, marriage, kids, debt) that won't ALLOW them to speak up.

Re:I've grappled with the ethics of CS for 20 year (3, Insightful)

bill_mcgonigle (4333) | about 6 months ago | (#46810975)

Right, ethics classes won't help. I left a good career at a major medical center when I was told that we were going with the technology that would likely create medication errors because the correct software was too expensive and it would be cheaper to settle the lawsuits.

Nobody needs an ethics class to know that that's wrong behavior, and taking an ethics class would not have changed that behavior. And it certainly wasn't the programming staff that needed ethical correction.

Ethics v. Morals (-1)

Anonymous Coward | about 6 months ago | (#46810185)

They probably mean "moral" rather than "ethical". Morality is about doing what's right, and ethics are about seeming to do what's right.
I think the rampant misuse of "ethical" originally came from trying to avoid religious overtones.

Re:Ethics v. Morals (2)

Hentai (165906) | about 6 months ago | (#46810201)

Other way around, actually. 'Morals' -> 'mores', which is about customs and expected public behaviors; 'ethics' -> 'ethos', which is about internal guiding principles.

Re:Ethics v. Morals (-1)

Anonymous Coward | about 6 months ago | (#46810267)

Etymological fallacy.

Re:Ethics v. Morals (1)

Hentai (165906) | about 6 months ago | (#46810413)

It's not a fallacy, because we use words and correlations between words to convey nuance. Otherwise things get so slippery that you can claim you meant anything.

Re:Ethics v. Morals (1)

khallow (566160) | about 6 months ago | (#46810461)

This is a pretty weak troll. While it is true that the previous poster would have been more accurate to say that morality and ethics weren't defined as claimed by the original poster, their etymological analysis did reflect the actual meaning of the terms.

Re:Ethics v. Morals (1)

Qzukk (229616) | about 6 months ago | (#46810645)

That begs the question, "what is an etymological fallacy"

Re:Ethics v. Morals (0)

Anonymous Coward | about 6 months ago | (#46810829)

I see what you did there, and I'm on to you! Consider yourself on notice, bucko!

Re:Ethics v. Morals (0)

gweihir (88907) | about 6 months ago | (#46811283)

Indeed. So "moral" is in many cases indeed religious, as it is situation dependent and the human race has decidedly not overcome the plague of religion at this time. Ethics is what you come up with yourself instead of copying what other expect from you. With regard to being a good person, "moral" is worthless and ethics is everything. With regard to being accepted in a specific community, it is the other way round, unless that community is particularly enlightened.

Re:Ethics v. Morals (2)

marcgvky (949079) | about 6 months ago | (#46810805)

The moral man knows the difference between right and wrong; the ethical man does the right thing, even when nobody is looking.

Re:Ethics v. Morals (0)

Anonymous Coward | about 6 months ago | (#46810897)

The moral man knows the difference between right and wrong

"Right" means things behaviors he agrees with, and "wrong" means behaviors he disagrees with.

Not a programmer's problem, a managerial one (1)

Anonymous Coward | about 6 months ago | (#46810193)

To a computer programmer, ethics is dead code, and I mean that in a good way. It takes effort to do wrong, and money to add the ethically problematic features -- and the only person who makes that happen is your boss.

Re:Not a programmer's problem, a managerial one (3, Insightful)

Hentai (165906) | about 6 months ago | (#46810217)

To a computer programmer, ethics is dead code, and I mean that in a good way. It takes effort to do wrong, and money to add the ethically problematic features -- and the only person who makes that happen is your boss.

Not necessarily - imagine software that controls a physical device, which has safety concerns. There's a simple and elegant check that can be performed that catches 90% of the dangerous use-cases, or there's a really hideously complex set of layered checks that will catch 99% of them. You have two days to ship or you're fired. Which do you include?

Re:Not a programmer's problem, a managerial one (3, Interesting)

thegarbz (1787294) | about 6 months ago | (#46810309)

The fact that this comes up as a question at all is the reason CS needs to follow the footsteps of engineering, medicine, and other "professions". If everyone was registered, bound by a code of ethics and legally required to do so to perform their work employers wouldn't be so quick to think they can replace you with someone willing to follow orders. If the industry had a professional association (I won't call it a union but at times they perform similar functions) to out the employer attempting to force someone to go against a required code of ethics, then this question shouldn't actually come up.

Re:Not a programmer's problem, a managerial one (3, Interesting)

canadiannomad (1745008) | about 6 months ago | (#46810871)

How quickly do you think those jobs would be shipped oversees to people who aren't bound by such associations?
That is the computer programmers' problem.

Re:Not a programmer's problem, a managerial one (1)

thegarbz (1787294) | about 6 months ago | (#46811279)

Not every problem is exportable, even in computer science.

Re:Not a programmer's problem, a managerial one (1)

LF11 (18760) | about 6 months ago | (#46811433)

No, but computer science is particularly easy to export.

Re:Not a programmer's problem, a managerial one (0)

Anonymous Coward | about 6 months ago | (#46811501)

Not easily, if:
1. Individual talent realize they're better off joining a trade association & get better pay. Yes, even internationally.
2. Firms can be successfully sued for not hiring qualified programmers.

#1 is a function of what it takes to make a good programmer; either you have raw talent or you have a good deal of experience & training. The former is by definition rare whereas the latter is by definition expensive. You can't train yourself to program without a good, working computer and even today this isn't cheap by third-world standards. Not by a long shot.

#2 is a function of making programming a true, certified trade. I've been programming for nearly three decades (not all professionally), and I'm certain there are things I can learn from a formal trade certification process. For one, I know there are plenty of things I can learn from someone who's done a lot of embedded programming.

If you're making software that automates certain life-and-death situations, it should be a significant risk to management & decision makers to hire people who are unqualified. And this can only happen if one can safely and meaningfully blow the whistle.

Re:Not a programmer's problem, a managerial one (1)

Rinikusu (28164) | about 6 months ago | (#46811637)

So it comes down to: we don't want to form a professional, union-like organization that has standards and ethics, because we're afraid we won't have jobs.

God this country sucks.

Re:Not a programmer's problem, a managerial one (1)

Beck_Neard (3612467) | about 6 months ago | (#46811945)

If it makes you feel any better, the idea would never happen anyway because the government would seriously oppose it with all force. The labor unions are gone and the only reason there are professional engineering and medical organizations is because people acknowledge the value of well-built bridges and experienced surgeons but no one really cares about bad code.

Re:Not a programmer's problem, a managerial one (1)

russotto (537200) | about 6 months ago | (#46810999)

The fact that this comes up as a question at all is the reason CS needs to follow the footsteps of engineering, medicine, and other "professions".

And become moribund as a result?

We really don't need a bunch of largely-self-appointed old guys sitting around in a committee making choices for the entire field in the form of a "code of ethics", which the rest of us will then be bound by now and forevermore. It won't make anything better and it will make a lot of things worse.

Re:Not a programmer's problem, a managerial one (0)

Anonymous Coward | about 6 months ago | (#46811457)

The fact that this comes up as a question at all is the reason CS needs to follow the footsteps of engineering, medicine, and other "professions". If everyone was registered, bound by a code of ethics and legally required to do so to perform their work employers wouldn't be so quick to think they can replace you with someone willing to follow orders. If the industry had a professional association (I won't call it a union but at times they perform similar functions) to out the employer attempting to force someone to go against a required code of ethics, then this question shouldn't actually come up.

Except there's one big problem: Those other professions aren't easily outsourced and require a local presence. CS doesn't have going for it. "Oh, country X has a legal and code of CS ethics? How lovely, we'll go to country Y instead".

Re:Not a programmer's problem, a managerial one (1)

Eythian (552130) | about 6 months ago | (#46811723)

There are societies that have this sort of thing as their purpose, for example the IITP [iitp.org.nz] , though not so strong. I don't think there's any need for a requirement that software development become a regulated profession overall, however I think there some cases where it might be a good thing: in particular, things where failures could cause injury or loss of life (which doesn't apply to most jobs.)

To use the example of the medical field, it's not regulated to take someone's temperature to see if they might have a fever, or to give them a panadol. But it is regulated to prescribe medication, or perform surgery. The consequences of failure are potentially much higher in the latter case.

Re:Not a programmer's problem, a managerial one (2)

HornWumpus (783565) | about 6 months ago | (#46810409)

The 90% case and updated instructions for the user. Even if you have to call him/her personally. Aware people work around dangerous conditions every day.

Re:Not a programmer's problem, a managerial one (2)

Hentai (165906) | about 6 months ago | (#46810477)

And when you know for a fact that those instructions will be handled by a department that is not interested in communicating honestly with the customer, especially if doing so might convey a sense that the product is dangerous?

Re:Not a programmer's problem, a managerial one (2)

dentin (2175) | about 6 months ago | (#46810747)

You declare that you'll start working on it immediately and will put in overtime, but even so it won't be ready by the ship date. State that you won't sign off on it or release it until you feel it's ready, because if someone gets hurt, you could be responsible. Shrug your shoulders and wait for a response.

- If you're ordered to do it anyway, state that you can't be paid enough to cover the legal liability and you won't be party to it.

- If they take you off the project, say OK and walk out. You can effectively do nothing more.

- If you're asked to find solutions, do your best, but refuse to cheese it.

- If they threaten to fire you, try to leave a social 'line of retreat' for them to back down without losing face. Something along the lines of 'firing me won't help get it done any faster, but at least it won't be my ass on the line. If that's really what you think will get this project done on time, then I'll show myself out'.

A lot of people will complain about this, saying things like 'I can't afford to be without a job' or 'I don't want to have to find a new job' or 'I don't want to move'. To those people I say: the threat of firing is only effective on an employee who is afraid of being fired. If you want power in the employee-employer relationship, you'll have to accept this as a simple cost of doing business.

Re:Not a programmer's problem, a managerial one (0)

Anonymous Coward | about 6 months ago | (#46811307)

There's a simple and elegant check that can be performed that catches 90% of the dangerous use-cases, or there's a really hideously complex set of layered checks that will catch 99% of them. You have two days to ship or you're fired. Which do you include?

This is why everyone in our industry should keep a year's salary in the bank. We need to have zero fear of being fired so we can say unpopular things.

P.S. They can't fire you if you document why you're saying no...if they release the known-dangerous functionality and you've got proof that they knew, you've got leverage over them.

Re:Not a programmer's problem, a managerial one (0)

Anonymous Coward | about 6 months ago | (#46810235)

Tell that to all of the devs that don't give a crap about security and write readily exploitable code.

Re:Not a programmer's problem, a managerial one (2)

gweihir (88907) | about 6 months ago | (#46811303)

While that is a nice idea, it unfortunately is not so simple. For example, giving defective code to a customer that depends on it working seems to fail your test.

I thank yo0 for your time (-1)

Anonymous Coward | about 6 months ago | (#46810229)

On baby.<..doN't

Professional Liability (2)

m93 (684512) | about 6 months ago | (#46810371)

I've heard that one of the main features of getting your Professional Engineer license is that you are then legally liable for your work. Lot of people working in IT with the title "engineer", so why not hold them to higher standards? I can see the point of view from the people who want just that.

Re:Professional Liability (1, Informative)

Anonymous Coward | about 6 months ago | (#46810405)

Because most employers are not willing to pay the higher prices that people with such standard requirements would demand. Most companies want cheap replaceable code monkeys, not professionals with a code of ethics.

Re:Professional Liability (1)

HornWumpus (783565) | about 6 months ago | (#46810441)

Lots of engineers in railroads too.

Real engineers (PE or not) have responsibility and authority in proportion. PHBs can't deal with that, but that's a cultural problem with most cube farms.

Re:Professional Liability (1)

gweihir (88907) | about 6 months ago | (#46811347)

Indeed. "No right to decide" comes with "no responsibility". It is time that coders, designers and architects of software are empowered to make technical decisions and at the same time are liable for what they decide. That will cut down on all the semi-competent (at best) amateurs plowing the field today.

Re:Professional Liability (0)

Anonymous Coward | about 6 months ago | (#46811647)

Indeed. "No right to decide" comes with "no responsibility". It is time that coders, designers and architects of software are empowered to make technical decisions and at the same time are liable for what they decide. That will cut down on all the semi-competent (at best) amateurs plowing the field today.

This is interesting. I've maintained for years that a major reason why software designers hate unions is because they think of themselves as "management". Because decision-making is an essential and ongoing part of the job. And because unions represent the exact opposite of flexibility in many cases, but that's another matter.

But the parent has shown that there is a contrast between the "management" conceits of programmers and true management in that programmers are generally only liable for doing what they are told, whereas true managers are generally accountable for all their decisions, not just what happens inside programs.

So in other words, the software designers are not truly management, they're labor. Just like the sweaty blue collar folks, except for being less likely to have organized representation to counter the corporate organization when conflicts arise.

Re:Professional Liability (1)

hendrips (2722525) | about 6 months ago | (#46810513)

It's always seemed weird to me that there's so little limitation on who can call themselves an engineer. Doctors have medical school and board exams, lawyers have the bar exam, heck, even cosmetologists have to be board certified.

In my own profession - p&c actuary - I have to pass a series of 11 exams plus continuing education courses just to become fully credentialed. And when I (someday, please God) get done with that, I will be personally liable for every actuarial statement that I ever produce. I could potentially be personally sued for even the tiniest error in any actuarial statement, although that kind of thing is very rate. And I have to go through all of this just to make sure that I don't incorrectly estimate a client's auto insurance costs.

Re:Professional Liability (1)

farble1670 (803356) | about 6 months ago | (#46810903)

everything else being equal, being liable for your work is not a good thing. unless it came with some other benefit (like a large pay increase), no thanks.

Re:Professional Liability (1)

gweihir (88907) | about 6 months ago | (#46811401)

The only way that works in any engineering-like profession is if you are liable for your work. Of course that means you get to decide how to do it and it also means you get to be paid accordingly. Liability is limited by some things of course: If you followed sound engineering practices (honest mistakes are fine too), criminal liability is off the table and civil liability will be taken by your insurance and they claim the money back from you. Of course, they can raise their fee within reasonable limits. If you hacked something together, on the other hand (still the standard "software engineering model" these days), you deserve criminal liability where appropriate (people got hurt) and your insurance will be entirely justified in demanding all it had to pay back from you.

This is the only way to ensure people doing engineering work are actually qualified engineers that understand their limits.

Re:Professional Liability (1)

Githaron (2462596) | about 6 months ago | (#46811615)

Liability for your code would also destroy open source libraries and collaberation. Why would you give something away for free if you knew someone could sue you over it?

Re:Professional Liability (0)

Anonymous Coward | about 6 months ago | (#46811733)

Even worse, what liability insurance would dare cover some random open source code off the net? Insurance would force a de facto ban on 99% of open source software.

Re:Professional Liability (1)

gweihir (88907) | about 6 months ago | (#46811323)

I am all for that. Then the hiring of semi-competent personnel to design and implement software would maybe decline.

Ridiculous stuff (1)

Kittenman (971447) | about 6 months ago | (#46810449)

TFA has headings such as "To bug-fix or not to bug-fix"... I get the impression someone wanted to write something about ethics and IT, and got some people in the pub to come up with some ideas.

We'll probably see the items used under a different heading ('Professionalism ... to bug-fix or not to bug-fix') next week.

The biggest ethical problems not even mentioned (1)

musth (901919) | about 6 months ago | (#46810489)

"Are you going to be an asshole who chooses to accept money for working, directly or indirectly, for the military?"
(This is what the "defense industry" is, kiddies. Very lucrative and widespread.)

"Are you going to be an asshole who chooses to accept money for working, directly or indirectly, for spy agencies?"

Addressing these ethical problems requires personal political and social awareness, something often missing from young people's time allotments.

Re:The biggest ethical problems not even mentioned (0)

Anonymous Coward | about 6 months ago | (#46810851)

The article summary confuses good safety practices with ethics.

Things don't fail because of questionable ethics (unless removing safety mechanism were deliberate). Bridges, pace makers, and auto-pilot fail due to poor safety engineering - things like: safety factors, redundancy, and rigorous control loop and state-machine logic.

Poor ethics generally involves the various ways to harm to other beings. For example, finding ways to make animal vivisection practices lower cost or skirt regulations, writing software or exploits to spy on your fellow citizen, creating lower-cost or faster anal electrocution systems for chicken slaughter houses, ignoring "home country" safety practices in other countries, improving engine and hull design for more efficient human or drug trafficking, improving mass-kill weaponry or developing weapons that do not comply with the Geneva conventions, atc.

Re:The biggest ethical problems not even mentioned (1)

gweihir (88907) | about 6 months ago | (#46811421)

Indeed. Well said.

To make matters worse, it is not that black and white either: For example, working on SELinux for the NSA is not ethically problematic.

End User License Agreement and Ethical Dilemmas .. (1)

DTentilhao (3484023) | about 6 months ago | (#46810499)

First I ever head of 'Ethical Dilemmas' in relation to programming. I wonder what the various commercial End User License Agreements have to say in relation to, lets say, a piece of medical equipment malfunctioning and injuring a patent.

Re:End User License Agreement and Ethical Dilemmas (1)

pipedwho (1174327) | about 6 months ago | (#46811315)

Doesn't really matter, as the EULA can't effectively waive legal responsibility/requirements. A company can try to use an EULA to overtly say or infer that you don't have a particular right, but it can never absolve itself of observing that right.

Automation (2, Interesting)

Anonymous Coward | about 6 months ago | (#46810507)

One I have personally grappled with, a script I'm writing will automate 5 peoples jobs away. Chalk it up as inevitable even I know people will lose their low skilled jobs as a direct result? I know it has to happen but that doesn't make me feel good about it. To not write it as best I can would of course be theft from my employer of course though.

Old (1)

Anonymous Coward | about 6 months ago | (#46810579)

The impact of excessive power over prole lives is old news. The only new bit is that instead of a faceless corporation exercising their influence via hordes of powerless drones, the horde is a (relatively) tiny handful of programmers, who SEEM to have a large degree of potential power (only in the literal key-stroking sense) over the implementation and impact.

facebook, google, NSA, etc (0)

Anonymous Coward | about 6 months ago | (#46810611)

If programmers followed this doctrine, there would be no Facebook, no Google, and no mass suspicionless surveillance.

And that would be a good thing. But people need to eat, ya know? And you can't really expect people not to feed their families when such offers come along...

Re:facebook, google, NSA, etc (1)

musth (901919) | about 6 months ago | (#46810695)

What rationalizing bullshit, as if programmers don't have brains and can't be expected to develop and follow moral consciences. As if they are somehow exempt from the moral duties we all have.

You can feed your family doing other things, which may not give you as much comfort as you want, but which don't have you hurting other people to the same degree.

Re:facebook, google, NSA, etc (1)

Anonymous Coward | about 6 months ago | (#46812127)

You're assuming that the programmers working on it actually know what they're working on.

At some point between 9/11/2001 and 6/5/2014, I worked for a defense contractor for several years. We made a database system which... I don't want to say too much, but it could handle slurping up and indexing every email entering and leaving the US at the time. The system was designed for archives and such, and many morally-upright public institutions do use it. But one of our customers, a couple of steps down the supply chain, was the NSA.

So while I can't speak for Facebook or Google, I did technically work on the NSA mass surveillance system. I had no idea! Do you honestly think they'd tell someone like me? If I'd known, I would have raised holy hell about it. But I didn't. For all I knew, there's a fuckton more Chinese and Russian military satellite traffic than most people realize.

If it's any consolation, I feel like crap about it now.

I mean, there are people in technical positions who knew what's going on, but there may be far fewer of them than you think. I suspect that most of the spying technology is glued-together off-the-shelf components, much like every other enterprise system, and most of the smarts are in those components.

(You bet your ass this was posted via Tor.)

Content protection (3, Informative)

dentin (2175) | about 6 months ago | (#46810621)

I've seen many requests for objectional software in the years I've been working, but some of the worst have been in the guise of 'content protection'. One of the most heinous was DTCP for automotive use, with intent to lock everyone completely out of the sensor network and on-board electronics. My standard response for this one eventually became:

1) I will quit before I allow myself to work on DTCP;
2) I will not support any engineer in the company who works on DTCP projects;
3) I will not support any project or library that a DTCP project depends on, or makes use of;
4) I would rather see the company close due to lack of work than have it pursue projects of this sort.

I've never been told to shut up and go back to work; granted, I had a long history with the company and was worth substantially more to them as an employee than a few paltry one-shot crypto projects.

I recognize that most people don't feel like they have the job security to make demands of this sort; however, I do, and I fully intend to make use of my tiny bully pulpit when situations arise that demand it.

Re:Content protection (3, Insightful)

LF11 (18760) | about 6 months ago | (#46811453)

And you have the UID to back it up, you ancient old fart.

This is the solution in my case as well. Make yourself so valuable that your (occasional) moral judgements are valued more than the immoral or amoral corporate decision. (But don't abuse it.) Some artful negotiation may be required.

Re:Content protection (2)

dentin (2175) | about 6 months ago | (#46811893)

Heh, thanks. Artful negotiation is very important, and not given nearly enough face time in situations like this. You have to show that you're objecting not to be a jerk, that it's not because you want to cause problems for someone else in the company; you have to show that this is just something you won't be a part of, and that there's a cost to the company in proceeding with it. It's nothing personal - that's just the way it is, and you want to make sure everyone understands that before a final decision is made.

Software "Engineers" Have it Easy (0, Troll)

Anonymous Coward | about 6 months ago | (#46810641)

Software "Engineers" can rest easy. None of the responsibility of "real" engineers, but still can call themselves "engineers".

No need to worry about liability insurance, errors and omissions insurance, tort law, etc. Just program your little easter eggs, and everything will be fine.

Software comes WITHOUT WARRANTY, or even FITNESS FOR A PARTICULAR PURPOSE, and is supposed to CONTAIN KNOWN DEFECTS.

Don't worry about maiming anyone, they can get a refund for the software, and a free upgrade!

Re:Software "Engineers" Have it Easy (2)

marka63 (1237718) | about 6 months ago | (#46810991)

And every building built on this planet contains defects. Every bridge built on this planet contains defects. It is impossible to build a building or bridge without there being a defect. Almost all the the defects are insignificant. The difference between Software and Civil Engineering that small defects don't usually bring the whole construction down whereas the smallest defect in a piece of software often have catastrophic effects.

Re:Software "Engineers" Have it Easy (1)

lister king of smeg (2481612) | about 6 months ago | (#46811543)

And every building built on this planet contains defects. Every bridge built on this planet contains defects. It is impossible to build a building or bridge without there being a defect. Almost all the the defects are insignificant. The difference between Software and Civil Engineering that small defects don't usually bring the whole construction down whereas the smallest defect in a piece of software often have catastrophic effects.

Additionally while every physical construct has faults very few have people actively trying to exploit them trying to blow everything up, compare that to something like openssl with its resent major exploit. There are hundreds of millions of identical copies and thousands of people looking to exploit them and once exploited all are vulnerable. If every bridge had thousands of people trying to blow it up everyday we would not hold the architect/engineer responsible for someone managing to destroy it eventually.

Re:Software "Engineers" Have it Easy (1)

hermitdev (2792385) | about 6 months ago | (#46811809)

Another difference is that traditionally licensed Professional Engineers have to accept personal liability for designs they sign off on. Companies may accept the liability, but at the end of the day, a licensed engineer has to sign their individual name to a building or bridge design (at least of a certain significant scale). There may be a number of engineers involved, but if a structure fails or a building catches fire due to an engineering defect, you will most assuredly be able to find the engineer(s) that signed off on the design. (at least in the US).

Also, it's unclear to me what you qualify as a minor civil engineering defect. Just last week, here on /., there was an article about the possibility of skyscraper collapses in NYC if high winds and a prolonged power outage coincided. What about specifying the wrong grade of steel for a bridge (or failing to ensure proper quality) - see the Minneapolis/St Paul bridge collapse? Or failing to properly account for wind harmonics - see Tacoma Narrows Bridge?

P.Eng (1)

NapalmV (1934294) | about 6 months ago | (#46810661)

It's high time for a P.Eng designation and regulations to require P.Engs for specific applications.

that's why I'm single (1)

Anonymous Coward | about 6 months ago | (#46810675)

I stay single so I can always do the ethical thing and never need money. I earn about a third of what I could given my degrees and experience. I refuse to write code that kills people (defense contractor), reduces privacy (ads and whatnot), or wastes our time here on earth (bad games, ads, office "productivity" software). I focus on scientific code at universities (hence the low pay) and would also work on highly validated software systems for worthwhile engineering needs, such as power and control systems.

Ethics can't be taught or certified (2)

Bob_Who (926234) | about 6 months ago | (#46810727)

In fact, this process attempts to blame unethical behavior on "bad apples" rather than an entire profession. It does not improve the results, however. Unethical behavior permeates society on all levels regardless of the particular profession. When a profession such as banking or real estate or auto manufacturing or insurance or engineering go out of their way to "teach ethics" to the members of their profession or association then I believe it is an attempt to deny culpability in their own unethical behaviors. My belief is ethics is not taught professionally, rather, it is merely defined in terms of the limits of professional responsibility, which make it possible for sociopaths to navigate the tightrope. This way unethical people learn how to deny responsibility for a lack of professional ethics, when in fact they have a lack of ethics altogether, which can't be repaired by certifications. The fact is that the certifications will have much less impact on improving an individual's personal ethics at their current stage of personal development. The true solution is to stop rewarding unethical behavior in our society, plain and simple. People will behave according to their incentives, whether or not they actually have a social conscience or even a soul, or the professional certifications, thereof.

No Ethically Trained Programmer ... (2, Funny)

Anonymous Coward | about 6 months ago | (#46810729)

quote:
It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.

http://en.wikiquote.org/wiki/Nathaniel_Borenstein

No such thing (1)

Sigvatr (1207234) | about 6 months ago | (#46810787)

There's no ethical dilemmas for programmers because we are too intelligent for society's garbage morality.

Stone Image of the Beast (0)

3seas (184403) | about 6 months ago | (#46810859)

All to often I find software does not function the logical way it should. That to use the software efficiently I have to think like the programmer(s) or figure out what they were thinking when they wrote teh program..

The old saying about walking a mile in someone else's shoes.... people do this all the time in using software.
Computer are made of earth and run thought processes of the programmer(s) thus making them a stone image of the beast otherwise known as man.

But this is not the only place the thought processes of a few are imposed upon many more, for religion, government etc,,, all use abstraction as most certainly so does programmers. And its in understanding this that we also have the metaphorical key to the bottomless pit. For that key is the understanding of the gears and bearing of how we process abstractions and why we came to create them.

The main ethical issue regarding software is the false constraints those in the field of programming subject the users to. Who doesn't know how barbarically constrained the Windows Command line is? But it is done that way under the philosophy established by Bill Gates "the way to become wealthy is to make people need you"

Ethics went out the windows when Bill Gates yelled "Piracy" over a matter of people being very tired of waiting for what they had paid for and Bills BASIC itself, was a port of those who created it.

The only way to bring Ethics back into the field of programming si to not only make it all open source and to disallow software patents (which itself is complete fraud) but to properly approach software development the way it should had been done to begin with. In the way that is natural in teh creation and use fo abstraction, without false constraints.

To understanding this is indeed possible see http://abstractionphysics.net/ [abstractionphysics.net]

Run into this (1)

Anonymous Coward | about 6 months ago | (#46810949)

I have run into a few ethical issues in my time as a developer and general IT person. There is occasionally a balance to be struck between one's view on how the world should be and being able to eat. For example, I have worked for a couple of energy producing companies which I felt were not environmentally friendly, but they did offer nice paycheques. I eventually left the industry and I'm happy for the shift. I've also been asked to work on projects of a pro-religious nature and, due to my personal values, turned down the (finacially attractive) work.

Really anomalous? (1)

elipsey (1238508) | about 6 months ago | (#46811131)

Ethics was a required undergrad course in my BSCS program. I thought it was stupid at first, but I really enjoyed the course, and I still think about it all the time, and even re-read the textbook now and then. In addition, my software engineering instructor lead class discussions about failed large scale projects, whether software development should be certified and regulated as an engineering discipline, whether formal verification should be used &c., and my assembly language instructor quite insisted that we read about Therac-25 (http://en.wikipedia.org/wiki/Therac_25) when we discussed parallelism and and race conditions. I was told to think of the human cost of failure at every turn...

There is only one solution. (0)

Anonymous Coward | about 6 months ago | (#46811133)

People don't care. That concept stunned me at first especially in regards to IT. Joe & Jane public don't care. It's only people like you and me that care. When I talk to "normal people" (non-tech, etc) they seem to think that the system will sort itself out itself.

My degree (0)

Anonymous Coward | about 6 months ago | (#46811633)

contained a module on Professional Ethics. Doesn't matter tough as I never properly worked in that gig. I work as an ESL teacher in Korea. I found CS boneheaded from the beginning. I just got my degree because the subject interested me and still does, but the pointless tripe that we have today in things like foursquare and instagram doesn't excite me. They tell you how to think. The joy of programming is how you think about a problem and telling a computer how to think. Technology can't make people happy. Programming can. I'm programming again for the first time in a decade and I love it. Never want to work at it for anyone as I'd then hate it again. I plan to go freelance or find my own way in other words. Nature and people make you happy in the end. Technology doesn't. Programming is only fulfilling in terms of the learning element and applied math element etc. not the end product. Nothing inspiring comes from the final product that I've seen.

Everyone should be a programmer. And I believe there should be many languages for everyones taste. For me, it' Prolog, and Erlang etc. For you it might be something else. In the decade I've been away I've seen mainly pointless crap and Google glass seems like a tool for the deaf, at best..3d printing is interesting.

There are already codes of ethics (1)

hermitdev (2792385) | about 6 months ago | (#46811717)

See IEEE Code of Ethics [ieee.org] (a simple, yet succinct and to-the-point code), and ACM's Software Engineering Code of Ethics and Professional Practice [acm.org] . Even reading section 1 of the ACM code, it is abundantly clear it is not being legally enforced. In particular 1.03 & 1.06 jump out at me.

Problem is, professional ethics codes are generally not legally binding unless you are professionally licensed in a discipline by the state, and the licensing indicates the code of ethics that must be followed. Additionally, the ethics code might only apply if you are officially acting within your licensed capacity. (I error on the side of caution in that I assume everything I do professionally falls subject to my licensed discipline - just in case). Some states refer to professional organizations for the code of ethics (i.e. for Electrical Engineers, the IEEE code may be referenced), some states may provide their own code of ethics. I'm also unaware of any US states that professionally license software engineers.

I personally had one instance at my previous employer where my boss asked my to do something unethical, and illegal. I stalled for two weeks while I debated resigning or blowing the whistle to HR on my boss (and also possibly resigning). In the end, I didn't have to do either, because my boss was fired in that time for unrelated things and I was never asked by another manager to do the same action.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?