Should Software Engineers Adhere to a Professional Code of

advertisement
Professional Ethics: Should
Software Engineers Adhere to a
Professional Code of Conduct?
Jonathan Schiff
CS 301
Institute for Electrical and
Electronics Engineers-Computer
Society (IEEE-CS) general
directives
1. Accept responsibility in making
engineering decisions consistent with the
safety, health, and welfare of the public
2. Avoid real or perceived conflicts of
interest wherever possible
3. Be honest
4. Reject bribery in all its forms
Association for Computing
Machinery (ACM) moral
imperatives
1.1 Contribute to society and human well being
1.2 Avoid harm to others
1.3 Be honest and trustworthy
1.4 Be fair and take action not to discriminate
1.5 Honor property copyrights and patents
1.6 Give proper credit for intellectual property
1.7 Respect the privacy of others
1.8 Honor confidentiality
Association for Computing
Machinery (ACM) imperatives cont.
2.1 Strive to achieve the highest quality in work
2.2 Acquire and maintain professional competence
3.1 Articulate social responsibilities of members
3.2 Manage personnel and resources to design
and build information that enhances the quality
of working life
4.1 Uphold and promote the principles of this code
4.2 Treat violations of this code as inconsistent
with membership in the ACM
Strengths of Professional Codes
• Inspire software engineers to behave
ethically
• Guide software engineers in ethical
choices
• Educate software engineers about their
professional obligations
• Discipline software engineers when they
violate one or more of the code’s
directives
Strengths of Professional Codes
(cont.)
• Sensitize software engineers to ethical
issues and alert them to ethical aspects
they otherwise might overlook
• Inform the public about the nature and
roles of software engineering
• Enhance software engineering in the eyes
of the public
Weaknesses of Professional Codes
• Directives included in codes tend to be too
general and too vague
• Codes are not always helpful when two or
more directives conflict
• A code’s directives are never complete or
exhaustive
• Codes are ineffective (have no “teeth”) in
disciplinary matters
Weaknesses of Professional Codes
(cont.)
• Directives in codes are sometimes
inconsistent with one another
• Codes do not always distinguish between
microethics and macroethics issues
• Codes can be self-serving for the
profession
Software Engineering Code of
Ethics and Professional Practice
(SECEPP) principles, late 1990s
1.
2.
3.
4.
5.
PUBLIC: shall act consistently with the public interest
CLIENT AND EMPLOYER: shall act in a manner that
is in the best interests of their client and employer,
consistent with the public interest
PRODUCT: shall ensure that their products and related
modifications meet the highest professional standards
possible
JUDGMENT: shall maintain integrity and
independence in their professional judgment
MANAGEMENT: managers and leaders shall
subscribe to and promote an ethical approach to the
management of software development and
maintenance
Software Engineering Code of
Ethics and Professional Practice
(SECEPP) principles cont.
6. PROFESSION: shall advance the integrity and
reputation of the profession consistent with the
public interest
7. COLLEAGUES: shall be fair to and supportive
of their colleagues
8. SELF: shall participate in lifelong learning
regarding the practice of their profession and
shall promote an ethical approach to the
practice of the profession
SECEPP’s Preamble (with high
level of abstraction)
• Consider broadly who is affected by one’s
work
• Examine if one and their colleagues are
treating other human beings with due
respect
• Consider how the public, if reasonably well
informed, would view one’s decisions
• Analyze how the least empowered will be
affected by one’s decisions
Improvements Made in SECEPP
Regarding Weaknesses of Earlier
Codes
• Achieves a balance between the general and
the specific
• Addresses the problem of incompleteness by
providing general guidance for ethical decision
making, where one would use thoughtful
consideration of fundamental principles rather
than blind reliance on detailed regulations
• Addresses the problem of choosing between
conflicting principles by having a hierarchy of
principles, with the health, safety, and welfare of
the public primary in all ethical judgments
Certification of Software Engineers
by States without Defining a
Standard of Practice
• Licensed software engineers will obey the
law, but laws provide inadequate guidance
in many critical situations
• The failure to connect specific ethical
standards to licensing encourages the
mistaken view that there is little agreement
among software engineers about their
professional and moral obligations
Conclusion
• Professional codes cannot provide advice in
how to make professional career choices or for
trying to determine the extent which a software
engineer should be involved in policy issues that
affect society at large
• Codes can never be a substitute for careful
moral deliberation that is needed in controversial
cases
• However, well developed codes of conduct
provide software engineers an important first
step in the overall ethical deliberation process
Questions?
Comments?
Complaints?
Download