Cloud Native Blog - Container Solutions

WTF Is Ethical Software Development?

Written by Charles Humble and Heather Joslyn | Apr 30, 2021 1:31:08 PM

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.  

Getting schooled

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?

Highlights

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:

  • WTF Are Cloud Ethics?, our latest ebook, finds Anne Currie, Container Solutions’s tech ethicist mapping the landscape of ethical hotspots that developers and engineers (and their managers) face. She also lays out some advice for speaking up effectively when you see something wrong. 
  • During the global pandemic, the trade-offs of sacrificing a bit of privacy in exchange for security have come into stark relief. In a new blog post, Anne tackles the question, “Is privacy unethical?” 
  • Can you have a career in tech and not wreck the planet? Holly Cummins, of IBM Garage, thinks it can be done, and tells us how.
  • What can technology workers learn from an episode last year involving an untested algorithm that damaged British students’ academic prospects? Check out this blog post by Charles Humble, WTF’s managing editor. 
  • Carla Gaggini, Container Solutions’s head of events, tells how to craft a code of conduct for your tech conference/meetup that makes everyone feel welcome and included.

Dive in, check it out, and give us feedback in the comments below. What ethical issues do you wrestle with on the job?