ethical issues in software testing v4
TRANSCRIPT
Ethical Issues in Software TestingScott AllmanIndependent Consultant
CASTJuly, 2012
Your Speaker
•AST and SQuAD member•Software developer, tester, manager•AST student and teacher•BA, MA in Philosophy (but not in ethics; epistemology and philosophy of science)
Sources of this Presentation
•Regis University CS418 Ethics for IT Professionals•Books on applied ethics and on software engineering•AST solicitation for data•Correspondence with philosophers•Al-Anon and Alcoholics Anonymous•Discussions with other testers•WWW•Teach a skill – not argue
14,000 ft (4330 meters) Overview
•Topics NOT covered today•Ethical dilemmas•Introduce a skill•Next steps•Summary and questions
Topics NOT Covered Today
1.Codes of ethics – personal and professional2.Terrible things happen when software fails3.There are no ethical issues – just legal, or business, or self-interest, or engineering, or ..4.Justifications and origins of ethical principles5.Corner cases – Wait! We testers excel at these!
Software Testers Create Information“I once had a consulting contract with a leading
banking company. I was invited by …“Time passed, and it came time for me to
present my findings to Senior Management. …“I had wrestled all along with the dilemma of
reporting that key bug finding or suppressing“Going in to the meeting, I still wasn’t sure what
I was going to do .”From: Rost & Glass, “The Dark Side of Software Engineering:
Evil on Computing Projects”
The Human Side of Knowledge
•Relationships to individuals and groups–See the many groups in the codes of ethics
•There is a potential for conflict•Ethics is about what humans “ought to do”•Humans are decision makers
Dilemmas – Make a Decision !http://www.1mpages.com/contradictoryproverbs.html
Familiar Ideas about Dilemmas•You must make a decision (including the decision to do nothing)•You cannot choose both options• Choices may result in violating some principle
Right vs. Wrong - Moral Temptations
•Guided by your moral compass•“Don’ts”: kill, steal, fraud, etc.•Wrong is not relative
Right vs. Right: Ethical Dilemmas
•Either choice is right•You cannot make both•Patterns to recognize•Process to follow
Four Ethical Patterns
1.Truth vs. Loyalty2.Justice vs. Mercy3.Individual vs. Community4.Short-term vs. Long-term
Truth vs. Loyalty
Tradeoff: honesty or integrity versus commitment, responsibility or promise keeping
• As testers we create information–Bug reports (See AST Bug Advocacy class)–Observations on people and process
• Managers: pending layoffs
Is it ever ethical to not disclose everything you have learned while testing?
1.“On the other hand I’m fine with: Hiding special information from any of the stakeholders, when I see how revealing the information could harm either my customer or end user”2.“Report everything that I believe, in good faith, to be a threat to the product or to the user thereof, according to my understanding of the best interests of my client and the public good.”3. End of story from “The Dark Side of Software …”
Justice vs. Mercy
Tradeoff: fairness, equity and even handed applications of the law may conflict with compassion and empathy
• Someone broke the build• Not all the tests were run• Managers: Exaggerated resumes
Short-term vs. Long-term
Tradeoff: Immediate needs or desires run counter to future goals or prospects
• The software is late. You are asked to work weekends.
• A patch to a bug arrives after testing has begun.
Individual vs. Community
Tradeoff: self versus others; smaller groups versus larger groups
• Agile adaptive teams• Managers: Performance reviews and
employee rankings• Codes of ethics often select both
Resolving Issues – Classical Ethics
•Ends-based:–Consider the consequences–Greatest good for the greatest number of people
•Rules-based:–Follow your highest sense of principle
•Care-based:–Do what you want others to do to you
Special Topic: Whistleblowing
•What is whistleblowing?•What are the risks?•Are the wrong ways to do it?•More than one ethical pattern may apply.
Ethical Fitnesse
•Identify the facts and stakeholders•Which ethical pattern applies?•Formulate options•Be able to defend your reasoning•Make a decision•Over time, learn about your ethical stances
My Values
•Truth over loyalty•Long-term over short term•Mercy over justice•Individuals over community
Next Steps
•Catalog of common ethical dilemmas confronting software testers–Arguments for stances and resolutions–Stories from our experiences
•Creating your personal ethics code, your own instrument panel•Support for ethical decision making among our colleagues
Summary of this Presentation•When your ethical compass is atwitter, frame issue as “Right vs. Right”–Truth vs. Loyalty–Justice vs. Mercy–Long/Short term & Individual/Group
•Become ethically fit by challenging yourself to consciously resolve ethical dilemmas•Understand that in an imperfect world, with limited information, you must still choose
References
•Rost and Glass, “The Dark Side of Software Engineering: Evil on Computing Projects”•Kidder, “How Good People Make Tough Choices”
Audience Participation
“Ladies and gentlemen: the story you are about to hear is true. Only the names have been changed to protect the innocent.” Dragnet, circa 1968