Friday, February 23, 2007

IEEE defined Code of Ethics for Software Engineers

After listening to Steve McConnell's talk on the last dotNetRocks, I decided to quickly look into the IEEE Software Engineer Certification Program.  Its a little more indepth than I have time for right now and I'm not sure that I meet all the requirements for application.  However, I did stumble their Software Engineering Code of Ethics and Professional Practice.  It is aimed at making the software develop a respected profession.  I, of course, am lacking in several areas.  Here is the short version:

Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

1. PUBLIC - Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

I think that this is a great document that a lot of software development teams could adopt and reap some benefits.  I'm lucky to be on a team that already embraces most of these principals.  We are fair to and supportive of each other.  We all participate in lifelong learning and are constantly challenging ourselves.  Some of us even care about the safety and welfare of the general public.   However, like most us, I've also worked in groups where it seemed no one seemed to embody these principles.  All it generated was crappy code, shouting matches and the general weeping and gnashing of teeth. 

No comments: