|
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 : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Food for Thought: Ethics in Software Development</title>
<link href="/newsletter/StyleSheet.css" rel="stylesheet" type="text/css">
</head>
<OpenTracking/>
<!-- Do NOT delete previous line if you want to get statistics on the number of opened emails -->
<body>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<tr align="center" valign="top">
<td colspan="2"><img src="/newsletter/images/FoodForThoughtLogo.gif" alt="Food for Thought" width="600" height="105"></td>
</tr>
<tr class="Reference">
<td align="left" valign="top"><p>An e-newsletter published by<br>
Software Quality Consulting, Inc. </p>
</td>
<td align="right" valign="top"><p>February 2009 , Vol. 6 No. 2 <br>
[<a href="/newsletter/vol6/no2/vol6no2.txt" target="_blank">Text-only Version</a>]</p>
</td>
</tr>
</table>
<br>
<br>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="BodyText">
<tr>
<td align="left" valign="top">
<p>Welcome to <em><strong>Food for Thought™</strong></em>, an e-newsletter from <strong><a href="/index.html?Intro" target="_blank">Software Quality Consulting</a></strong>. 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 this <strong><a href="http://ui.constantcontact.com/roving/sa/fp.jsp?plat=i&p=f&m=sctz69n6">Forward Email</a></strong> link. If you’ve received this newsletter from a colleague and would like to subscribe, please click this <strong><a href="/newsletter/Subscribe.htm?Newsletter" target="_blank">Enter New Subscription</a></strong> link. If you don't wish to receive this newsletter, click the <strong><a href="#bottom">SafeUnSubscribe</a></strong>™ link at the bottom of this newsletter, and you won’t be bothered again.</p>
<p>Your continued feedback on this newsletter is most welcome. Please send your comments and suggestions to <strong><a href="mailto:[email protected]">[email protected]</a></strong>.</p></td>
</tr>
</table>
<br>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="BodyText">
<tr>
<td width="114" align="right" valign="top" background="/newsletter/images/RedSpacer.gif"><img src="/newsletter/images/InThisIssue.gif" alt="In This Issue" width="114" height="37"></td>
<td width="15"> </td>
<td align="left" valign="top"><p>In <a href="#article"><strong>This Months’ Topic</strong></a>, I discuss ethical behavior and professionalism...<br>
<br>
Regular features to look for each month are:</p>
<ul>
<li> <a href="#morsel"><strong>Monthly Morsels</strong></a><br>
Hints, tips, techniques and reference info related to this month’s topic</li>
</ul>
<ul>
<li> <a href="#calendar"><strong>Calendar</strong></a><br>
Conferences, workshops, and meetings of interest to software engineers, QA engineers and anyone interested in software development</li>
</ul>
</td>
</tr>
</table>
<br>
<br>
<a name="article"></a>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="BodyText">
<tr>
<td width="114" align="left" valign="top" background="/newsletter/images/RedSpacer.gif"><img src="/newsletter/images/ThisMonthsTopic.gif" alt="This Month's Topic" width="114" height="37"></td>
<td width="15"> </td>
<td width="471" align="left" valign="top" class="BodyText"><p align="center" class="Headline">Ethics in Software Development</p>
<p> 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. </p>
<p> Unethical behaviors have occurred repeatedly on Wall Street and in many companies. For example:</p>
<ul>
<li><strong> Ford</strong> - 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.</li>
</ul>
<blockquote>
<p><strong><a href="http://www.calbaptist.edu/dskubik/pinto.htm" target="_blank">Read more about the cost-benefit analysis used by Ford execs...</a></strong></p>
</blockquote>
<ul>
<li><strong> Enron</strong> - 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.</li>
</ul>
<blockquote>
<p><strong><a href="http://en.wikipedia.org/wiki/Enron_scandal" target="_blank">Read more about the Enron Scandal...</a></strong></p>
</blockquote>
<ul>
<li> 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.</li>
</ul>
<blockquote>
<p><strong><a href="http://www.npr.org/templates/story/story.php?storyId=98393250" target="_blank">Read more about the Bernard Madoff scandal...</a></strong></p>
</blockquote>
<ul>
<li> 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...</li>
</ul>
<blockquote>
<p><strong><a href="http://www.fda.gov/oc/opacom/hottopics/Salmonellatyph.html" target="_blank">Read more about the salmonella outbreak...</a></strong></p>
</blockquote>
<p> 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.<br>
<br>
</p>
</td>
</tr>
<tr>
<td align="left" valign="top" background="/newsletter/images/RedSpacer.gif"><img width="110" height="72" src="/newsletter/vol6/no2/vol6no2_clip_image002.jpg"> </td>
<td> </td>
<td align="left" valign="top" class="BodyText"><p><strong>Definitions</strong></p>
<p> First we need to start with a few definitions from Webster’s New World College Dictionary, 3rd edition:</p>
<table width="400" align="center" cellspacing="10" class="BodyText">
<tr align="left" valign="top">
<td width="69"><strong>ethic</strong></td>
<td width="295">A system of moral standards or values. A particular moral standard or value.</td>
</tr>
<tr align="left" valign="top">
<td><strong>ethical</strong></td>
<td>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</td>
</tr>
</table>
<p><strong>What is</strong><strong> Ethical Behavior?</strong></p>
<blockquote>
<p> “The term <strong> ethical behavior</strong> 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]</p>
</blockquote>
<p> 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:</p>
<ul>
<li> 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. </li>
</ul>
<ul>
<li> 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%. </li>
</ul>
<ul>
<li> 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. </li>
</ul>
<ul>
<li> 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. </li>
</ul>
<ul>
<li> 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. </li>
</ul>
<p>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.</p>
<p> 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.<br>
<br>
</p></td>
</tr>
<tr>
<td align="left" valign="top" background="/newsletter/images/RedSpacer.gif"><img width="110" height="83" src="/newsletter/vol6/no2/vol6no2_clip_image001.gif"> </td>
<td> </td>
<td align="left" valign="top" class="BodyText"><p><strong>Enter the Code of Ethics...</strong></p>
<p> 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....</p>
<blockquote>
<p> “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]</p>
</blockquote>
<p> The Code of Ethics adopted by the ACM-IEEE Joint Task Force on Software Engineering Ethics and Professional Practice states that:</p>
<blockquote>
<p> Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. [3]</p>
</blockquote>
<p> The Code of Ethics is based on the following 8 principles:</p>
<blockquote>
<p><strong> PUBLIC</strong> - Software engineers shall act consistently with the public interest.</p>
<p><strong> CLIENT AND EMPLOYER</strong> - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.</p>
<p><strong> PRODUCT</strong> - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.</p>
<p><strong> JUDGMENT</strong> - Software engineers shall maintain integrity and independence in their professional judgment.</p>
<p><strong> MANAGEMENT</strong> - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.</p>
<p><strong> PROFESSION</strong> - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.</p>
<p><strong> COLLEAGUES</strong> - Software engineers shall be fair to and supportive of their colleagues.</p>
<p><strong> SELF</strong> - 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.</p>
<p class="Reference"> Copyright (c) 1999 by the Association for Computing Machinery, Inc. and the Institute for Electrical and Electronics Engineers, Inc. </p>
<p><strong><a href="http://www.acm.org/about/se-code" target="_blank">Read more about the Software Engineering Code of Ethics...</a></strong></p>
</blockquote>
<p> 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]:</p>
<ul>
<li> A large percentage of software professionals do not belong to the IEEE or the ACM. </li>
</ul>
<ul>
<li> Many individuals working on projects might not be software professionals, but instead are product or project managers. </li>
</ul>
<ul>
<li> Many ACM and IEEE members are unfamiliar with these ethics codes. </li>
</ul>
<ul>
<li> Even when somewhat familiar with the imperatives, peer, organizational, or other pressures might be brought to bear. </li>
</ul>
<ul>
<li> In some cases, the imperatives are vague and require study to understand when they apply to a particular situation. </li>
</ul>
<p>Ethical behaviors in the software engineering profession don’t get much attention in the typical undergraduate curriculum.</p>
<p> 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 <strong><a href="http://www.law.cornell.edu/ethics/ny/code/NY_CODE.HTM" target="_blank">Code of Ethics</a></strong>, 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.</p>
<p><strong> Ultimately, someone is responsible...<br>
<br>
</strong></p></td>
</tr>
<tr>
<td align="left" valign="top" background="/newsletter/images/RedSpacer.gif"><img width="110" height="161" src="/newsletter/vol6/no2/vol6no2_clip_image001.jpg"> </td>
<td> </td>
<td align="left" valign="top" class="BodyText"><p>Shari Pfleeger [4] identified several interesting scenarios that raise interesting ethical questions. In the following examples, the question to ask is <strong>Who is responsible?</strong></p>
<ul>
<li> 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. </li>
</ul>
<ul>
<li> 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. </li>
</ul>
<ul>
<li> 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. </li>
</ul>
<ul>
<li> 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.</li>
</ul>
<blockquote>
<p>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. </p>
</blockquote>
<ul>
<li> 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. </li>
</ul>
<ul>
<li> 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.</li>
</ul>
<blockquote>
<p>Who is responsible?</p>
</blockquote>
<ul>
<ul>
<li> The testers for not noticing the missing case? </li>
<li> The test planners for not writing a complete test plan? </li>
<li> The managers for not having checked the test plan? </li>
<li> The customer for not having done a thorough acceptance test? </li>
</ul>
</ul>
<p>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:</p>
<ul>
<li> We often come up with estimates and schedules that are what the boss wants to hear rather than what is really required. <strong>Is this ethical?</strong></li>
</ul>
<ul>
<li> We often release software with known defects. <strong>Is this ethical?</strong></li>
</ul>
<ul>
<li> We often don’t bother to read documents that have been circulated for review hoping others will catch problems. <strong>Is this ethical?</strong></li>
</ul>
<ul>
<li> Management allows sales people to tell customers what they want to hear in order to get orders. <strong>Is this ethical?</strong></li>
</ul>
<p>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. </p>
<p><strong> Summary</strong></p>
<p> 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.</p>
<p> The Code of Ethics really just boils down to one simple principle... </p>
<p align="center"><strong> Do the right thing</strong>. </p>
<p>Til next time... </p></td>
</tr>
</table>
<br>
<br>
<a name="morsel"></a>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="BodyText">
<tr>
<td width="114" align="right" valign="top" background="/newsletter/images/RedSpacer.gif"><img src="/newsletter/images/MonthlyMorsels.gif" alt="Monthly Morsels" width="114" height="37"></td>
<td width="15"> </td>
<td align="left" valign="top"><p> Every month in this space, you’ll find additional information related to this month’s topic.</p>
<p><strong> References</strong></p>
<ol>
<li> Berenbach, B. and Manfred, B., “Professional and Ethical Dilemmas in Software Engineering”, <em>IEEE Computer</em>, January 2009. <br>
<br>
</li>
<li> McConnell, S. and Tripp L., “Professional Software Engineering: Fact or Fiction”, <em>IEEE Software</em>, Nov-Dec 1999. <br>
<br>
</li>
<li> Gotterbarn, D., <em>et. al.</em>, “Computer Society and ACM Approve Software Engineering Code of Ethics”, <em>IEEE Computer</em>, October 1999. <br>
<br>
</li>
<li> Pfleeger, S., Software Engineering - <em>Theory and Practice</em>, Prentice-Hall, 1998. </li>
</ol>
<p><strong> Additional Resources</strong></p>
<ul>
<li><strong><a href="http://www.acm.org/about/se-code" target="_blank">Software Engineering Code of Ethics and Professional Practice, adopted by Joint ACM-IEEE Task Force</a></strong></li>
</ul>
<ul>
<li><strong><a href="http://seeri.etsu.edu/" target="_blank">Software Engineering Ethics Research Institute</a></strong></li>
</ul>
<ul>
<li><strong><a href="http://www.onlineethics.org/" target="_blank">Online Ethics Center at the National Academy of Engineering</a></strong></li>
</ul>
<ul>
<li><strong><a href="http://books.google.com/books?id=nJBVhEtOQaQC&dq=software+engineering+ethics" target="_blank">Martin M. and Schinzinger R., <em>Ethics in Engineering</em>, 4th Edition, McGraw-Hill, 2005</a></strong></li>
</ul></td>
</tr>
</table>
<br>
<br>
<a name="calendar"></a>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="BodyText">
<tr>
<td width="114" align="right" valign="top" background="/newsletter/images/RedSpacer.gif"><img src="/newsletter/images/Calendar.gif" alt="Calendar" width="114" height="37"></td>
<td width="15"> </td>
<td align="left" valign="top"><p> Every month you’ll find news here about local and national events that are of interest to the software community…</p>
<ul>
<li><strong> Software Quality Calendar</strong></li>
</ul>
<blockquote>
<p>There are many organizations that sponsor monthly meetings, workshops, and conferences of interest to software professionals. <strong><a href="/links/upcoming.html" target="_blank">Find out what’s happening…</a></strong></p>
</blockquote>
<ul>
<li><strong> Workshops Offered by Software Quality Consulting</strong></li>
</ul>
<blockquote>
<p>Software Quality Consulting offers workshops in many topics related to software process improvement. <strong><a href="/seminars/courses.html" target="_blank">Get more info…</a></strong></p>
</blockquote></td>
</tr>
</table>
<br>
<br>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="BodyText">
<tr>
<td width="114" align="right" valign="top" background="/newsletter/images/RedSpacer.gif"><img src="/newsletter/images/AboutSQC.gif" alt="About SQC" width="114" height="37"></td>
<td width="15"> </td>
<td align="left" valign="top"><p> 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™ – so that organizations can consistently deliver quality software with promised features in the promised timeframe. </p>
To learn more about how we can help your organization, <strong><a href="/index.html?AboutSQC" target="_blank">visit our web site</a></strong> or <strong><a href="mailto:[email protected]">send us an email</a></strong>.</td>
</tr>
</table>
<br>
<br>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="BodyText">
<tr>
<td align="left" valign="top"><p> I hope this newsletter has been informative and helpful. Your comments and feedback are most welcome. <strong><a href="mailto:[email protected]">Send me your feedback…</a></strong></p>
<p>Thanks,</p>
<p> <img src="/newsletter/images/BusinessCard.gif" width="270" height="121" align="right"><img src="/newsletter/images/Signature.gif" width="90" height="68"><br>
Steve Rakitin<br>
<br>
<strong><a href="mailto:[email protected]">[email protected]</a></strong></p></td>
</tr>
</table>
<div align="center"><br>
<FONT class="Reference">Food for Thought, Predictable Software Development, Act Like a Customer,<br>
and ALAC are trademarks of Software Quality Consulting, Inc.<br>
Copyright 2009. Software Quality Consulting, Inc. All rights reserved.<br>
Graphic design by <a href="http://www.sarahcoledesign.com/" target="_blank"><strong>Sarah Cole Design</strong></a>.</FONT></div>
<a name="bottom"> </a></body>
</html>