KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/srakitin/OLD/newsletter/vol6/no2/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/srakitin/OLD/newsletter/vol6/no2/vol6no2.txt
Food for Thought-An e-newsletter published by Software Quality Consulting, Inc.
February 2009, Vol. 6 No. 2 
Ethics in Software Development

What topics would you like to see in this newsletter?  Each month, this
newsletter tries to provide you with useful information.  This is a two-way
street and your feedback is important.  Please send your thoughts and comments
to [email protected].

--------------------------------------------------------------------------------

Welcome to Food for Thought(TM), an e-newsletter from Software Quality
Consulting (http://www.swqual.com/index.html?Intro). I've created free
subscriptions for my valued business contacts. If you find this newsletter
informative, I encourage you to continue reading. Feel free to pass this
newsletter along to colleagues by clicking the Forward Email link at the bottom
of this email. If you�ve received this newsletter from a colleague and would
like to subscribe, please click this Enter New Subscription link
(http://www.swqual.com/newsletter/Subscribe.htm?Newsletter). If you don't wish
to receive this newsletter, click the SafeUnSubscribe(TM) link at the bottom of
this newsletter, and you won�t be bothered again.

Your continued feedback on this newsletter is most welcome. Please send 
your comments and suggestions to [email protected].

--------------------------------------------------------------------------------

*** In This Issue ***

In This Months� Topic, I discuss ethical behavior and professionalism...

Regular features to look for each month are:

- Monthly Morsels
  Hints, tips, techniques and reference info related to this month�s topic 

- Calendar
  Conferences, workshops, and meetings of interest to software engineers, 
  QA engineers and anyone interested in software development 

--------------------------------------------------------------------------------

*** This Month�s Topic ***

ETHICS IN SOFTWARE DEVELOPMENT

The parade of politicians charged with or admitting to unethical behavior 
seems endless. The governor of Illinois was impeached and barred from ever 
holding public office in Illinois. The governor of New York resigned after 
a prostitution scandal. The last three Speakers of the House of 
Representatives in Massachusetts have resigned amid accusations of 
unethical behavior. Several key members of the new Obama administration 
have admitted to not paying all the income tax they owed. National sports 
figures such as Major League Baseball player Alex Rodriquez have admitted 
to using performance enhancing drugs. 

Unethical behaviors have occurred repeatedly on Wall Street and in many 
companies. For example:

- Ford - Remember the infamous exploding gas tank in the Ford Pinto? 
  Executives at Ford decided it would be cheaper to deal with lawsuits 
  resulting from deaths caused by the poor design of the Pinto than to 
  actually fix the problem. The fix was estimated to cost $11 at the time. 
  As a result of this bad decision, several people were killed and others 
  severely burned. 

  Read more about the cost-benefit analysis used by Ford execs...
  (http://www.calbaptist.edu/dskubik/pinto.htm)

- Enron - CEO Ken Lay and his management team were involved in many 
  unethical actions that ultimately resulted in the loss of: $60 billion 
  of lost value to share holders, thousands of jobs, and the retirement 
  savings of most Enron employees. 

  Read more about the Enron Scandal...
  (http://en.wikipedia.org/wiki/Enron_scandal)

- The unethical actions of investment manager Bernard Madoff resulted in 
  investors losing over $50 billion. Several of these investors were 
  charitable organizations that donate millions of dollars to support many 
  social programs for people in need. 

  Read more about the Bernard Madoff scandal...
  (http://www.npr.org/templates/story/story.php?storyId=98393250)

- The on-going investigation into the salmonella outbreak in the US has 
  raised allegations that the CEO of the Georgia plant where the tainted 
  product was made knew the product was tainted but shipped it anyway, 
  resulting in at least 9 deaths... 

  Read more about the salmonella outbreak...
  (http://www.fda.gov/oc/opacom/hottopics/Salmonellatyph.html)

Ethical behavior is something that we all must deal with everyday in both 
our work and personal lives. This month, we discuss how ethics affects 
decisions we make with regard to software development.

DEFINITIONS

First we need to start with a few definitions from Webster�s New World 
College Dictionary, 3rd edition:

   Ethic      A system of moral standards or values. A particular moral 
              standard or value.

   Ethical    Having to do with ethics or morality; of or conforming to 
              moral standards. Conforming to the standards of conduct of a given 
              profession or group. Synonym: moral

WHAT IS ETHICAL BEHAVIOR?

  �The term ethical behavior refers to how an individual or an 
  organization ensures that all its decisions, actions, and stakeholder 
  interactions conform to the individual�s or organization�s moral and 
  professional principles. These principles should support all applicable 
  laws and regulations and are the foundation for the individual�s or 
  organization�s culture and values. They define right from wrong.� [1]

Organizations and individuals often make decisions which, taken by 
themselves, may seem perfectly ethical. However, taken as a whole, these 
decisions may border on unethical behavior. For example:

- A software sales person accepts a purchase order from a customer to 
  deliver some software application with specific features by a specific 
  date. The sales person knows that implementing the features and meeting 
  the date are highly unlikely. Nevertheless, to meet sales projections 
  and to get a commission, the order is accepted. 

- As a result of the promises made to this customer, the project manager 
  must make decisions in order to meet the unrealistic schedule. The 
  project manager decides to cut out tasks included in the standard 
  software development process, such as document and code reviews. 
  Further, the project manager reduces the amount of time allocated for 
  system test by 50%. 

- To meet the unrealistic schedule, the development manager decides to 
  drop a few of the new features that haven�t been fully implemented yet. 
  Unbeknownst to the development manager, the features dropped were 
  promised to the customer. 

- The test manager must reduce testing by 50%. To do this, the test 
  manager decides not to test certain features that were not supposed to 
  change. Because the document and code reviews were eliminated, the test 
  manager was not aware that several of these features actually did 
  change. 

- The end result was a software release that came out months after it was 
  promised, without the new features that were promised, and with many 
  more defects than were in the previous release. 

Taken individually, the actions of the people involved may seem 
reasonable. However, when these actions are combined, the effects are 
magnified many times and the results can include everything from customer 
dissatisfaction to contractual litigation, layoffs, and even bankruptcy.

Customers form expectations of what a software release is supposed to 
contain from many sources, including information provided by sales and 
marketing and from company literature. If customer expectations are not 
met, customers may suffer business repercussions. If this happens for 
reasons within control of the company (i.e., the company makes a conscious 
decision to not deliver what was promised in order to further their own 
goals), one may view this as an example of unethical business practices.

ENTER THE CODE OF ETHICS...

The software engineering community has attempted to deal with issues of 
ethics and the many ethical dilemmas often faced by software engineers and 
testers by developing a Code of Ethics....

  �Professionals see themselves as part of a community of like-minded 
  individuals who put their professional standards above their individual 
  self-interest or their employer�s self-interest. In the beginning, 
  professional societies usually promote the exchange of knowledge. Over 
  time, their function evolves to include defining certification criteria, 
  managing certification programs, establishing accreditation standards, 
  and defining codes of ethics and disciplinary action for violations of 
  those codes.� [2]

The Code of Ethics adopted by the ACM-IEEE Joint Task Force on Software 
Engineering Ethics and Professional Practice states that:

  Software engineers shall commit themselves to making the analysis, 
  specification, design, development, testing and maintenance of software 
  a beneficial and respected profession. [3]

The Code of Ethics is based on the following 8 principles:

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

  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.

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

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

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

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

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

  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.

  Copyright (c) 1999 by the Association for Computing Machinery, Inc. and 
  the Institute for Electrical and Electronics Engineers, Inc. 

  Read more about the Software Engineering Code of Ethics...
  (http://www.acm.org/about/se-code)

Having a Code of Ethics is an important part of an engineering profession. 
Unfortunately, having this Code of Ethics has had little or no impact on 
behavior, primarily due to the fact that, as stated in [1]:

- A large percentage of software professionals do not belong to the IEEE 
  or the ACM. 

- Many individuals working on projects might not be software 
  professionals, but instead are product or project managers. 

- Many ACM and IEEE members are unfamiliar with these ethics codes. 

- Even when somewhat familiar with the imperatives, peer, organizational, 
  or other pressures might be brought to bear. 

- In some cases, the imperatives are vague and require study to understand 
  when they apply to a particular situation. 

Ethical behaviors in the software engineering profession don�t get much 
attention in the typical undergraduate curriculum.

Lastly, the Code of Ethics has no enforcement mechanism. In the legal
profession, attorneys are licensed. When a licensed attorney is found to have
violated their Code of Ethics http://www.law.cornell.edu/ethics/ny/code/
NY_CODE.HTM), the attorney can be disbarred, effectively preventing that person
from practicing law. Since software engineers and testers are not licensed,
there is no mechanism for addressing unethical behavior.

ULTIMATELY, SOMEONE IS RESPONSIBLE...

Shari Pfleeger [4] identified several interesting scenarios that raise 
interesting ethical questions. In the following examples, the question to 
ask is Who is responsible?

- Developers work together with customers and users to define requirements 
  and specify what a proposed system will do. Once it is built, the system 
  works according to specification but harms someone physically or 
  financially. 

- A system is designed and implemented using off the shelf (COTS) 
  software. When deployed, the system fails and harms someone physically 
  or financially as a result of defects in off the shelf (COTS) software. 

- An offshore development company is hired to develop a portion of a 
  software system. When deployed, the system fails and harms someone 
  physically or financially as a result of defects in the code developed 
  by the offshore company. 

- Your customer requires you to use a specific software development model 
  when it contracts with you to build them a system.  After the software 
  is delivered and installed, the system experiences a catastrophic 
  failure. 

  When the customer investigates, you are accused of not having done code 
  reviews that would have found the source of the problem before delivery. 
   You respond that code reviews were not in the required software 
  development model. 

- A test team performs system testing according to an approved test plan. 
  After delivery, a critical defect is discovered in the customer 
  environment that results in financial harm to the customer. 

- A safety-critical system fails and several lives are lost. When the 
  cause of the failure is investigated, the inquiry commission discovers 
  that the test plan neglected to consider the case that caused the system 
  failure. 

  Who is responsible?

  - The testers for not noticing the missing case? 
  - The test planners for not writing a complete test plan? 
  - The managers for not having checked the test plan? 
  - The customer for not having done a thorough acceptance test? 

In addition to these scenarios, there are the situations that we face 
everyday where we make decisions using our own internal �Code of Ethics�. 
For example:

- We often come up with estimates and schedules that are what the boss 
  wants to hear rather than what is really required. Is this ethical? 

- We often release software with known defects. Is this ethical? 

- We often don�t bother to read documents that have been circulated for 
  review hoping others will catch problems. Is this ethical? 

- Management allows sales people to tell customers what they want to hear 
  in order to get orders. Is this ethical? 

There are many more examples like this that people face daily. Every day 
we make decisions and take actions that by themselves may seem perfectly 
reasonable. What we need to do is recognize that the effects of each of 
these actions and decisions are multiplied together and the results can be 
catastrophic. 

SUMMARY

Behaving in an ethical manner is not always easy when you work in an 
industry where, for a very long time, it was very easy to fool people and 
mislead customers. Today, customers are a lot more technically perceptive 
and managers are not so easily fooled. Today we need to behave in an 
ethical manner. There are far too many unscrupulous people in the business 
world and their egregious behavior is to a large degree responsible for 
the economic mess we are in.

The Code of Ethics really just boils down to one simple principle... 

Do the right thing. 

Til next time... 

--------------------------------------------------------------------------------

*** Monthly Morsels ***

Every month in this space, you�ll find additional information related to 
this month�s topic.

References

1 Berenbach, B. and Manfred, B., �Professional and Ethical Dilemmas in 
  Software Engineering�, IEEE Computer, January 2009. 

2 McConnell, S. and Tripp L., �Professional Software Engineering: Fact or 
  Fiction�, IEEE Software, Nov-Dec 1999. 

3 Gotterbarn, D., et. al., �Computer Society and ACM Approve Software 
  Engineering Code of Ethics�, IEEE Computer, October 1999. 

4 Pfleeger, S., Software Engineering - Theory and Practice, Prentice-Hall, 
  1998. 

Additional Resources

- Software Engineering Code of Ethics and Professional Practice, adopted 
  by Joint ACM-IEEE Task Force 
  (http://www.acm.org/about/se-code)

- Software Engineering Ethics Research Institute 
  (http://seeri.etsu.edu/)

- Online Ethics Center at the National Academy of Engineering 
  (http://www.onlineethics.org/)

- Martin M. and Schinzinger R., Ethics in Engineering, 4th Edition, 
  McGraw-Hill, 2005 
  (http://books.google.com/books?id=nJBVhEtOQaQC&dq=software+engineering+ethics)

--------------------------------------------------------------------------------

*** Calendar ***

Every month you�ll find news here about local and national events that 
are of interest to the software community...

- Software Quality Calendar 

  There are many organizations that sponsor monthly meetings, workshops, 
  and conferences of interest to software professionals. Find out what�s 
  happening...
  (http://www.swqual.com/links/upcoming.html)

- Workshops Offered by Software Quality Consulting 

  Software Quality Consulting offers workshops in many topics related to 
  software process improvement. Get more info...
  (http://www.swqual.com/seminars/courses.html)

--------------------------------------------------------------------------------

*** About SQC ***

Software Quality Consulting provides consulting, training, and auditing 
services tailored to meet the specific needs of clients. We help clients 
fine-tune their software development processes and improve the quality of 
their software products. The overall goal is to help clients achieve 
Predictable Software Development(TM) � so that organizations can consistently 
deliver quality software with promised features in the promised timeframe. 

To learn more about how we can help your organization, visit our web site
(http://www.swqual.com/index.html?AboutSQC) or send us an email
([email protected]).

--------------------------------------------------------------------------------

I hope this newsletter has been informative and helpful. Your comments and 
feedback are most welcome. Send me your feedback...

Thanks,

Steve Rakitin
[email protected]

Food for Thought, Predictable Software Development, Act Like a Customer,
and ALAC are trademarks of Software Quality Consulting, Inc.

Copyright 2009. Software Quality Consulting, Inc. All rights reserved.
Graphic design by Sarah Cole Design.  

Anon7 - 2021