Ethical Considerations in Software Development
"Do not be too moral. You may cheat yourself out of much life. Aim above morality. Be not simply good; be good for something." (Henry David Thoreau)
My great-great-grandfather studied carpentry, but at the beginning of his career he became a volunteer and later a professional firefighter. This decision of him led to the fact that you can still turn up half a century of old newspaper articles about huge fires and plenty of lives saved, and most of that articles mention the name of my great-great-grandfather.
Is it possible for us as software developers to take on a job that will matter in our grandchildren’s time, and can they read about it proudly? Is it possible to take ethical considerations into account when choosing a job?
OK, at the beginning of their career, software developers take on a job that allows them to develop professionally as quickly as possible, at a company where they can master cutting-edge technologies and gain knowledge that can be used in the long run.
But after a while you may reach a point where you can choose between jobs and have the option to consider other aspects as well. Income, trendy disciplines, and for some of us, ethical considerations.
(At this point, it is important to clarify what I mean by ethical considerations. There are many definitions of what is ethical, and everyone interprets it differently. I will now content with the simple utilitarian definition, saying that the right thing to do is always to approach a decision with a view to maximizing people’s overall utility, and promoting the greatest good of the greatest number. But I will extend the circle of people to future generations as well.)
Of course, the activities of companies are very wide-ranging in terms of ethics. There are companies, for example, that produce or operate adult content or gambling frameworks. These are certainly lucrative businesses, but perhaps we can agree that they are not at a really high level ethically.
Then there are the creators of financial and business software whose activities can have a positive or negative impact, depending on what they are used for. In fact, medical and pharmaceutical activities can also be included here, because although their product improves people's quality of life, they often get rich from the money of those who most in need.
Finally, there are many areas of activity that clearly have a positive impact. Instead of listing them, I would highlight a key area. I believe that almost the best option is the optimization of various complex processes.
We live in an age of overexploitation of resources, so any savings are useful and desirable. On the other hand, there are a lot of savings opportunities in low-efficiency manufacturing, processing, logistic and bureaucratic processes. Public transport, municipal and industrial solid waste transport and recycling, energy networks, drinking water supply, waste water treatment etc.
However, these processes are so complex that human intelligence is unable to see through and understand how they work and optimize them. Therefore, taking advantage of the opportunity offered by computational intelligence, one of the most important things to do is to use it to optimize as many processes as possible, thus having the greatest positive impact globally in the shortest possible time. We are simply unable to develop enough to serve this demand. I think as software developers, we have a chance to take on a job that can significantly improve this situation.
The result will maybe matter even in the time of our great-great-grandchildren.
This post was written by Zoltán Bácskai, one of our talented senior backend developers.