Please see the disclaimer.

Introduction

“Software is eating the world."

“We [programmers] rule the world."

And we have run the world into the ground. We are in the process of destroying it.

Examples

How have we done this? Here are a few examples.

Volkswagen

Most people who pay attention are aware of the Volkswagen emissions scandal.

“Uncle” Bob Martin said,

…The CEO of Volkswagen North America…blamed a couple of software developers for cheating the EPA….But it was software developers that wrote that code. It was us, who wrote that code to cheat. Some programmers wrote cheating code.

Do you think they knew? “If in test mode…” I think they probaly knew!

“Uncle” Bob Martin, “The Future of Programming”

The programmers wrote the code anyway.

Farmers and Tractors

A few days ago, farms.com published an article arguing that farmers deserve the right to repair their tractors.

The gist: tractor companies are withholding software tools from farmers in order to force them to take their tractors to licensed dealerships.

Some programmer(s) somewhere wrote those software tools. They did it, probably knowing that farmers would never get access to those tools and that their employer would use that assymetry to dishonestly extract payments from farmers by removing their right to repair. (Here is a rebuttal from John Deere.)

The programmers wrote the code anyway.

Apple

Like tractor manufacturers, Apple likes to think that they still own the device they sold to you.

They made it so that you cannot install any apps besides from their officially-curated, and broken, App Store.

Oh, and they refuse you the right to repair too.

Apple’s programmers probably know that Apple does this to customers.

The programmers wrote the code anyway.

Google

Google sells data from users. Google makes users jump through hoops to get their own data.

Did the programmers know what they were writing? I think they know.

The programmers wrote the code anyway.

Facebook

Besides selling data like Google, Facebook manipulated users (and probably still does).

Did you think the programmers knew that what they were doing would manipulate users? I think they knew.

The programmers wrote the code anyway.

We Are the Problem

We rule the world.

The world doesn’t know this yet. We don’t quite know it yet.

Other people believe that they rule the world, but they write the rules down, and they hand them to us. And then we write the rules that go into the machines that execute everything that happens on this planet nowadays.

No law can be enacted without software; no law can be enforced without software. No government can act without software.

We rule the world.

“Uncle” Bob Martin, “The Future of Programming”

And because we rule the world, we are the problem.

You see, if programmers had refused to write any of the code above, then at least that part of the problem would not exist.

We did this. We did this to ourselves and our loved ones.

We wrote the “algorithms” that manipulate people into believing lies. We wrote the recommendation engines that radicalize. We wrote the software that hurt people. We wrote the software that destroyed livelihoods.

We wrote the software.

Drew DeVault wrote that “we are complicit in our employer’s deeds." He is right.

Including Me

That includes me.

My previous job was at a company that mostly provides services for governments and universities.

I was not personally comfortable with a few of our clients, and I should have quit for that reason, or at least, requested that I never handle work for those clients.

I did not, and to this day, it is one of my biggest regrets.

I think I handled one issue for one of those clients.

On top of that, my employer is subject to perverse incentives, and I don’t think the company was immune to those perverse incentives.

I was complicit in that.

We Are the Solution

But on the other hand, we can fix this.

All we have to do is refuse to write such software.

What software am I talking about?

Any software that does any of these things:

The above list will grow over time as I think of more items.

We Must Be Professional

If the above sounds a lot like what professionals like doctors and engineers, good. It’s supposed to.

Because software is eating the world, the software we write matters. It’s infrastructure.

Thus, “Uncle” Bob says,

When [a tragedy occurs because of software], politicians of the world will rise up, as they should, with righteous indignation, which they should have, and they will point their fingers right at us, and they will ask us the question: “How could you have let this happen?”…

And we better have an answer for them is “Well, my boss made me do that,” that is not going to fly. That is not going to be a good enough answer. “Oh, we had to make a deadline,” sorry, no, that’s not going to work.

And if that is our answer, then the politicians of the world will do the only they can do, and they will legislate. They will pass sweeping regulations.

“Uncle” Bob Martin, “The Future of Programming”

I, myself, would welcome some regulation, but I believe that “Uncle” Bob is right when he says that we should regulate ourselves. (He says so a bit further on.)

The reason: not only do we write bad software, but even when we write good software, it’s buggy and not fit for purpose.

That’s why you have things like the Therac 25, the Boeing 737 MAX, software that keeps people in jail too long, and many more.

Our software is infrastructure, and we should start treating as such. We need, as “Uncle” Bob says, to have more discipline.

Let me answer a criticism of “Uncle” Bob here.

One programmer says,

Read “They Write the Right Stuff” and tell me if you think Uncle Bob’s on the right track (note this article was written 21 years ago and the state-of-the-art has advanced significantly). Does it sound like the NASA programmers just need more discipline and professionalism coupled with never making excuses for sloppy work?

Blaine Osepchuk

I think Blaine got it exactly backwards. “They Write the Right Stuff” is about how NASA did have the discipline. What “Uncle” Bob is saying is that we need to have the same amount of discipline as they did.

We need to regulate ourselves. We need to establish practices that, when not followed, have actual consequences for the programmers who fail to follow them, just like real engineers.

Cost

“But software will cost so much more!”

So? This is infrastructure we are talking about. I would be nervous if it didn’t cost a lot. In fact, that’s why I am nervous!

Also, if software costs so much more, then there will be less of it. That’s a good thing!

Conclusion

As you have seen, we are the problem because we are the cause of many problems.

However, we can be the solution by refusing to be the problem anymore.

So let’s do that. In fact, we have to, or we will find ourselves in a world we don’t want.