Low code/no code platforms enable citizen developers to create apps and workflows without formal coding training. Citizen developers are incredibly useful, helping companies save time and money by keeping development in-house. However, because citizen developers are not typically software engineers, they may be unfamiliar with the importance of software ethics.
What are Software Engineering Ethics?
Software ethics, or software engineering ethics, are principles governing how a software engineer should act from a moral standpoint. Software ethics is not overly concerned with the functionality, originality, or profitability of software, but with its potential to affect people in positive or negative ways.
There are many aspects to consider when it comes to software ethics. Some ethical questions are: Could the software cause injury — physical or otherwise — to the general public? Could it cause professional harm to the end user when bug fixes and updates are made? Could any conflict of interest arise from the development of the software? A software engineering code of ethics implores developers to ask themselves these questions and prioritize their resolution over considerations like efficiency and profit.
Several organizations have proposed formal codes of software ethics. However, the current standard is the one proposed by the IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices, comprising 8 principles of software engineering ethics:
- PUBLIC – Software engineers shall act consistently with the public interest.
- CLIENT AND EMPLOYER – Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
- PRODUCT – Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
- JUDGMENT – Software engineers shall maintain integrity and independence in their professional judgment.
- MANAGEMENT – Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
- PROFESSION – Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
- COLLEAGUES – Software engineers shall be fair to and supportive of their colleagues.
- SELF – Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
These ethical principles may be taught by universities, while software companies may also provide software ethics training courses for new employees.
On the whole, a system of software ethics is about instilling a sense of responsibility in software engineers. However, there are also legal elements to it, as negligent development — of the kind that, for example, leads to loss of sensitive data or critical malfunction of machinery — can sometimes be grounds for criminal prosecution.
Importance of Ethics in Software Engineering
We can consider software ethics to be a descendant of engineering ethics. Engineering societies have subscribed to formal codes of ethics since the early 20th century, as it is crucial that engineers have a firm grasp of their professional duties. A civil engineer failing to act responsibly could, for example, lead to a disaster such as a building collapse.
The importance of ethics in software engineering is less immediately obvious, but unethical software development can also have disastrous consequences. One notable example is the case of the Therac-25, a Canadian-made radiation therapy machine that in the 1980s killed five patients due to two specific software faults and a lack of rigorous testing, both arising from company negligence.
Software ethics do not apply solely to situations in which there is a risk to human life, however. Consider, for example, how a bug-ridden online banking app — developed quickly to save money — could leave users vulnerable to cyber attacks. Or how planned obsolescence, designed to coerce customers into buying an upgraded software package, could affect low-earning customers who depend on the software for their livelihood.
Unlike in physical engineering, where inspection and quality control are an established part of the workflow, the fast-paced nature of software development means there is often minimal oversight or regulation of an individual developer’s decisions. This emphasizes the need for each developer to subscribe to a personal and professional code of ethics.
Engineering Ethics and Citizen Development
Citizen development is a form of software development, but the application of software ethics can be slightly different for citizen developers.
In many cases, citizen developers use low code/no code platforms to develop apps and workflows for internal company use, which limits the total number of people who could be impacted by their actions. In such cases, citizen-developed software will have little impact on the general public, making the IEEE’s first principle of software engineering ethics — acting consistently with the public interest — less relevant than it is for commercial software developers.
That being said, most of the IEEE’s eight principles still apply to citizen development, and some are especially pertinent. For instance, citizen developers must always consider whether their actions are in the interest of their client and/or employer (the second principle), as well as their colleagues (the seventh).
The application of these two principles is particularly important when citizen developers are acting independently. While autonomy is one of the key benefits of low code/no code, citizen developers must be careful not to fall into the trap of “shadow IT ”: acting without the knowledge or approval of the company’s IT department. Because while citizen developers are technically able to develop solutions independently, IT professionals are best placed to assess any security-related or legal concerns about these solutions, preventing any potential harm to the company or its workforce.
A Moral Code for No Code
Citizen developers may feel that the simplified nature of low code/no code platforms reduces the ethical burden on the developer, as developed apps and workflows must adhere to a certain structure with clearly defined rules and parameters. However, this is somewhat misleading.
While a low code/no code platform like TrackVia will not enable a citizen developer to create obviously nefarious applications (e.g. malware), it certainly gives developers enough scope to develop apps that can have significant consequences for its users. Citizen developers should therefore familiarize themselves with software ethics as if they were professional software engineers. Doing so will benefit their product, their company, and themselves.