Post

Ch 15: Ethics & Professional Practice

Software engineering ethics, ethical dilemmas, and professional responsibilities.

Ch 15: Ethics & Professional Practice

Chapter 15 — Ethics & Professional Practice

(Sommerville Ch. 1 — Professional Responsibility)

Software Engineering Ethics

Software engineers must act responsibly. Key ethical principles (ACM/IEEE Code):

  1. Public — act consistently with the public interest
  2. Client and employer — act in the client’s interest, consistent with the public
  3. Product — ensure products meet the highest professional standards
  4. Judgment — maintain integrity and independence in professional judgment
  5. Management — managers should promote ethical approaches
  6. Profession — advance the integrity of the profession
  7. Colleagues — treat colleagues fairly and support them
  8. 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:

  1. Acknowledge the quality of their work
  2. Explain clearly why standards exist (team coordination, maintenance, audits)
  3. Work to understand if standards are outdated and need revision
  4. Enforce standards consistently — no exceptions, regardless of individual skill
  5. If non-compliance continues, escalate through HR process

“Standards exist for the team, not the individual. One person’s exception becomes everyone’s problem.”

This post is licensed under CC BY 4.0 by the author.