Thoughts on Ethics in Software Development

Posted Monday, January 5, 2026 in Software Development

The IEEE Code of Ethics

I’ve always really liked the structure and focus of the IEEE code of ethics for software engineering. My experience showed that there’s a set of interests, sometimes in competition, that have their own unique impact on ethics that the engineer must consider. In the IEEE code of ethics these interests are defined by the eight principles and particular to my post here are 1. the public interest, 2. the client and employer, and 3. the product. When I say, “competing interests”, think of how the public interest (safety, privacy, the greater good) may compete with a client or employer’s interests (profit, market advantage, intellectual property). These interests of course need not be in opposition, as Drucker said, “healthy businesses require a healthy, or at least functioning, society.”

The Boeing Example

In 2019, two crashes of the Boeing 737 Max aircraft brought into question both the safety of Boeing aircraft and the design process at Boeing in creating safe aircraft. Where aircraft safety measures are famous for multiple redundant backups of critical components, Boeing broke this tradition with it’s use of the MCAS software solution that relied on a single angle-of-attack sensor and provided poor training of the updated procedures around the updated behavior of the MCAS under failure.

In our view of balancing public interest, client, employer, and product we can categorize this as the following:

  • Public interest: safe, reliable, and value (cost vs capability) of air travel
  • Client: airlines with interests in cost of aircraft, cost of labor, and marketing of services
  • Employer: Boeing with interests in manufacturing costs, certification costs, and branding
  • Product: quality of the aircraft, complexity of the design, performance of the aircraft

In this simplified view we can see a few competing interests and it’s important to understand the power balance of each party to affect the other. The public interest for example, in a properly competitive market, may be in a positioned to easily give their business to the airline that provides the highest value. However, in a less healthy market, an airline may have an outsized power to push self-interests over those of the public. Similarly, a client that can make or break a seller with a single purchase may have an outsized influence on the internal quality of an aircraft’s manufacturing process.

In my view, any outsized imbalance of power between these parties, particularly those over the public interest, is ethically wrong.

In some views, and even as the IEEE code of ethics espouses, it is the software engineer’s responsibility to balance these interests and prevent such problems. Well yes, but also, no. The software engineer certainly has a responsibility to best understand the impact of their work, the criticality of what making a mistake or design choice represents, and having the courage to stand against an ethically wrong choice. However, the software engineer themselves have their own power imbalances to compete with. One theory is that the problem of many hands means that it is exceptionally difficult to have ethical ownership over one’s work in a large complex organization. However, I’d say it’s much more critical that an employee has an appropriate level of power compared to their employer. Can the employee say no without threat to their livelihood or even their ability to maintain basic human rights to food and shelter? Is the labor market sufficiently competitive that an employee can make employment choices based on ethics? Simply put, an unhealthy market is ethically wrong.