I think part of the issue is that software engineering is abstracted from the immediate problem the person in the world is trying to solve, and one engineer may cross many industries in their career. In some sense, that abstract transience inhibits the feeling of duty that, say, a small town cardiologist feels toward his patients. My grandmother's doctor quit medicine after she died of a heart attack. He couldn't stand seeing all his friends die.
Conversely, there's an opportunity here to think about methods to pierce the abstraction. Perhaps that is the first order issue for software ethics: pierce the abstraction. Know the user's ethical problems. Know the customer's ethical problems (the therapist may be the user, but the hospital is the customer).
I hypothesize that the ethical issues are more obvious at the user's level. Hospital business offices, for instance, are famous for claiming the ethical high ground while ignoring the strain productivity requirements place on their staff. How much of software ethics in healthcare could be boiled down to "making healthcare easier, one less click at a time"?
That's where money and abstraction prevents the development of a coherent ethics: why develop ethics when I'm getting paid and will never get sued. No one is going to sue the software house for the hours of delay that accrete 1/2 second at a time. No one is going to sue the IT guy for the hours of delay that accrete on slow networks. No one is going to sue the developer that doesn't bother to anticipate that the PACS system will eventually be called upon to store digital pathology images also (at 10x the storage per image and 10x the number of images).
In fact, no one's going to sue the hospital for those things. And the hospital is the customer. So there's definitely no path from the nurse or doctor to the software house. Who cares about the intern wearing running shoes at 2 am trying to keep patients alive in 10 different units on 7 different floors in the 3 different wings of 2 hospitals? Nobody.
Similar issues could probably apply to roughnecks in the oil industry watching oil blow into the ocean because there's no button to override power on the valve, home buyers who are just trying to get their kids into a good school district, etc, etc.
It certainly isn't the AMA and the rest of the medical establishment, which do everything they can to keep the supply of doctors low and the salaries high.
Yes! Compared to the noble physician, programmers like like Linus Torvalds (Linux, Git) and Richard Stallman (Emacs, GCC) who freely give away the fruits of their labor, even when it generates billions of dollars in value of which they reap only a tiny fraction, are nowhere near as ethical.
Physicians are so ethical, in fact, that medical bills are number one cause of bankruptcy in the US!
You can definitely make solid arguments for or against the ethics of medicine, particularly as a business, and you can definitely make solid arguments for or against the ethics of the military.
My point is more that it's quite difficult to make a lot of arguments at all about software engineering ethics. Find me a book on ethical network administration at Barnes and Noble.
To your ethical claim: can engineers go to prison for being unethical? No. Can physicians? Yes.
Doctors aren’t as politically attractive a target as insurance companies, hospital administrators, or big pharma, but there’s no rational basis for leaving their interests unscathed when tackling unduly expensive medicine."
http://www.slate.com/articles/business/moneybox/2013/02/amer...
If your field wasn't software engineering, could you describe it? "they sit every day in front of the computer and write colored text". Might as well be magic, then.
Earthquakes do occasionally occur in NY:
http://earthquake.usgs.gov/earthquakes/states/new_york/histo...
Even if there's only one earthquake in NY every 50 years, you want to make sure that when one happens, skyscrapers don't collapse and the Indian Point nuclear plant doesn't dump radioactive waste into the Hudson.