Software Ethics

Includes

An extremist position:

The first means using CopyLeft.

The second means using the best programming language and techniques available; best defined in relation to reliability, extensibility and maintainability of code. Of course, this will incite the usual HolyWars over which languages best show those qualities.

The last means many things, including but not limited to:

(Does the FSF do any of this? No. Because the FSF is just as unethical as the typical North American corporation.)

See also Computer Professionals for Social Responsibility at http://www.cpsr.org/

Okay, let us know when you have the EthicalSoftwareFoundation? up and running so we can actually do something about the situation.

Will do.

Ethical License

This software requires Z to function at all. It has been tested on Ys and is guaranteed to never do X (crash / destroy your data). If used properly and without hostile software (which includes but is not limited to W) it will perform V. If used in conjunction with U it will also perform T.

Any failure of this product must be reported immediately to S, complete with a description of the failure and any resulting messages, if any. At such point, the purchaser of the product is entitled to free service of their product by company R, in the form of a patch published at location Q, or a full refund.

Anyone who guarantees their software won't do X will be devoured in court. Someone will always be able to convince a judge or jury that the software did X. This license is not realistic.

Riiiight. Just like they can do so for cars and other consumer products.

The automotive industry spends billions on settlements to keep injury cases from going to court. Those billions are paid for by consumers. If we do the same for software the end result will be more expensive software, fewer small software distributors, less competition, and all with no guaranteed increase in reliability.

[Which is exactly why only the big auto makers guarantee anything. For example, hard drive manufacturers guarantee nothing. Neither does your small-time computer assembler.]

Actually, they are bound, in most cases, by laws requiring warantees for merchantability (i.e. it isn't DOA) and fitness for a particular purpose (i.e. it does what it is supposed to do). But in both cases, the only remedy available is a replacement or a refund. If you put a million dollars worth of data on an $89 Maxtor IDE drive and the drive goes south without you making a backup, the most you will get out of Maxtor is $89 for a new IDE drive.

So there we have it. Only big auto makers have ethics.

Big automakers guarantee things only because the law says they have to. Lemons are returnable by law, automakers are responsible for defects that kill people as a matter of law, etc.

At any rate, hard drive crashes seldom kill anyone. Car crashes kill 50 thousand a year in the UnitedStates. At any rate--while I'm in favor of more reliable software, why must it as a matter of ethics be offered with a warranty? What if it's offered with a warranty that warrants the null set, does that count?

It must as an ethical matter be offered with an ethical warranty. What's hard about that to understand? And you've nicely made my point. That corporations can be made to act semi-ethically if only we choose to make them do so.


Well, as a somewhat less utopian take on each of these . . .

A copyright that is clear, doesn't claim rights the author doesn't have, protects rights of other authors, and is crisp about what it is, and the terms. "Copyright" gets irretrievably tangled with licensing and patents. There's something unethical about claiming a patent on something that's obvious and common practice, even if the generally-clueless-about-software patent office will grant one. Similarly, licenses often include copyright like terms, and it is unethical to attempt to claim within a license rights which one doesn't have via copyright.

Software programmer ethics has a lot more to do with being honest, than choosing Smalltalk. Writing in Java or bog-help-us C++ may be the actual better solution, all things considered. Even if not, a more common standard when performing work for hire is to refrain from participating in fraud, vs. to demand that the person paying do what the person being paid would prefer. Thus, one would decline to misrepresent, or help to misrepresent the behavior of a piece of software, including perhaps even the representation that it was constructed with "the best available technologies." But, demanding that only the best technologies in your opinion be used, isn't required for ethical behavior. You are likely required to inform the folks contracting for your services that their requirement isn't in keeping with your best judgment.

More to the point for programmer ethics would be using good professional standards of work, and being absolutely clear with customers, colleagues, and those who hire you about the quality and other characteristics of the work.

As for business ethics, in software a similar standard applies - be clear about what you are doing or not. For a useful take on licensing, and lots of insight see CemKaner 's site: http://www.kaner.com/articles.html#law

The above (that you've met your ethical obligations as a programmer by informing your clients that you're using inferior software and techniques) is true only if they don't turn around and lie to their own clients. You're an unethical programmer if you knowingly deal with an unethical software business. Which includes, as we all know, just about every single last software business. Why? Because every software business misrepresents the quality of their product, the practices they've used, and what it would have been possible for them to achieve had they been less corrupt. IOW, you are an unethical professional if you deal with a business with a marketing department. Because marketing is mass fraud and working for such a business is being an accessory to mass fraud.

Consider construction workers that knowingly use substandard materials and practices so the developer can make a higher profit when they sell the house to unknowing customers. Consider an architect that colludes with suburban sprawl developers to perpetrate the unsustainable travesty going on in north america. Consider doctors or psychologists that let their patients (GoldOwner) dictate a treatment regimen they know will have a vastly higher risk of failure. Programmers are in no way so special that they can get away with behaviour other professionals consider unethical. Unless by 'special' you mean retarded, which is true. Perhaps that's because programming has no deep roots in academe, but rather in commerce.


See "A Framework for Ethics in Software Development": http://www.twistedmatrix.com/users/glyph/rant/softethics.html


CategoryBusiness CategoryEthics


EditText of this page (last edited December 17, 2005) or FindPage with title or text search