kcw | journal | 2000 << Previous Page | Next Page >>

Another one of those days where I don't have the wherewithal to get anything done. So I look up at my cube wall and see the little IEEE Code of Ethics that I put up there. Just about every serious profession has a code of ethics, and software engineering is no exception. Although the old code that I have on my wall is rather generic, it was a good stab at what software engineers should think about.

The first four of the ten points are a list of qualities for a "responsible" engineer. "Accept responsiblity in making decisions consistent with the safety, health and welfare of the public", "avoid real or perceived conflicts of interest", "be honest and realistic in stating claims or estimates based on available data", "reject bribery in all its forms".

The first one can be ambiguous if you're not writing the kind of software that could endanger the public. Software in general will at least inconvenience people and waste their time if it's buggy. Conflicts of interest are easy to avoid for me, cause I don't have any. Honest and realistic in making estimates is something that I tried to do at first, but have backslid a bit over the last year. There's a constant pressure to be optimistic rather than pessimistic. People want accurate estimates, but if you're going to be wrong, err on the optimistic side seems to be the mantra. Reject bribery is also relatively easy, although what you'd consider bribery can be debated.

The next three points are sort of "for the improvement of the profession" sort of goals. Improve the understanding, application, and consequences of technology; "maintain and improve our technical competence"; "seek, accept, and offer honest criticism of technical work". They basically want you to contribute to the active growth of the profession. Learn more, discuss more, teach more.

I can honestly say that I only do the second one. I try to keep up and learn more about Java and our company standards. Not formal classes, but self- improvement. I don't think I do much to make programming more understandable to other people. About the closest will be what I can teach my brother before he starts classes. I don't like getting critiqued, and few people do really. It's not a nice feeling to know that you've been doing all these things wrong, and the natural inclination is to defend our actions and deny any shortcomings. Conversely, I don't like critiquing other people's work, since I imagine they'd the same way I do. Stay out unless they ask for help, then try to be diplomatic.

We now come to the last three points, which I think are the "be nice" parts of the code of ethics. "Treat fairly all persons regardless of race, religion, sex," etc. "Avoid injuring others, their property, reputation, or employment by false or malicious action." "Assist colleagues and co-workers in their professional development and support them in following this code of ethics."

Here's where I have a few questions about the code. The rest of the points I can see as being specific to my profession and what software engineers should do. These last three seem to me to be more about right-thinking and political correctness than something about software engineering. Sure, people should not discriminate or be malicious, but do we need our profession to tell us these things? Do we want an engineering society (or any other group) telling us what to do in areas that are outside their scope?

Anyway, that's the general code of ethics for the IEEE. Each society has its own more specific code of ethics. A new one specifically for software engineers was finished a few months ago. I think it has eight main points, with each point having a dozen subpoints to clarify. Not a bad format, you can remember the main points and look up the subpoints when you come to a situation that's a bit blurry. And I can see the need for a Code. They're trying to make the profession well respected, by having licensed engineers, a code of ethics, and a defined body of knowledge. Frankly, software engineering is not taken that seriously by other engineers, and until we can establish the same professional standards and codes and such, we don't deserve to be taken as anything but a bunch of kids playing at being grownups.

Copyright (c) 2000 Kevin C. Wong
Page Created: August 18, 2004
Page Last Updated: August 18, 2004