Ch 15: Ethics & Professional Practice
Software engineering ethics, ethical dilemmas, and professional responsibilities.
Chapter 15 — Ethics & Professional Practice
(Sommerville Ch. 1 — Professional Responsibility)
Software Engineering Ethics
Software engineers must act responsibly. Key ethical principles (ACM/IEEE Code):
- Public — act consistently with the public interest
- Client and employer — act in the client’s interest, consistent with the public
- Product — ensure products meet the highest professional standards
- Judgment — maintain integrity and independence in professional judgment
- Management — managers should promote ethical approaches
- Profession — advance the integrity of the profession
- Colleagues — treat colleagues fairly and support them
- Self — commit to lifelong learning
Ethical Dilemma: Unpaid Overtime
Scenario: Manager demands schedule met through unpaid overtime; team members have young children.
Factors to consider:
- Contractual obligations — is overtime in employment contracts?
- Team welfare — forced overtime with young children causes real harm
- Project need — is the schedule actually critical or poorly planned?
- Alternative solutions — can scope be reduced? Can deadline be extended?
- Long-term consequences — burnout reduces productivity; good staff leave
A professional engineer has an obligation to their team’s wellbeing and should push back on unreasonable demands, propose alternatives, and escalate ethically if the demand is harmful.
Ethical Dilemma: Low-Price Contract with Ambiguous Requirements
Deliberately quoting low knowing requirements are ambiguous to profit from later changes.
This is unethical because:
- It deceives the client about the true cost
- It exploits ambiguity rather than resolving it
- It damages trust in the profession
- It may violate contract law (misrepresentation)
A professional approach: flag ambiguities explicitly, include contingency pricing, or quote for a requirements clarification phase first.
Colleague Ignoring Quality Standards
Good programmer, low defects, ignores organizational standards.
Managers should:
- Acknowledge the quality of their work
- Explain clearly why standards exist (team coordination, maintenance, audits)
- Work to understand if standards are outdated and need revision
- Enforce standards consistently — no exceptions, regardless of individual skill
- If non-compliance continues, escalate through HR process
“Standards exist for the team, not the individual. One person’s exception becomes everyone’s problem.”