Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Bad Software - Is there a Code of Ethics?

Status
Not open for further replies.

Rich2001

Technical User
Feb 22, 2002
3
US
Software bugs, or errors, are so prevalent and so detrimental that they cost the U.S. economy an estimated $59.5 billion annually, or about 0.6% of the Gross Domestic Product, according to a study commissioned by the U.S. Department of Commerce's National Institute of Standards and Technology.

Paper and electronic copies of NIST Planning Report 02-3, The Economic Impacts of Inadequate Infrastructure for Software Testing, with a 24-page discussion of CAD/CAM/CAE/PDM software systems, can be obtained by visiting the NIST Web site,
Software publishing is a business, a large, important industry in the United States. Like other businesses, software publishers make trade-offs between your satisfaction and their costs. Unfortunately, software is also mysterious to the non-expert. It's easy for a software seller or support technician to tell you that you've misused the program, or that the problem is that there's something wrong with your frammistan (a mythical device that unscrupulous car mechanics would charge customers hundreds of dollars to repair.) Some people are getting badly ripped off, and it's not doing the industry or the customers any good.

It is no wonder that the general public has such disdain for the IT profession.

Is there any code of ethics like there is in other Professional lcensed fields for IT?
 
Here's a code of ethics at the ACM:


Now, where did you get the impression that software engineering was a licensed profession? What are the licensed fields for IT? What are their codes of ethics?


Face it, your average person has distain for any profession he does not understand, particularly those professions whose efforts are largely invisible -- such as software engineers, plumbers and electricians. Ever known someone who broke something worse rather than calling on the services of an expert repairer? That person whose "Famous Last Words" are, "Hell, why should I pay a hundred bucks just to fix something that simple? I can fix that myself."

______________________________________________________________________
TANSTAAFL!
 
IEEE is in the beginning of standardizing the software engineering discipline. Unfortunately this will likely take an incredible number of years before it has realized the same level of acceptance as other older engineering disciplines.


"But, that's just my opinion... I could be wrong".
-pete
 
<sarcasm type=&quot;tongue-in-cheek&quot;>
I think everyone should give IEEE all the time it needs. It took the &quot;older&quot; engineering disciplines 10000 years to get standardized. Electrical and software engineering are way ahead of the curve just to be thinking about the problem this early in the game.
</sarcasm> ______________________________________________________________________
TANSTAAFL!
 
umm ... let me get this straight ... you pay IEEE from your pay check, they tell you you're not working too well, and your boss doesn't care if you're in or not ...

hmm ... i wonder why i'm not in the ieee?

also since a fair amount of people got into Computing without the degree, you would have to prove to those people that they needed to join in order to make them software engineers, and the advantage that this would give them.

i for one can't see the advantage, even though i've been through college, and i did software engineering (rather than history, chemistry, design, building, etc.)

with people like me around, the ieee has less emphasis, and with less emphasis it has less enforcement, and with less enforcement, it may as well be a government backed internal review.
 
by the way, i believe that there should be a code of ethics :)
 
Don't hold your breath. The website was last updated in 1998. ;-)

Anyways, I don't think it is the Software engineers that need to sign a code of ethics. It is management that has to. With statements like:
&quot;I will not allow scope creep.&quot;
&quot;I will get the developer the required tools on time&quot;
&quot;I will use more than a napkin to write out the specs.&quot;
&quot;I will allow the developer to give input throughout the process&quot;

[machinegun] [talk]

I guess to each his own.

Jude
 
shiningblade, I think you hit upon the point Rich2001 missed in his original minor rant.

It is not necessarily the software engineers who set the development and release schedules. Release schedules are often set by the marketing department or some manager whose idea of programming is entering formulae into a spreadsheet. Even if there were a universally agreed-upon iron-clad adhere-or-be-run-out-of-town-on-a-rail code of ethics, these guys wouldn't be bound by it.
______________________________________________________________________
TANSTAAFL!
 
I agree that software publishing is a business, a large, important industry in the United States. Like other businesses, software publishers make trade-offs between your satisfaction and their costs. Unfortunately, software is also mysterious to the non-expert. It's easy for a software seller or support technician to tell you that you've misused the program, or that the problem is that there's something wrong with your frammistan (a mythical device that unscrupulous car mechanics would charge customers hundreds of dollars to repair.) People are getting badly ripped off, and it's not doing the industry or the customers any good.


In other professions such as architecture, engineering, medicine and law even if the employee (Architect, Engineer, Draftsperson, Doctor, Nurse, Attorney ...) is an employee of the company and produces faulty material the employee and the company can both be held liable and sued. So should both the company and employee be held liable?

(BTW. I am an Professional Engineer that has developed control systems and software for Critical Life-Support type of applications. I am just tired of seeing poor and untested code. Having just found a software-defect in a NT-Based CNC controller. It cost me $6860 in wasted material. )
 
Management? I went to a school that had an MIS program that was turning out students who thought VB was a low level programming language, thought C was outdated, took one semester of java, and learned absolutely not the first thing about a software cycle
but they had accountancy(1 semester),several semesters of general business, and several semesters of classes like &quot;the stockmarket&quot;, etc. It was rare for them to even set foot in the computer science building, most of them were failed CS majors, some were actually interested in the whole MIS field and those were the ones you saw in the CS building.
I have produced and delivered code that I knew I hadn't spent enough time testing, it bothers me every single time, but the old adage &quot;Easier to apologize than ask permission&quot; holds true when your dealing with managers that have difficulty with database concepts beyond Access and don't seem to understand that just because something works great on Win 2000, it may have real issues on Win NT.
I generally don't have a choice, when my manager tells me to spend a friday testing code before it goes out on monday (knowing I am probably already into the block of unpaid overtime) I still spend the rest of friday and even part of saturday testing, and I'm sure it still has bugs monday. Now I don't tell him when I am ready to start testing until I have almost completed it and already made the majority of the repairs needed.

Shiningblade, how about: I will answer all questions from the developer that concern the project?
or even: I will expect a project proposal to take longer than 10 minutes?
or: I will not finalize dealines without talking to the development and testing staff?

Anyways, can you tell I'm a little bitter? :p

I do pay to be an IEEE member, I was never an ACM member, and I do believe that membership in the IEEE at least means you care about what they're doing.
I don't pay for certifications, I have worked with enough certified hacks that I don't believe in the process as it stands now.

Anyways, my rant for the evening :) (you should see the part I deleted)
-Tarwn --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
For my next trick I will pull a hat out of a rabbit (if you think thats bad you should see how the pigeon feels...) :p
 
Addressing:

&quot;Is there any code of ethics like there is in other Professional lcensed fields for IT?&quot;

Think about this. If the IT field was a &quot;licensed&quot; profession you would not beable to afford the software because every &quot;licensed&quot; IT professional would be asking doctor and laywer fees.

Ethics... Is up to the senior developers &quot;the mentor(s)&quot; to teach the junior developers. Structured coding techniques, will stave off half of all software errors.

Management... Is always about the bottom line, not excuses. The old saying is, hey it will be fixed in an update or service pack release.. The pioneers of that philosophy &quot;Microsoft&quot;.

&quot;did you just say Minkey?, yes that's what I said.&quot;

MrGreed
 
Rich2001,

I also notice that you brought up from your curriculum vitae that fact that you've developed critical life-support applications.

My question is, did you do that on general-purpose computers? If not, then I think you're a little jaded. Medical hardware is very special-purpose -- if a doctor wants to take both your EKG and your EEG, she will have to use two different devices.

When you are writing software to drive special-purpose hardware, it is easy to debug the entire system -- the inputs and outputs are very specific, the hardware is standardized, the code (compared to the 50 million lines of source code that makes up Windows 2000) is very simple. Add to that the fact that if the code screws up, it could kill somebody.

Within that limited environment and with that kind of motivation, it is much easer to build bullet-proof code and easier to get a manager to let you spend the time debugging it fully.

Then look at general purpose computers. With the right hardware add-ons, I can turn my desktop into nearly anything. Since the OS has to support a nearly unimaginable range of activities, it must be extraordinarily complex to support those activities.


But the software in medical devices have bugs, too. And medical device bugs can and do kill. Ever hear about a device called the Therac 25? ______________________________________________________________________
TANSTAAFL!
 
all the projects i've worked on, there is testing involved at the module level. you also have at least 3 sorts of testing including testing plans by the guys whole wrote it, the guys who designed it, and the random enter anything/bad data sort of testing.

you build modules up till you have big module systems in which you use the basic, checked modules underneath to build up the bigger platforms to work with.

you don't, unlike microsoft, need to have at least 10 different ways of calling up the same GUI box with an OK button in it, 3 of which are buggy and placed in for backward compatibilty, but are completely re-written, rather than call the known to be working code.

you can have a significantly better and less buggy system if you check it while you're going along and build from the foundations up with a good design policy ...

but then again we are talking microsoft here.
 
Don't get me started on Mi?ro$oft's software engineering methodologies. Or, more specifically, the lack thereof. ______________________________________________________________________
TANSTAAFL!
 
I do agree that a code of ethics is needed to educate professionals and improve software standards. Whoevers responsibility this is Management or Senior Developers, or developers themselfs - it needs to be decided and documented so that everyone knows. But I think its the Programmers CV that would benefit from showing membership of an Ethics council.

I spend a lot of time concentrating on Fault tolerance, new debugging tools and troubleshooting, so I have my opinions on what practises to use for developing. Im sure a lot of you have your own ideas, but would it not be a bad idea for a central collection of best practice ideas, where as professionals we can debate suggestions and build our own code of Ethics.

Besides, there is much more needed in a code of ethics other than writing bug-free code.

On a lighter note, ive always wished for a Register of Software Developers, just so that I can cross off a couple of names (incompetent ex-colleauges).
 
A code of ethics

As sleipnir214 referenced, the IEEE/ACM has approved such a code.

Reposting the following two comments from the original post

It is no wonder that the general public has such disdain for the IT profession.

Is there any code of ethics like there is in other Professional lcensed fields for IT?

My response:

I'm so glad the the Legal Profession has adopted a code of ethics that professional members of the Bar Association adhere to so that general public has no disdain for that profession.

A code of ethics may sound all fine and good, but in reality, its up to the character and integrity of the people within the profession that determine public opinion. The problems identified in this thread are not going to be solved by a code of ethics, something akin to an ISO 9000 standard, or by licensing the members of this profession.

(Although I personally would like to see a licensing body to help weed out those people who pretent to be IT professional because they can boot up a PC and run Excel, or consider themsevles to be programmers because they can write a &quot;hello world&quot; program.)

These issues in IT are no different than any other profession. The driving forces are generally greed and ego. No code of ethics is going to change this for a very simple reason.

The people in this world who are generally driven by greed an ego are already unethical (at least to some degree) and will therefore ignore (to the same degree) a code of ethics. Those that are driven more by a sense of right and wrong are already ethical (to a degree) and don't need a code of ethics.

Its sad (but very real) that the general behavior of people across all professional lines is such that discussions concerning a code of ethics even has to take place.

Need a code of ethics - ask the mirror what is right. Good Luck
--------------
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 
CajunCenturion,

Im slightly confused by what youve said, on one hand your happy that the legal profession has a code of ethics, because (assuming) as a consumer of legal services - you have more confidence; but then theres no point in a code of ethics because programmers will only subscribe if they are ethical ?

Isnt that the whole point? For the employers/consumers to distinguish between the ethical and the not-proven-ethical?

I agree with your point that a code of ethics may not address some of the points raised in this thread, but I have seen some pretty awfull pieces of work which im sure is more common than it is detected. The (ISC)2 have a Code of Ethics, which I subscribe to:

I think its about time that we had an official way to distinguish between script kiddies, and bona fide professional (ethical) programmers.
 
I think Cajun meant this:

<extremely heavy sarcasm>
I'm so glad the the Legal Profession has adopted a code of ethics that professional members of the Bar Association adhere to so that general public has no disdain for that profession.
</sarcasm>

The legal profession has a code of ethics, an association and high visibility and there are still plenty of lawyers who have to crawl up a oong way to get to the gutter.

It will take a lot more than a code of ethics or licensing to get better software.

Jeff
No matter how bad it is, it can always get worse ....
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top