The Ethical Dilemmas Today's Programmers Face
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.'"
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.
-Hentai [in vita non pacem est]
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.
Other way around, actually. 'Morals' -> 'mores', which is about customs and expected public behaviors; 'ethics' -> 'ethos', which is about internal guiding principles.
-Hentai [in vita non pacem est]
http://fadeyev.net/moral-desig...
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.
Table-ized A.I.
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.
It's worse because while YOUR post actually reflects an ethical/moral issue, TFA does not.
Here's their #1 item:
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".
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.
-Hentai [in vita non pacem est]
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.
... to bug-fix or not to bug-fix') next week.
We'll probably see the items used under a different heading ('Professionalism
"The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
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.
"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.
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.
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.
...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.
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.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
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.
Furthermore, they completely forgot the obvious ethical dilemma of an InfoWorld web site programmer tasked with implementing multi-paged articles.
Ezekiel 23:20
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...
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.
Alter Aeon Multiclass MUD - http://www.alteraeon.com
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.
Table-ized A.I.
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!
That begs the question, "what is an etymological fallacy"
If I have been able to see further than others, it is because I bought a pair of binoculars.
It's high time for a P.Eng designation and regulations to require P.Engs for specific applications.
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.
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.
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.
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
Honest people becoming dishonest doesn't scale either.
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.
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.
> 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*.
There's no ethical dilemmas for programmers because we are too intelligent for society's garbage morality.
The moral man knows the difference between right and wrong; the ethical man does the right thing, even when nobody is looking.
I see what you did there, and I'm on to you! Consider yourself on notice, bucko!
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/
The moral man knows the difference between right and wrong
"Right" means things behaviors he agrees with, and "wrong" means behaviors he disagrees with.
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.
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.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
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.
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...
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.
Oh those with simple models of the world and simple minds....
You do realize that you are part of the problem, right?
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Oh, so honest people should be dishonest because otherwise the dishonest win? You're a real hero fighting dishonesty like that.
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...).
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
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.
There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
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.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Indeed. Going over to the dark side is easy. Coming back from it is hard or impossible.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
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.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
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.
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.
Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
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.
Table-ized A.I.
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.
Table-ized A.I.
Furthermore, they completely forgot the obvious ethical dilemma of an InfoWorld web site programmer tasked with implementing multi-paged articles.
Slashdotted. Problem solved.
licet differant, aequabitur
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.
Table-ized A.I.
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.
While lying to someone is quite bad, it is a whole order of magnitude worse to be forced to lie with them.
See IEEE Code of Ethics (a simple, yet succinct and to-the-point code), and ACM's Software Engineering Code of Ethics and Professional Practice. 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.
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.
Going to the dark side is easy...for money nope...because if it was everybody would do it
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.
A fool and his hard drive are soon parted.
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.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Thanks. Exactly what I was going to say, and in the first comment.
And it will never change. Management is paid to do exactly what it does, and no company is willing to reduce profits; not even the magic companies that claim to do the right thing.
I'm just glad I have enough of a brain to work on the tech side, and I don't have to lie for a living.
You may be, but not everybody is scum.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
That is why it is difficult and each case is different. If you starve yourself or your family with that $10k job, the decision is entirely different from the one you face if you can life reasonably off that $10K job. The point is that an ethical person will look very careful at all aspects of the choice, where an unethical one will ignore all aspects that are inconvenient.
But this situation is a simple example and pretty unrealistic. A more typical situation arises when there is no clear choice, and that is actually the normal situation. And yes, you are allowed to be egoistical to a degree and still be ethical, as you yourself are also a human being.
The problem with all the simple models is that they typically ignore reality and can often be exceedingly unethical.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
I have worked on embedded machines that implemented no security. My boss said "our competitors don't worry about security why should we?" I said because someone could die. It isn't that hard to envision a scenario where someone could compromise our system and render it inoperable because our lack of security.
Guess what, I was a junior engineer with no pull on a project that was do or die for the business. I finished and quit as soon as possible. Not everyone can do that. This isn't a software engineer's problem, it is a business problem.
I hope you reported this to somebody after leaving the job. Besides it being the right thing to do, whistleblowers can actually get good money in some cases...
vi ~/.emacs # I'm probably going to Hell for this.
A programmer is instructed to develop a software which generates a random sales tax registration number. This software will be used for random raids. :) Evil ethical developer eh?
The officer in charge gives him a small slip with few numbers, and verbally instructs that these numbers should never be generated.
So how do you deal with corruption like this
1. Option 1 - Blow the whistle - No proof. They may come after your family
2. Option 2 - Comply
3. Option 3 - Make software so that first 3 months the numbers never come, but after 3 months the probability of the said number increases by 10X
My Aurora : http://www.youtube.com/watch?v=o91ZsGwJYyg
FB : https://www.facebook.com/TanveersPhotography
they remain a begrudging anomaly in computer science pedagogy
Here we go yet again. We have an OP that can't seem to grasp what computer science is and what it isn't, yet it doesn't stop them from waving the term around like a flag. And we have post after post after post of obviously extremely intelligent and likely capable programmers that, perhaps even once studied computer science, and still insist on ignorantly equating "programming" or software development with "computer science."
What the Hell is wrong with you people? And don't think my animosity towards you ridiculous usurpers of an entire field that predates "programming" and software by thousands of years, that you (all of you) apparently and obviously know absolutely nothing about (including what it is and isn't), is misplaced, no more than yours would be towards me if I continually insisted I worked in medicine because I work behind the front counter cash register and sell bandaids and aspirin at your local drug store. (And I don't mean to insinuate that programmers are beneath computer scientists the way a counter clerk is beneath a medical doctor... I'm just giving an example in metaphor, and using hyperbole so that what is in your thick skulls will finally comprehend that you need to stop using the term "computer science" when it is completely irrelevant to the subject... which very often happens to be programming and software development, very noble professions that do not need to be propped up as something that they are not, which is, namely, computer science.)
By now, I have a lot of posts such as this complaining that the term "computer science" is being abused and really watered down as to mean more than it is which ultimately has the effect of changing it to mean almost nothing at all. Usually, I focus on the first word in the phrase... "computer" (which isn't you damn alienware linux and supergaming laptop any more than a ringworm is jewelry). But I'm going to try a different approach so you can see how ignorant you're being and why I'm so fucking pissed off about it.
Science (from Latin scientia, meaning "knowledge") is a systematic process that builds and organizes knowledge in the form of testable explanations and predictions about the Universe. Science is the process of acquiring knowledge based on the scientific method , as well as to the organized body of knowledge humans have gained by such observation, experimentation and research. If you're not doing this, as defined quite necessarily and ordinarily, then you cannot possibly be doing "computer science," because the second word in that phrase is not a trick, is not a homonym for another word I am unaware of, nor is it incidental, but quite very specific. If you're not doing science, i.e. observation, hypothesis, methodical, procedural and repeatable experimentation, and drawing conclusions from the results of that experimentation, then, again to be clear, you're not doing computer science .
Now that we have that cleared up, allow me finish this post before returning to my garage for a bit of mechanical engineering, as I think by now my oil pan has drained all the oil, and I can thus complete the oil and filter change (see what I did there, you stubborn morons??? I'm mocking you, because you damn well deserve it.).
To address the fragment from the OP that I quoted above: its completely false. Perhaps programming courses do not always include any treatment of ethics... idk. I'm not a programmer, I never studied programming, and I wouldn't presume to talk about programming as though I were some kind of expert. But every single legitimate Computer Science curriculum I am aware of, including the one that nearly killed me some 20 years ago, has a course in ethical responsibility that is manditory for graduation.
The Admin and the Engineer
This is Engineering. This dilemma has been faced before by other Engineers, and its time for software engineers to step up to the mark and earn the title.
Basically, professionalize. Join an industry body like IEEE, create and get standards like C.Eng, lobby for critical software to be signed off by Licensed Engineers. Wrestle control from the PHBs.
Anyone who believes exponential growth can go on forever in a finite world is either a madman or an economist
There is no proper model, that's why it isn't simple.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
Making a sword or shield? What if it breaks in battle? Making a wagon wheel? What if it breaks down in the middle of nowhere? Making a horse harness? What if it fails pulling a carriage uphill? Making a chair? What if it fails when some person sits on it? Making a steak? What if it has a sharp bone sliver in it? Writing a control system? What if you miss something? THEN YOU FIX IT, that's all. Be as careful as you can of those things you can think of; ask for help so you have a chance to get more than a narrow view. But when something goes wrong, the "I should be totally safe, and I'm gunna sue ya" thing is a sickness, not a feature of a well functioning society.
All this "total safety, all the time" hysteria is really wearing. It's hurting us more than it's helping us.
A well lived life will entail risk, and probably lots of it. Not to mention non-optimum choices made for reasons you'll look back upon with utter confusion later. Or, you can live in a pillow-sided room eating only gruel that was sterilized by gamma rays. I know what I choose. Do your best, learn from your mistakes, remediate any that you can, and move on. If some crap you bought breaks, throw it out and replace it. If you got hurt, try to heal. End of story. The ethics are obvious. The smothering is insidious. But I think it's going to get a lot worse before it gets better. There's far too much money in finger pointing. And we're just too stupid, collectively, to do anything about it.
.
I've fallen off your lawn, and I can't get up.
I've met countless programmers and most of them are quite ethical. But when their boss asks them to do something unethical or be fired, what choice to they have?
If you're young, single, don't own a house that could be foreclosed, and live in a country with a good social security system, then maybe you can afford to be fired. Maybe. And the boss will just get someone else to do it instead. The crime will be committed anyway and the only one who will be punished is the poor sod who thought being ethical is a viable proposition in today's society.
If you have a family and the roof over your head is dependent on your wage, you don't even have any real choice.
If you want to cure ethics in IT, start with management.
Honest people becoming dishonest doesn't scale either.
I don't see how this matters, it's not as if individuals have any options which do not result in that outcome. The only control you have is to either sacrifice moral integrity for personal gain or vice versa.
Not that I'm advocating short-sighted pragmatism, just stating the facts here.
So I guess that for you anything that is based on a bit of moral sense and thought about the result of our doing is communism, because there is little relation between what I said and communism.
I am not a native English speaker, so I can easily miss the nuances of vocubulary : I do not know if "common good" is only used in English by communists ; I do not know the difference of meaning between "mankind" and "humankind".
For the rest of your "remarks", even considering you are an AC, I think you have a problem with English. I said nothing about cars, nothing about cars being replaced by public transportation, nothing about public jobs. I did not say anything made for billionaires would be stupid, what was stupid was using several man-years for a gadget that the guy will be using 2 minutes and then be tired of (and there was not even any artistic value in the thing, juste a pure waste). And yes, I find more useful to work on a 100 M$ transportation system that is used by hundreds of thousands people everyday, than on (an addition to) a 100 M$ vehicule (we were not talking about cars!) that is used to transport one single guy every now and then.
I said that the limit between the different categories will highly vary, depending on people. If you do not have any moral sense at all, it is normal that you do not care about anything but yourself and your money, so you will put everything that brings you money in the "useful" category (and think any other people who has some kind of moral sense is an evil commie).
There is an advantage to working for software companies with regulatory oversight (aviation, medical). On the other hand, this regulatory oversight is often mangled to the point of being unrecognizable as such. Though it gets rather interesting when the regulatory groups suddenly realize what is going on.
Did you tell anyone? Like the local newspaper, perhaps anonymously? In cases where it can be shown that the defendant knew what they were doing was dangerous and likely to result in disaster the award in any lawsuit tends to be higher, which in turn makes lawsuits a less attractive alternative to doing the right thing.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
Although the article seems to have mixed up morals and ethics (internal vs external code), ultimately it should be the company's management that determines the answers to these questions, not the individual programmer. One way or another, the questions and others like them need to be answered. If management abdicates that responsibility, the lawyers will end up making the decisions. So the real questions is "Who do you want to decide these issues, the company or the courts?"
You think that's bad? I sent spam for N'SYNC.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
The world isn't black and white, troll.
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.
This comment does show a bit of either hubris or ignorance. If you have never met people that keep shitty programs around, don't document, keep broken configurations, etc.. then you have not been in IT very long. Many people do this for job security (at least that's what they will tell you). Others learned 1 way to fix a problem and it wasn't the right way, but they look like magicians to people depending on whatever they happen to shock with paddles once a week or so.
Personally, I've quit jobs over my 20 year career for ethical reasons. These reasons include the treatment of other individuals within an organization, public safety concerns, underhanded business dealings, and kickbacks.
Amazing, 20 years is not that long and I've resigned multiple well-paying positions. I had high hopes someone in a position of power would take notice and affect change. To what effect?
Unfortunately, the ethical dilemmas are endemic in the engineering field. And, it's not the engineers creating these dilemmas. At some point you need to feed you and your family. What does one do?
I've realized that the people (or a large fraction thereof) who get into positions of power have to put the company ahead of the public. They will not jeopardize the company, or more specifically their high paying position, for the good of the many. When the stuff hits the fan, they certainly are not going to bat for the guy who either:
1) made a complaint
2) quit in protest
They, the management, are going to do what they feel is in the companies or there own interest. Despite any protest. So am I free and clear in these instances? (take GM 's issue for example).
So, what do you do? Go public?
A career ending move, guaranteed.
I've had choices, they always end up punishing my family. Ethically, what's the move?
And for the $$$$$ greasy paycheck, ha. You clearly have no real experience in this industry.
An ethics class should not just help people define morality, but also helps them with logic and rhetoric. Most universities require at least an intro to Philosophy and Logic as requirements for an ethics course. Assuming that was the rule, it actually would help.
I don't know, it seems to be scaling remarkably well, unfortunately.
Lost at C:>. Found at C.
In my experience, anyone calling a person a communist nowadays, is just trying hard to deflect the light exposing the fact that they themselves are hypocritical, greedy, amoral scumbags, who have no redeeming qualities.
He tried to kill me with a forklift!
All this talk about colleges _teaching_ ethics and no comments on how abusive and profitable the NCAA is?
Having those kinds of colleges teach ethics seems about as useful as Dick Cheney or Bernie Madoff teaching ethics
I think the phrase "not rely on futile individual volunteerism", and all of its implications, IS as much the problem as anything else.
Indeed. Going over to the dark side is easy. Coming back from it is hard or impossible.
Just shave off the goatee.
Star Trek transporters are just 3d printers.
If employers have the right to decide whether your healthcare includes contraception or not, I would imagine they have the right to decide whether your programming work kills people or not.
Star Trek transporters are just 3d printers.
Read Flash Boys, that new book on highspeed trading. After the protagonists build their HST-proof exchange, and clients of big brokerage houses and banks specify that their trades be done through it, the brokers frequently just ignore them and use their internal exchanges, making the brokers more profit, but exposing the clients to the costs of HST forerunning, etc.
Star Trek transporters are just 3d printers.
Then how would you name sysadmins dilemma? All traffic (mail, web etc) goes through their controlling servers, so everything you send is accessible to them (and sometimes they need to dig there), so programmers logging is nothing, and you will turn off your logging parts when you are done.
This is the same cop out used by those who have complied rather than challenged wrongdoings of the past. It is only by this complicity that those with abhorent ideas can gain/keep power.
This discussion has been going for some time on the G+ Computing and Morality Community BTW: https://plus.google.com/communities/108602408537353548493
Corruption is Rampant in India.
Often people with deep pockets bribe officials. That is why it was not part of the official request but told verbally
My Aurora : http://www.youtube.com/watch?v=o91ZsGwJYyg
FB : https://www.facebook.com/TanveersPhotography
People who play knowledge is power games are uniformly morons. Un-fireable is also un-promotable.
Yes, I've known some. But I black ball them anyplace I might subsequently run into them. It's a smaller world then some accept.
Don't do it.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
These are management issues, not developer issues. Yes, as a developer myself I like being able to use my own judgement. But I don't get paid to work on my own projects, I get paid to build for others - and frankly, the client's management is out of whack if they don't make the important decisions themselves, and I'm out of whack if I don't try to make sure they're informed enough to do it.
And the whole thing about being told to cut corners just to get stuff out the door... that's not an ethical decision, it's a business decision.