Reflect on Software Engineering

19 Dec 2024

The two software engineering topics I will be reflecting upon are ethics in software engineering and coding standards. I have chosen these two topics because they become much more interesting when you take them out of the context of web development and move into applications designed for a specific set of users or designed for developers. The ethics of software engineering are exactly what you would expect, it is a set of rules and guidelines that ensure that the products produced by software developers fit the ethical guidelines dictated by the community as a whole. Software engineering ethics are not necessarily laws and have no regulatory power however many companies use them as part of their internal policies. When looked at through web development which is typical for many software engineering circumstances, the ethics of software engineering are quite clear and applicable, they contain things like ensuring your product acts in the public’s best interest or maintaining integrity and professionalism. However when we bring this into the world of software engineering for internal practices and specified tools, if I am making an application that is not accessible to the public, to what extent do I need to ensure my app acts in the public’s best interest. For example defense contracting employees a large number of software engineers and programmers. The products created by these companies are often highly controversial when they are being produced due to their nature often being violent and destructive. So then to what extent is a software engineer liable for the code that they wrote or designed when it causes the loss of human life? Does that act in the public’s best interest? The two main arguments that arise are first that the software engineer should be liable since the thing they created was or could be the cause of violence and destruction. This argument is viable to a certain extent however the counter argument is often seen to be stronger saying that while the software engineer(s) did write the code and create this application, it was the users (often a government’s military) who chose to use the tools in this way with full knowledge of how they worked. This makes sense in this context due to the severe nature of the situation, however if we were to apply the same logic to for example a social media application the view often looks very different. There have been dozens of lawsuits and court cases surrounding the role in which social media companies play in mitigating hate speech or threats of violence. It often leads to the company ending up under scrutiny when a case emerges.

So we have these two generally favored views on the same topic and yet they differ. This is why I find the ethics of software engineering interesting in the general context. It brings out the flaw with making ethical rules so general they make sense in many contexts, but under scrutiny they start to unravel. The rules state to act in the public’s best interest. Anyone who has looked into law or listened to the news knows that public interest is an incredibly difficult thing to both measure and comply with. That’s the part of the reason why many countries have political parties since no one can unanimously agree what is in the best interest of the public. So then how is a lowly software engineer supposed to be able to always act for the public? So you do what you do when doing a proof, you start adding conditions and assumptions to your question to make it more manageable. Perhaps when someone says the public they only mean one country? So let’s try to act in America’s best interest? That does make it easier in theory, there are still controversial topics within the American public’s view on software and technology, but there do exist statistically relevant majorities on most major issues. However then you start to realize that we are in an incredibly interconnected world and as much as designing for just Americans would be lovely it is in no way feasible in a tech industry that is as competitive as this. So you are back to square one, you are left to try and discern how to interpret these “rules” that are not always applicable. The good news is that if you ever are unsure about one of these rules there is always another rule you can default to, in this case you can say that you are perhaps not acting in the public’s best interest since you don’t know how to act in the public’s best interest, it is messy and difficult. However you are acting in your companies and your clients best interest so there is somewhere else to point the blame, and as long as you aren’t breaking laws or intentionally harming anyone you can at least use that as a fallback.