Ethics Are Missing From Software Development

There is something conspicuously missing from software development education. As developers, we learn all about how to write, organize, design, share, use, and test software, but the discussion of how that software will actually be used and what it's impact on the world will be is usually an afterthought.

What discussions do happen tend to be around licensing and intellectual property, with the main focus on not getting sued. That stuff matters, but it doesn't come close to addressing and grappling with the total impact of the tech industry.

The effects of software on the world are enormous. It affects the way we do everything and shows up in every corner of our lives:

Preventing our software from making the world worse should be at the top of our minds as technologists, but it's almost always on the backburner. There's a huge disconnect between writing some characters on a computer and seeing effects in the real world.

I'm worried that's a really big problem, though. I really don't think it's an exaggeration to say that some of the most dire problems we need to collectively deal with in my lifetime are caused or exacerbated by software.

Things like the environmental crisis. Bitcoin bullshit already consumes more resources than many countries. Or the mental health crisis. There's good evidence that suggests the internet makes us meaner, angrier, and sadder than ever. Or the erosion of democracy worldwide. There's no doubt that social media is responsible for flooding our information ecosystem with disinformation, which spreads like cancer through our networks and leads us to making irrational decisions that can have deleterious long term effects.

I'm not advocating for every software engineer to become an ethicist, but we can do a lot better at being aware of the impact our work has on the world. It's definitely not nothing, and sometimes it's everything.