By October 9, 2019

Why We Need to Address Ethical Issues In Software Engineering

When we think about software development, ethics isn’t always the first thing to pop into our minds. After all, when creating software, you as a developer are supposed to address technical questions such as functionality and project specifications. But what we usually fail to recognize is that software and technology affect people’s lives on a personal level and have the power to make them either better or worse.

Everything people do today involves some kind of software. Driving a car, buying food, communicating, commuting, watching TV, shopping online—the list goes on and on. These technologies power our lives and are inseparable from human life.

Technology has even changed how businesses operate. In order to be the first to introduce products to the market, the best in development, most innovative in products and services, many enterprises overlook the side effects of their ventures and the issues they may cause to people’s lives.

Let’s face it—there are companies that don’t play by the rules. I’m not pointing fingers here, but it’s a fact that companies hungry for profit do overlook common ethical business standards. Software developers get involved in unethical practices by working for cheating companies that put their own profit above people’s lives and turn away from the consequences. 

With technology being a huge part of our daily lives, you can’t separate it from the ethics that affect daily life. They shape how we consume and how we create. 

That being said, it is the responsibility of software engineers to provide users with a secure and transparent program that they can trust. After all, with great power comes great responsibility.

Ethical Challenges Faced by Software Developers

At first sight, it is easy to think that the technical part of development is not directly related to people’s lives. After all, it is the business practices that really affect users. However, software developers are the ones who know what their products can do.

As consumers, we trust software providers to help us to optimize and improve our day-to-day lives in exchange for information like our name and email address. As software developers, we trust software providers to make good use of our creations. This trust is supported by vague regulations that still have a lot of loopholes if you know where to look. No one is completely protected from the unfair practices of software providers. 

Here are some of the ethical problems that software developers should be aware of when creating their products and choosing which companies to work for.

Protection of Customer Data

Numerous websites’ services exist in large part to gather your information

Take Google for instance. Here is some of the information it has about you: where you've been, your search history, applications you’ve used and with whom you use them, your YouTube history, etc. Google even allows you to download all the data they have about you—in all honesty, it would fill a huge number of Word documents!

What happens if the government or another legal entity demands information on clients from the information you’ve gathered with software you built? Where does your moral commitment lie? Have you conveyed your strategies clearly to your clients, and how have you secured their information?

Personal data security is one of the biggest concerns in the digital world because of the sensitive information that your clients trust you with. Personal information is a point of interest for many organizations, from national security to cybercriminals. The companies that don’t have policies in place for how to act in these kinds of situations place their clients at risk by not informing them of how their data will be treated. 

Intellectual Property

In the fast-growing and profoundly aggressive innovation industry, software engineers and proprietors should practice caution to guarantee that their creations are properly protected inside the system of innovation rights. 

Software development deals with interrelated issues that consist of a blend of copyright, patent, trademark, and competitive advantages law. To make sure that the customers are protected from unethical business practices, people in the software development business should be familiar with all these factors and how to implement them effectively. Unethical practices caused by the lack of knowledge do not excuse software developers from taking the responsibility for how their actions affect people’s quality of life. 

Ownership of Copyright

In theory, you as a software developer own the copyright to your software creation, and no one can copy, distribute, display, or make changes to it without your permission. When it is created by a third-party engineer or a development agency, copyright agreement should always be involved in the collaboration process to define and protect the rights of the code creator and the client who originally had the idea. Registering copyright prevents your business from getting into trouble over ownership rights. 

Typically, after the product has been commercially published, the source code is kept confidential to protect it from illegal copying and distribution. Using copyright to protect your source code is beneficial for the company because it provides a convenient way of securing intellectual property rights.

License Agreement

If a client requires a software engineer to convey source code, the parties should clarify whether the client needs to claim the source code or simply modify or update the product later. 

If the parties agree to a product permits agreement where the source code is required to be revealed to redo or refresh the product, the engineer may incorporate an arrangement under which the client is committed to keeping the source code confidential.

These aren’t the only ethical issues to watch out for. From hackers and cybercriminals to companies overlooking errors, these all fall under concerns about the state of ethics in the software engineering world. 

These issues may seem distant and unrealistic until you actually face them. The truth is that no one is 100% protected, which is exactly why ensuring that companies follow software development codes of ethics and avoid shady practices should concern everyone from consumers to developers themselves. 

Ethical Solutions

The tricky part about ethical questions is that they address a person’s own moral code that has been formed through years of education, family, and societal impact. Add to it that life is not always black and white, and you have yourself a nice brain-twisting puzzle. 

Even though facing these ethical dilemmas as software developers seems tricky, there are solutions and steps we can take to do better.

Ethics Education

The most important step to take is to educate yourself and other software engineers about the ethics of your work. Development bootcamps often skip this part in favor of practical knowledge that can be used directly at work. 

Technology is not neutral. Educating people about ethical issues and the consequences of their actions has become crucial at this point. The mindset of “Do it now, ask for forgiveness later” cannot be ruling business practices. 

How the company operates is decided by management, not software engineers, and you can be forced to follow the chosen course of action even if you don’t agree with it. Educating software engineers about the universal standards of business and software development ethics can improve their understanding of their responsibility to society and how to act on it. It can also help you decide which companies to work for or how to behave ethically in your own business.

Following the Code of Ethics

There is a really useful set of rules called the Software Engineering Code of Ethics that indicates the moral and professional commitments of software engineers. This code was created by a global team made up of mechanical, government, military, and instructive experts. 

These are the eight principles created by the ACM Committee on Professional Ethics:

1. Public: Software engineers shall act consistently with the public interest.

2. 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.

3. Product: Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. Judgment: Software engineers shall maintain integrity and independence in their professional judgment.

5. Management: Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. Profession: Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. Colleagues: Software engineers shall be fair to and supportive of their colleagues.

8. 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.

It Starts With You

Sometimes, software developers may not realize how much impact they have on people’s lives through the products that they create. Knowing that people’s quality of life could depend on how the software in mobile and web applications that they use in daily life was created is a good reminder of the role of software developers in global processes. 

Business ethics are never just black or white, but every developer has their own responsibility to see how their decision to engage in a certain practice during a development process can affect others in the future. Even though you might not be among the decision-making group in the company, it’s everyone's individual choices that can make a change in how companies treat their consumers. Thinking that unethical practices don’t concern you is simply wrong—if you know about unfair practices in a company and don’t take any action, you become an accomplice to it. 

About the author

    Daniel Alcanja

    Daniel Alcanja is CTO at Trio , Software Engineering House. With more than 17 years of experience in mobile and web development, he is driven by the creation of impactful applications and bringing innovative ideas to life.