Of programmers and scrubs

I’m currently working through the book, Playing to Win, by David Sirlin. It’s excellent. I’ll probably buy a copy, and I’d recommend this book even to people who aren’t especially interested in competitive gaming, because it’s not really about the (tabletop and video) games themselves so much as the cultures that they create, and the lessons from those cultures are more generally applicable to human organizations.

One of the archetypes that Sirlin describes is the Scrub, which is a player who insists on rules that aren’t in the game, and views certain effective strategies as “cheap”. Scrubs aren’t always unskilled players, but they’re rarely the most effective ones, because they insist that only certain types of wins are acceptable. This prevents them from exploring all possible strategies, and it also leads them to become unduly emotional when they face opponents using strategies that they view as “cheap”.

Sirlin doesn’t advocate cheating or bad sportsmanship, but he argues that competitive games are best played to win, and not to other effects that, at high levels, will make one unable to compete. That is, your goal in a game of Magic: the Gathering isn’t to build up a 23/23 creature with enchantments or to avoid taking any damage or necessarily to launch a 30-point Fireball. It’s to bring your opponent to a losing condition (0 life or no cards to draw) while preventing her from doing the same to you. That’s it. You do not cheat, and you should not be a poor sport, but you play the rules as they are, not as they might be in some idealization of the game (that is, quite often, actually an inferior game).

I’ll confess it: I used to be a Magic scrub. When I was a teenager, I loved creatures and fast mana and beefy monsters (Force of Nature! Scaled Wurm! Shivan Dragon!), and this was in the 1990s, when creatures were so under-powered that top tournament decks used few or none. I did all sorts of flashy scrub stuff like use Channel to bring out a second-turn Scaled Wurm, which is terrible because you’re giving up 7 life for something that can be killed with two black mana. I did have a blue deck (blue, with its manipulative focus and being the most “meta” of the colors, was the most powerful color at the time, and probably is still) but I rarely played it. I was all about the green and red: 10-point fireballs, 8/8 tramplers, and so on. I viewed reactive strategies, such as counterspell decks, land destruction decks, and hand destruction decks, as “cheap” and borderline unethical. (Stop fucking with my cool shit! Build up your own cool shit!) I lost frequently to better deck-constructors using “boring” strategies and it always made me angry.

I was in the wrong, of course. Land destruction (i.e. resource denial, by which I mean rendering your opponent unable to cast spells by demolishing the most important resources) is a perfectly acceptable way to win the game. Think it’s broken? Then find a way to defend against it, or build your own deck and exploit it. There are some things not to like about Magic (well, only one big one: the tie between in-game capability and real-life finances) but the existence of reactive decks isn’t one of them.

What makes a scrub? In my view, scrubs often want to play multiplayer solitaire. They want to build beautiful edifices, and not have interference from the opponent, except perhaps at the grand end of the game. They want a game of skill (as they define it) rather than a messier game of strategic interactions. They aren’t much for the competition aspect of the game; they want to build a 13-foot-tower and have their opponents come up to 12 feet, not face an opponent who (legally according to the game, and therefore ethically) reduces theirs to zero and builds a 1-foot tower. Strategies they find unacceptable infuriate them, and they’ll often complain about being beaten by “weaker” players. If they get left out of Monopoly negotiations and are too late to get their share of the game’s 12 hotels, they get very angry and accuse the other players of having “ganged up on” them, when that’s almost never what actually happened. What usually happened is that the scrub failed to play the negotiatory game that is far more important than the roll-and-move dynamic that sets that negotiation’s initial conditions.

The scrub, at his core, takes a simplified version of the game, embedded within the actual game that is described by the roles, and declares it better. To be clear about it, sometimes (but rarely) the scrub is right. Some games have such bad designs that they fail on their own terms. However, many more games (e.g. Monopoly) succeed on their own terms but might not deliver the kind or quality of play that is desired. That doesn’t mean that they’re awful games, but only that they fall short of a specific aesthetic. It’d be hard to say that Monopoly is a terrible game, given its success and longevity, but it doesn’t satisfy the “German style” aesthetic to which most tabletop gamers (including myself, to a large degree) subscribe. All of this said, in most cases, the “scrubbed” version of the game, in which otherwise legal moves are banned, is less interesting than the original one.

So what do scrubs have to do with programming and the workplace? Well, the first question is: what is the game? The answer is perhaps not a satisfying one: it depends. The objective might be:

  • to write a program that solves a problem using as little CPU time as possible.
  • to write a program that solves a problem, and with maintainable source code.
  • to produce a solution quickly in order to fend off political adversity.
  • to choose a problem that is worth solving, and solvable, then solve it.

It’s rarely spelled out what “winning” is, but there are truths that make programmers unhappy. Foremost is the fact that good code is only a small factor in determining which program or programmer wins. Most of us live in the real world and have to play the coarse, uncouth, political game in which the objectives don’t have much to do with code quality. The ultimate goal is usually (for an individual or a firm) to make money, making the proximate goal success in the workplace. And when we get trounced by “inferior” players who write shitty code or who can’t even code at all, it makes us angry.

Now, I will argue that, from a game-design perspective, the modern workplace game is poorly designed. One notable and common flaw in a game is a king-maker scenario, in which players incapable of winning can, nonetheless, choose who the winner is. (The reason why many house varieties of Monopoly forbid sale of properties below on-board price: to prevent losing players from selling everything at $1 to the person who angered them least.) Whether this is a flaw or an additional social element to play depends on opinion, but it’s generally considered to be a sign of poor design. The workplace game is one where the inferior players have a major, game-killing effect, and those who dominate it are those who are most skilled at manipulating and weaponizing the inferior players. This is an ugly process, and when thousands to millions of dollars and health insurance are at stake, people have a justified dislike of it. The game design is shitty and the game is not fun for most people, and the people who find it fun tend to be the worst sorts of people… but these are technical notes. The sin of the scrub is failing to recognize the rules as they are rather than as one thinks they should be. In this way, most of us are scrubs. This often blinds us to what is happening. When we get beaten by “inferior” programmers (“enterprise Java” programmers and management aspirants who spend ten times as much time on politics as on coding) we’re nonetheless getting beaten by superior game-players. We out-skill them in the part of the game that we wish mattered most– writing high-quality software– but they’re superior at turning something that we view as an ugly, disrupting landscape feature– the hordes of stupid, emotional assholes out there who utter phrases like “synergize our timeboxed priorities” and use “deliver” intransitively in between grunts and slobbering– into a tailwind for them and a headwind for us.

I catch myself in this, quite often. Let’s take programming languages. Java and C++ are ugly, uninspiring, depressing languages in which, not only does code take a long time to write, but the code is often so verbose that it’s usually unmaintainable. I would like to be able to say that the person who copy-pastes his way to a 20,000-line Java solution, as opposed to my elegant 400-line Haskell program, is “cheating”. For sure, I can make a case that my solution is better: easier to maintain, more likely to scale, less prone to undesirable entanglements and undocumented dependencies. On the other hand, to say that the “enterprise Java guy” is unethical (and, yes, I’ve heard language warriors make those kinds of claims) is to let my Inner Scrub talk. It’s possible that my beautiful Haskell program is an 8/8, trampling Force of Nature and the Java program is a Stone Rain (land destruction). Well, sometimes land destruction wins. Does it “deserve” to, in spite of my insistence that it’s an “ugly” way to win? Well, my opinion on that doesn’t matter. The rules of the game are what they are, and as long as people don’t cheat, what right do I have to be angry when others use different strategies?

Of course, some might find my depiction of office politics as “a game” to be sociopathic. The stakes are much higher, and people get killed by software failures, so it seems evident that the anti-scrub “if the rules don’t say it’s illegal, you can do it” attitude is cavalier at best and reckless at worst. I don’t have an easy way to address this, and here’s why. Not all things in life are, or should be, competitive games. The majority of our society’s most important institutions are economic game-players. Is that morally right? I don’t know. I don’t know how to make it something different without risk of making it worse. It’s also unclear what “the rules” are and how we define cheating. Is lying on one’s CV simply another strategy, with attendant risks and penalties, or should people who do it get out-of-game punishments, like card cheaters do? I think most would agree that quack doctors deserve jail time, while those who harmlessly upgrade titles to improve social status (e.g. Director to Senior Director, not Associate to CEO, the latter being genuine dishonesty) or massage dates (to cover gaps) probably don’t even deserve to be fired. It gets murky and complicated, because business ethics are so poorly defined and especially because the most successful players tend to be those who bend the rules beyond form. We can argue “outside of the system” that many of these people are unethical, and therefore indict the system. We can say that a game like office politics doesn’t deserve to have its outsized impact on a person’s income and professional credibility– and I, for one, would strongly agree with that. What we can’t do is deny that office politics is a game and (to rip off The Wire) “the game is the game”.

One common flash-point of scrub rage is the “performance” review. Politically unsuccessful high performers often get negative reviews, to their chagrin. Perhaps this is because they’re used to school, which is far more meritocratic than the office. I’ve definitely gotten poor grades from teachers who liked me and good grades from those who didn’t, because academic grades are mostly based on actual performance. Young professionals often expect this to continue into adulthood, and become furious when their “performance” reviews reflect their political standing rather than what they actually did. (“You can say you don’t like me, you can even fire me, but don’t you fucking dare call me a low performer!”) They take it as a hit to their pride and an injustice rather than as what the performance review actually is: a feature of the game that was used against them. Workplace scrubs, to their credit, tend to be the best workers. They “perform” very well and expect “the meritocracy” to declare them the winners, and when the prizes are given to these other people who often “performed” poorly but were superior at manipulating others, they get angry.

Programmers, often, are the worst kinds of scrubs. Like Magic scrubs who prefer to play multiplayer solitaire (look at my 8/8 trampling Force of Nature!) over directly competing (and facing an opponent who directly competes with them, by countering key spells and denying resources) they often just want to be left alone and kept away from “politics”. They want to play multiplayer solitaire, not deal with adversity. This is understandable, but the adversity doesn’t go away.

One example of this is in the extreme professional omerta that afflicts the tech industry. Programmers are terrified of speaking up about bad practices by employers, and not for lack of a reason. Those who have blown whistles often find it harder to get jobs. But who enforces the black lists? Sadly, it’s often other programmers: the Uncle Toms who call the whistleblowers “not team players” or “rabble rousers”. And why? Employers and employees aren’t always in adversity, but often they are (and it’s usually the employer’s fault, but that’s another debate). To many, this truth is deeply unpleasant. The multiplayer solitaire players hate being reminded of it. They hate being told that they’d make three times as much as Java programmers (because they could change jobs every year and create bidding wars) than writing objectively better code in Haskell (where the community is small and changing jobs every 12-18 months isn’t an option). They hate being told that the quality of projects they get has more to do with political favor than any definition of “merit”, and that they ultimately work for people who are about as fit to evaluate our work as I am to perform surgery. They want to ignore all of the unpleasantness and focus on “the work” as they’ve defined it, and the game under the rules that they wish were the actual rules. When others blow whistles, they’re angered by the interruption and grab the wrenches that they’ll beat the messengers with.

Finally, we can’t cover this topic without discussing collective bargaining. Scrubs don’t enjoy losing, and they’re not always inept players, but the motto of the scrub is, “I don’t want to win that way.” Of course, if “that way” is cheating, then this is the only morally correct position; but often, “that way” includes strategies that are well within the rules. As a teenage Magic player, I didn’t want win through land destruction or counterspells, so I deemed that to be an “unacceptable” way to win (and consequently lost against players who knew what they were doing). Collective bargaining admits that the relationship between employers and employees is often adversarial and almost always at risk of becoming such. Since the work is viewed by those outside of our craft as a commodity, it mandates that commoditization happen in a way that is fair to all parties. Further, it renders us more resistant to divide-and-conquer tactics. However, a great number of Silicon Valley programmers bristle at the thought of creating any organization for ourselves whatsoever. Their response is, in essence, “I don’t want to win that way.”

I, too, would rather win in the classical “clean” way, which is by becoming a great programmer and writing excellent code that solves important problems. I’d love to live in a world in which employers and management had the best interests of everyone at heart. Unfortunately, we don’t live in a world where any of that is true. In the world that actually exists, with the rules as they actually are, we are losing. Technology is objectively run by the wrong people. We render obscene amounts of value to a class of overpaid, under-skilled ingrates that treats us as less than human, and our aversion to “getting political” keeps us from doing anything about it. Our aversion to what we view as a less-glorious path to victory leads us to a completely inglorious loss.

If I were to write a New Year’s Resolution for the 20 million programmers out there, it would be this: let’s stop being scrubs, and let’s start actually winning. Once we’re on top, our opinions about beautiful code and technical culture will start to matter, and we can fix the world then.