Why are the ethics in the software industry so bad? Why do people like Evan Spiegel get made– and, make no mistake, most of them are produced by their backers, merit having nothing to do with it– into billionaires? And why are the products made by the software industry so often of low quality? Why do we, despite practicing a craft that takes 10-20 years to get any good at, tolerate a culture of age discrimination? These are often treated as separate questions because, as engineers and problem solvers, that’s something we like to do: take problems apart and solve them separately. In mathematics, that’s a powerful approach, because a proof is, in practice, a derivation of an often not-obvious result through a chain of simple and evidently true inferences. In human problems, this approach often falls short, because the issues are so interconnected that one problem, typically, can’t be solved in isolation from all the others.
For example, I could write 100,000 words about why open-plan offices, to take one problem in our industry, are bad. They damage productivity, they’re bad for worker health, they encourage rotten cultures, they increase the incidence of sexual harassment, and they can trigger or worsen anxiety disorders, even in top performers with “nothing to hide”. Worse yet, I can illustrate why they are unlikely to go away any time soon. It’s not about these offices being cheaper (they are, but not by enough to justify a productivity loss that is orders of magnitude larger than what is saved) but about maintaining a certain image, even at the expense of health and productivity. In particular, it’s more important that the VC-funded startups look productive to their investors than for them to actually be productive, given the high likelihood that any product that is built will be scrapped when the company is acquired. (The non-VC-funded companies are following suit on this horrible trend, but the cultural pace here is set by that cesspool called “Silicon Valley”.) An open-plan programmer isn’t hired for his coding ability, which is rendered irrelevant by the awful environment, but to be a stylish piece of office furniture. Is it any surprise, then, that we’d also have an ageism problem and a culture of sloppy craftsmanship? Ultimately, though, people know that open-plan offices are bad. The 100,000 words I could spill on the topic wouldn’t make a difference. We don’t need to persuade people or speak “truth to power”, because those in power already know what the truth is. We’ll probably have to fight them.
Google’s motto, “Don’t Be Evil”, comes to mind. Of course, it’s hilarious that this would be a corporate motto of a company that uses stack-ranking to disguise as “performance”-based firings what other companies would own up to as business-based layoffs, and that the origin of this slogan would be Paul Buchheit himself. Never mind that, though, because I think that it’s actually a great slogan for a company like Google, and here’s why. It’s probably the most ineffective three words in the English language. When you’re staring down evil, you can’t persuade it not to be what it is. Telling evil not to be evil is like telling a tire fire to stop polluting or a murderer that what he’s about to do is a bad thing. It won’t work. Likewise, fifty more essays on the harm to health and product inflicted by open-plan offices won’t make a difference in a world where founders are convinced that their programmers are more useful as office ornaments than for their problem-solving and coding ability.
So why is the VC-funded startup ecosystem so ugly? Is it just that there’s a lot of money in it? This I doubt, because there’s a lot more money in finance, where the ethics are (quite honestly) better. I think the answer is that, at the “big picture” level, it’s impossible to separate what we do from how we do it. I used to think otherwise. I once believed that the macroscopic social value of the work and the micro-level decency around how people do the work were orthogonal. To the credit of that view, there are many organizations with obvious positive macroscopic value but awful behavior internally. (Don’t get me started on the non-profit sector and, especially, the way non-profit workers are treated by their managers.) The False Poverty Effect (of powerful people behaving unethically because their low incomes, relative to their peer group, leave them feeling martyred and entitled) is as pronounced in non-profits as in software startups. All of this said, I’m increasingly concluding that positive macroscopics are a necessary (if not sufficient) condition for a culture of decency. In other words, we can’t fully understand and oppose organizational rot without concern to the specific matter of what that organization does. Then, let’s talk about macroscopics. What exactly do we, in the software industry, do? Most of us, to be blunt, haven’t a clue what our effect on society as a whole really is.
What can we do? Quite honestly, the answer is “anything”, because it’s not software that distinguishes us but abstract problem-solving ability. (It’s important to keep this in mind, and not get into tribal scuffles with hardware engineers, academics, research scientists, and other high-power allies that we’ll need in order to overthrow our enemies and establish a true intellectual meritocracy.) Software is one mechanism that we use often because, right now, it works very well, but software itself isn’t what’s interesting to me. Solving problems and implementing new ideas is what’s interesting. At any rate, I’ve never worked in a company where I couldn’t do the executives’ jobs, often better than the people holding those positions, but it’s rare that I’ve met a business executive who could do my job. That’s the sociological reason why software engineers “have to” be kept down with processes like Scrum, open-plan offices, and an age discrimination culture that shunts them away once they’re halfway good at what they’re doing. The smartest subsector (the “cognitive 1 percent”) of the subordinate caste, whether we’re talking about literate Greek slaves in ancient Rome or software programmers today, has always been a problem for the patricians and owners. Okay, so let’s narrow the question. What can we do with software? Even to that, the answer is a pretty large set of things. Now, what are we doing with software? Curing cancer? Making cars safer or houses more energy-efficient? Nope. Our job, almost invariably, is to enable businessmen to unemploy people. That’s what we do, and that’s why these VCs and founders pay us.
I’m not going to argue that cost cutting is inherently “evil”, because it’s not. Most of the jobs that have disappeared in the past 40 years are unpleasant ones that few people would really want. The problem isn’t that those jobs are gone, but that the people displaced haven’t been given the opportunity or the resources necessary to train up into better roles. The problem with cost cutting is that the people who have both the intelligence to do it right (and genuinely improve efficiency, rather than just externalizing costs to someone else) and the moral decency to make sure that the returns are distributed equitably, including to the people who are displaced. For every person who has the skill to cut costs in a way that has everyone winning, there seem to be 199 who are just moving costs around and hurting the people who don’t have the power to fight back, and it’s those 199 other ones to whom most programmers answer.
Cost cutting, in my view, is only valuable in the context of it being a necessary prerequisite for making newer and better things. Doing the same thing more cheaply isn’t intrinsically useful, unless the resources freed up are spent in a beneficial way. Moreover, often the cutting of economic costs is a minor side benefit achieved in the course of what actually matters: cutting complexity. Complexity takes a number of forms, most undocumented: power relationships, processes and ceremonies, expectations and recurring commitments. Most of these are difficult to measure in the short term. Unfortunately, the inept cost cutters out there tend to be cost externalizers who increase the total complexity of the system they inhabit. For example, a technology startup might decide to hide a layoff by instead imposing stack-ranking and removing “low performers”. It sounds like a great idea to everyone, insofar as everyone has their own opinions of who those low performers are. However, the stack ranking and the machinery around it– the long “calibration” sessions in which managers horse-trade and play elaborate games against each other with their reports’ careers– creates incentives for political behavior and makes the company more complex (and in a uniformly and objectively undesirable way) while not cutting costs in any meaningful way. In the long term, complexity increases while resources decline and the result is a brittle system, prone to catastrophic failure.
So what is evil, in the context of our moral responsibility as technologists? And what is good? There’s a very simple and, in my view, correct answer. Technology has a simple job: to eliminate scarcity. That’s our moral calling. It’s not just to “write good code” or make processes more efficient. It’s to solve problems and chip away, almost always incrementally, at the face-eating demons of economic scarcity and class subordination. Otherwise, all this work that we do in order to understand computers and how to solve difficult technical problems would just be pointless mental masturbation.
Of course, technology can be used toward opposite effects: to create new scarcities and enforce class subordination in ways that weren’t possible, decades ago. When I Google myself, it’s not hard to come upon the various events that have occurred in my life specifically because certain entrenched interests now see me as a threat, and have attempted to destroy my reputation. The social and technical changes brought about by the Internet are mostly good, for sure, but the bad guys know how to use these tools as well.
We need to disavow ourselves of the notion that we can code or “merit” our way out of this. If we continue to allow our efforts to be directed and deployed by a ruling class with bad intentions, we’ll continue to suffer the consequences on the micro level as well. They’re not going to treat us better than they treat the rest of society; it just doesn’t work that way. Consequently, if we want to get ourselves rid of the open-plan offices and the “Agile Scrotum” micromanagement, we can’t just focus on the micro-scale battles about programming languages and source code style. It’s not that those issues aren’t important to how we do our work; they are. That said, the one thing that becomes increasingly clear as I get older is how interconnected everything is. We can’t expect “a good culture” in an industry so willing to deploy our talents toward the creation of artificial scarcities. If we work for evil, our work will be evil and we will experience evil for every day that we do so.