The US state of Arizona added a new rule for early release from prison, but the computer system that calculates release dates could not incorporate it and was not updated. So hundreds of people have just been... left in prison, after their release dates. Bad software ruins lives, even without AI.
Cloud Native software development has some peculiarities that make it particularly interesting from an ethical standpoint—and particularly ripe for an exploration in this collection of WTF Is Cloud Native?
Firstly, approaches such as Continuous Delivery, a cornerstone of a Cloud Native approach, give engineers the ability to deploy code to end users directly, often without oversight, an ability that can easily be abused.
Secondly, software often works at a huge, even planet-wide scale. This scale and reach allows developers to do real good, but also tremendous harm, particularly when combined with the preceding point.
Thirdly, that global scale is a fairly new development. The speed at which the tech industry has exploded—and its tools have infiltrated our daily lives—is breathtaking. We are all still struggling to get our brains around it. As the industry analyst Benedict Evans has written, “When Netscape kicked off the consumer internet in 1994, there were only 100m or so PCs on earth, and most of them were in offices. Today 4bn people have a smartphone—three quarters of all the adults on earth. In most developed countries, 90% of the adult population is online."
Finally, lack of geographic constraints means that engineers may be unfamiliar with the cultures of some or even most of their users, leading to the potential for privacy violations, cultural offences, and other types of harm.
But whilst professional engineering ethics first began being developed more than a century ago, the average professional software developer remains confused as to why and how ethical matters apply to them. In the 2018 Stack Overflow reader survey, for example, responders were not sure how they would report ethical problems, and had differing ideas about who ultimately is responsible for unethical code.
Part of the reason why software engineers working today struggle when confronted with ethical dilemmas on the job is because many have never been trained to recognise or navigate ethical issues.
For the most part, it is only in recent years that some computer-science programs in the United States, such as those as Harvard, MIT, and Stanford—have begun adding courses in ethics for their undergraduates, covering topics like data and privacy, and how algorithms can perpetuate gender or racial bias.
There are currently more than 280 courses offered at American higher-education institutions that tackle technology and its related ethical issues. But these courses are generally still not required in order for computer-science students to claim their bachelor’s degrees.
In the UK and Europe, computer-science students are even less likely to encounter ethics training as undergraduates. In 2020, Container Solutions sponsored an ethics course, led by Anne Currie, our company’s tech ethicist, for the computer-science program at the University of Hertfordshire. Other major UK universities, including both Oxford and Cambridge have some ethics modules for undergraduates, but many others, including courses offered by other major universities, do not.
It’s great that universities are beginning to produce computer-science graduates with—if they have taken the right electives—some grounding in the ethical questions they will face in their work. But what about older developers, engineers, and managers, who did not have experience wrestling with those topics in school? Those more senior professionals, many of whom now wield decision-making power within their organisations, may find themselves handicapped as they weigh concerns about privacy and data use, environmental impact, and how best to avoid bias in the algorithms their teams create for AI applications.
They may also struggle with job-related ethical challenges that have nothing to do with the technology itself: How do you begin a difficult conversation with a colleague? What’s the best way—and when’s the best time—to ask another engineer for help? How do you build a diverse team that’s truly inclusive—and retains its members over time?
In this WTF Is Cloud Native? collection we will explore emerging ethical issues related to software engineering, as well as how they can potentially be addressed. Some key pieces this month:
Dive in, check it out, and give us feedback in the comments below. What ethical issues do you wrestle with on the job?