Morals of Software Development

Morals of Software Development

Previously in our articles, we have discussed that software development is not all about pure coding but developing and creating a product, a value. Creating value, in general, requires full accountability in whatever sphere this value is designed for. Software development is no exception. Whether for public or individual use, software products have taken over our lives, especially in the 21st century, they are rapidly becoming an inseparable part of our daily routine.

Undertaking the creation of a software system should be followed by an overall picture of the possible consequences. On the other hand, the code of ethics does not stop with the release of a trustworthy product, as software development is a big cycle of processes.

Assuredly, each profession or job will require specific conditions and ethics, but let’s quickly go over some points to see why this issue even rises in software development.

 

The Problem

A developer sitting by the computer screen and writing code doesn’t presume a real threat to anything. Why do we address them, or why do we need the norms mentioned above? How do we set them, or where do they come from? To start with the basics, think of an industry that does not provide digital services. Probably counted on the fingers of one hand? And while you may think the ethical challenges of software development end here with user data outflow, the variety of the latter may surprise you even further.

 

Solution?

In response to this, ACM, Association for Computing Machinery and IEEE, Institute for Electrical and Electronics Engineers, presented an official document, The Software Engineering Code of Ethics and Professional Practice, covering a variety of ethical norms applicable to software development processes. In this post, we will provide you with a brief understanding of each principle.


According to the document, professional ethics is divided into the following eight main principles comprising relevant terms for the interest of each party:

 

The Public Principle

The norms set in this principle refer to software development serving the public good, reducing or minimizing risks of causing harm to society, and ensuring the safety of the software for public use.

 

The Client and Employer Principle

 

As the title proposes, the principle focuses on the software engineer's relationship with the client/employer, highlighting the professional duties, professional compatibility, confidentiality, and sensitive data safety as the main factors.

 

The Product Principle

 

The Product Principle lies in developing a quality product meeting all professional standards and customer needs and corresponding to the fair market assessment on the timeline and budget estimation.

 

The Judgement Principle

 

The principle focuses on software engineers demonstrating integrity and objectivity regarding their work processes and being equally fair to the parties involved.

 

The Management Principle

The principle sets objectivity and justice as the main approaches for coordinating all the software processes. The latter include and are not limited to fair remuneration, task distribution, scheduling, professional development, and confidentiality.

 

The Profession Principle

 

The principle defines the ethical attitude toward the profession, which includes constant professional advancement, openness to sharing knowledge, and responsibility toward the profession per se and the corresponding duties.

 

The Colleagues Principle

Conforming to this principle, ethical accountability toward colleagues inside and out of the workplace stands as a core element. It highlights the essence of ownership rights, objectivity, professional guidance to colleagues, and openness to being mentored by seniors.

 

The Self Principle

 

This principle sets norms on how to act as a software engineer regardless of belonging to an organization, mainly proposing ongoing professional development as software engineers and adaptation to modern practices.

 

Final Thoughts

 

Following the Code, it has to be noted that there is always the case of unintentional harm or violation of the given principles. Considering these cases, bringing the damage to a minimum level will be the ethical solution for software engineers After all, setting the morals intended to serve the welfare of all the parties influenced and not pure discipline.

We also suggest you go over the principles and the sub-points one by one in the official website.

 

Copyright © 1999 by the Institute for Electrical and Electronics Engineers, Inc. and the Association for Computing Machinery, Inc