The Parable of the Code Review

Last week’s events, with Linus Torvalds pledging to stop behaving like an asshole, instituting a code of conduct in Linux kernel development, and all but running off to join a monastery, have made a lot of waves. The last bastion of meritocracy has fallen! Linus, the man with five middle fingers on each hand, was going to save free software from ruin by tellin’ it like it is to all those writers of bad patches. Now he has gone over to the Dark Side, etc., etc.

There is one thing that struck me when reading the arguments last week, that I never realized before (as I guess I tend to avoid reading this type of material): the folks who argue against, are convinced that the inevitable end result of respectful behaviour is a weakening of technical skill in free software. I’ve read from many sources last week the “meritocracy or bust” argument that meritocracy means three things: the acceptance of patches on no other grounds than technical excellence, the promotion of no other than technically excellent people to maintainer positions within projects, and finally the freedom to disrespect people who are not technically excellent. As I understand these people’s arguments, the meritocracy system works, so removing any of these three pillars is therefore bound to produce worse results than meritocracy. Some go so far as to say that treating people respectfully, would mean taking technically excellent maintainers and replacing them with less proficient people chosen for how nice1 they are.

I never considered the motivations that way; maybe I didn’t give much thought to why on earth someone would argue in favour of behaving like an asshole. But it reminded me of a culture shift that happened a number of years ago, and that’s what this post is about.

Back in the bad old days…

It used to be that we didn’t have any code review in the free software world.

Well, of course we have always had code review; you would post patches to something like Bugzilla or a mailing list and the maintainer would review them and commit them, ask for a revision, or reject them (or, if the maintainer was Linus Torvalds, reject them and tell you to kill yourself.)

But maintainers just wrote patches and committed them, and didn’t have to review them! They were maintainers because we trusted them absolutely to write bug-free code, right?2 Sure, it may be that maintainers committed patches with mistakes sometimes, but those could hardly have been avoided. If you made avoidable mistakes in your patches, you didn’t get to be a maintainer, or if you did somehow get to be a maintainer then you were a bad one and you would probably run your project into the ground.

Somewhere along the line we got this idea that every patch should be reviewed, even if it was written by a maintainer. The reason is not because we want to enable maintainers who make mistakes all the time! Rather, because we recognize that even the most excellent maintainers do make mistakes, it’s just part of being human. And even if your patch doesn’t have a mistake, another pair of eyes can sometimes help you take it to the next level of elegance.

Some people complained: it’s bureaucratic! it’s for Agile weenies! really excellent developers will not tolerate it and will leave! etc. Some even still believe this. But even our tools have evolved over time to expect code review — you could argue that the foundational premise of the GitHub UI is code review! — and the perspective has shifted in our community so that code review is now a best practice, and what do you know, our code has gotten better, not worse. Maintainers who can’t handle having their code reviewed by others are rare these days.

By the way, it may not seem like such a big deal now that it’s been around for a while, but code review can be really threatening if you aren’t used to it. It’s not easy to watch your work be critiqued, and it brings out a fight-or-flight response in the best of us, until it becomes part of our routine. Even Albert Einstein famously wrote scornfully to a journal editor after a reviewer had pointed out a mistake in his paper, that he had sent the manuscript for publication, not for review.

And now imagine a future where we could say…

It used to be that we treated each other like crap in the free software world.

Well, of course we didn’t always treat each other like crap; you would submit patches and sometimes they would be gratefully accepted, but other times Linus Torvalds would tell you to kill yourself.

But maintainers did it all in the name of technical excellence! They were maintainers because we trusted them absolutely to be objective, right? Sure, it may be that patches by people who didn’t fit the “programmer” stereotype were flamed more often, and it may be that people got sick of the disrespect and left free software entirely, but the maintainers were purely objectively looking at technical excellence. If you weren’t purely objective, you didn’t get to be a maintainer, or if you somehow did get to be a maintainer then you were a bad one and you would probably run your project into the ground.

Somewhere along the line we got this idea that contributors should be treated with respect and not driven away from projects, even if the maintainer didn’t agree with their patches. The reason is not because we want to force maintainers to be less objective about technical excellence! Rather, because we recognize that even the most objective maintainers do suffer from biases, it’s just part of being human. And even if someone’s patch is objectively bad, treating them nonetheless with respect can help ensure they will stick around, contribute their perspectives which may be different from yours, and rise to a maintainer’s level of competence in the future.

Some people complained: it’s dishonest! it’s for politically correct weenies! really excellent developers will not tolerate it and will leave! etc. Some even still believe this. But the perspective has shifted in our community so that respect is now a best practice, and what do you know, our code (and our communities) have gotten better, not worse. Maintainers who can’t handle treating people respectfully are rare these days.

By the way, it may not seem like such a big deal now that it’s been around for a while, but confronting and acknowledging your own biases can be really threatening if you aren’t used to it… I think by now you get the idea.

Conclusion, and a note for the choir

I generally try not to preach to the choir anymore, and leave that instead to others. So if you are in the choir, you are not the audience for this post. I’m hoping, possibly vainly, that this actually might convince someone to think differently about meritocracy, and consider this a bug report.

But here’s a small note for us in the choir: I believe we are not doing ourselves any favours by framing respectful behaviour as the opposite of meritocracy, and I think that’s part of why the pro-disrespect camp have such a strong reaction against it. I understand why the jargon developed that way: those driven away by the current, flawed, implementation of meritocracy are understandably sick of hearing about how meritocracy works so well, and the term itself has become a bit poisoned.

If anything, we are simply trying to fix a bug in meritocracy3, so that we get an environment where we really do get the code written by the most technically excellent people, including those who in the current system get driven away by abusive language and behaviour.


[1] To be clear, I strive to be both nice and technically excellent, and the number of times I’ve been forced to make a tradeoff between those two things is literally zero. But that’s really the whole point of this essay

[2] A remnant of these bad old days of absolute trust in maintainers, that still persists in GNOME to this day, is that committer privileges are for the whole GNOME project. I can literally commit anything I like, to any repository in gitlab.gnome.org/GNOME, even repositories that I have no idea what they do, or are written in a programming language that I don’t know!

[3] A point made eloquently by Matthew Garrett several years ago

Advertisements

When Bullies Grow Up

To mark the joyous occasion of Rick Santorum dropping out of the Republican primaries, here’s an observation that I wrote a while ago but never got around to publishing.

Last night I watched the movie Fucking Åmål, or as it was retitled in the USA, Show Me Love. (I have a sneaking suspicion that The Shins’ song Phantom Limb is based on it.) It reminded me of my short school career in good ol’ Sherwood Githens Middle School in North Carolina. The homophobic student body there had a rather broad definition of homosexuality: presumably it would have included actual homosexuality if they had known what that was, but it also included getting good grades, or being bad at sports, or… well, okay, it was pretty arbitrary who got beaten up for being ‘gay.’

The school placed a lot of emphasis on respect and “stomping out killer comments,” as one school poster campaign at the time put it, but even the good teachers only had ineffectual measures at their disposal for stopping the bullying. This was because the prevailing policy in American education at the time was that every child had a right to their ‘self-esteem’ and the children’s right to express themselves was paramount, even if it came at the expense of other children’s right to express themselves.

I believe it’s fallen out of fashion, but this self-esteem business is something that would make today’s conservative pundits and Republican politicians howl. “Your children are being persecuted by their peers for performing well in school!” I imagine them yelping in moral outrage. “And that’s exactly what the liberal conspiracy in America’s schools wants!” Well, it was a flower-power philosophy, and it was stupid, so this is one of those rare times I’d have to side with the conservatives.

Wait a minute though. Conservative politicians hate gays.* So diminutive homophobes punching gay children are actually the real American heroes in this year’s Republican primary. Well, too bad for the smart gay kids, at least the smart straight kids will catch a break if we get a Republican president, right?

“President Obama once said he wants everybody in America to go to college. What a snob. There are good, decent men and women who go out and work hard every day and put their skills to test that aren’t taught by some liberal college professor to try to indoctrinate them. Oh, I understand why he wants you to go to college. He wants to remake you in his image.” — Rick Santorum, Americans for Prosperity rally, Feb. 25, 2012

“I understand why Barack Obama wants to send every kid to college, because of their indoctrination mills, absolutely. […] The indoctrination that is going on at the university level is a harm to our country.” — Rick Santorum, interview with Glenn Beck, Feb. 23, 2012

Conservative politicians hate gays and education! It was then that I realized the awful truth:

Republican politicians are what happens
when middle school bullies grow up.

*Of course not all conservative politicians hate gays. For example, I’m sure Mitt Romney is just pretending to hate them. Of course, what Romney’s homophobia lacks in sincerity, Santorum’s makes up for in oversincerity. What I mean when I say “conservative politicians hate gays” is “conservative politicians think that more voters want them to hate gays than not.”

Republican politician of tomorrow

Republican president of tomorrow. (Attribution: Diego Graz, licensed CC-BY.)

Rain in the Desert, Part II

Recently I wrote about my experience with microblogging at a physics conference. I was gratified to find out that people actually read and enjoyed it, and it might even have had an effect on next year’s conference. Roy Meijer was kind enough to send me some tips on how to use social media at scientific conferences. I’ve said what I wanted to say about the experience, but I want to discuss my further thoughts about two inappropriately sexist messages that showed up on the big Twitter screens at the conference.

A conference-goer who made one of the sexist comments wrote a comment on this blog, anonymously, objecting to me calling him a socially retarded asshole in my essay. Let it be absolutely clear that I don’t take kindly to people who create an unwelcoming or unpleasant environment for women in physics. But it made me think anyway: he seemed genuinely convinced that women enjoy this kind of attention, and indeed, one shouldn’t ascribe others’ objectionable behavior to malice when it could be just cluelessness. So maybe I should just have said socially retarded.

But no matter whether it’s malice or cluelessness, I know that physicists can do better. Not just can, but have to. Sexist attitudes just don’t belong in the world today, and most other professions have gotten with the program. But physicists apparently still live in 1972. Here are some examples of what women in physics have to put up with:

  • A few years ago a professor at our Institute gave a really horrifying speech at the Christmas party, in which he thanked the secretaries for being our mothers who took care of us, and the technicians for being our fathers who brought us toys to play with. As if that piece of gender stereotyping weren’t enough of a train wreck by itself, he had actually started out his speech by telling an off-color story that involved mistresses, then said he’d heard that story from a Jewish colleague and that it was typical Jewish humor. (Although this post is about sexism, not racial stereotypes, and I can only be outraged about one thing at a time if I want to keep my message on track.)
  • Another professor at our Institute told grad students that to be a successful physicist, you have to have a supportive family, so his wife stayed home and took care of the children. Yes, there were female grad students in the audience. Perhaps there were gay grad students too.
  • At a conference I was at, a professor put a slide of a bikini model into his talk. He had photoshopped her head to be the professor organizing the conference (who is a woman).
  • If you go to the poster session at a physics conference, you’ll always see a crowd of nerds clustered around a few posters. At the center of each cluster is a female physicist presenting her poster. If I put myself in her place, I figure the attention to one’s research is gratifying — as a male physicist, I always have to work really hard to get anyone to even stop and take a look at my poster — but on the other hand, as a male physicist, I never have to worry about whether the attention comes from sincere interest in one’s research, or ulterior motives.

[Man writes incorrect equation on chalkboard] ONLOOKER: Wow, you suck at math. [Woman writes incorrect equation on chalkboard] ONLOOKER: Wow, girls suck at math.

Dear readers, I respect you, really I do. I know everybody on the whole internet links to this XKCD cartoon and you've seen it fifty thousand times already. But there's just no possible way to illustrate sexism in science more accurately and simply than Randall Munroe does.

So the question is what in particular is wrong with these comments I objected to. The Geek Feminism Wiki’s page on technical conferences has a list of problems with which women are often confronted. My experience is that FOM does a good job at making sure that most of these problems don’t occur at the Veldhoven conference. (Although my personal experience doesn’t really count, does it, since I’m lucky enough not to have to face these challenges.)

However, our conference-goer who made the inappropriate comment on the public screen, in my opinion, has made the mistake of falling into the “You should be flattered” trap: the misguided belief that since he was actually making a compliment, it should be OK. I quote (and slightly paraphrase) from that link on why this belief is wrong:

  • “It attempts to dictate women’s emotional responses to such comments, in particular perpetrating the idea that women are socially obliged to be pleasant and accommodating;
  • “It places the blame on women for responding negatively to attention which is wholly inappropriate in [a professional context];
  • “It reminds women that they are subject to men’s approval […];
  • “It reminds women who aren’t the object of the comment that they are also subject to men’s approval;
  • “It ignores the fact that many women have had negative experiences with sexual attention, such as immediate or eventual criticism or violence, and therefore do not view it with unmixed (or any) pleasure;
  • “It makes non-straight women feel particularly marginalised;
  • “Focusing on women’s appearance contributes to feelings of exceptionalism and conveys the judgment that a woman’s [physics] expertise is less valuable than her attractiveness.”

In my mind, there’s still an unsolved question. Does the conference organizer have a responsibility towards the conference-goers to prevent this stuff from happening or mitigate it when it does? On the one hand, you have to assume that people will comport themselves decently in public, and you can’t prevent every possible turd that people might drop in the punchbowl. On the other hand, allowing someone to create a poisonous environment for a minority lasts much longer than the conference does.

Addendum 1: I debated with myself whether to name-and-shame the professors in the examples above. They certainly deserve it, but I’m not sure it would serve any purpose other than spite. The time for denouncing the first and third incidents was right after they happened, and I will always regret that I said nothing in both cases. I wasn’t present at the second incident myself; I only heard about it from people who were there.

Addendum 2: Please realize that I’m not trying to flog a dead horse by chastising someone for an inappropriate comment at a conference that has been over for two months now. I am writing this because I think that the problem is an important one and I think that we have a responsibility to educate our colleagues so that physics can move out of the social Dark Ages, and women will actually feel welcome in our field, and nobody will argue about affirmative action policies, because we won’t need them.

Hurdles Even Here

My good buddy Diederik was on the popular evening variety show De Wereld Draait Door Tuesday evening, being interviewed by the host Matthijs van Nieuwkerk about the Nobel prize going to the graphene people. It was a rousing success: on twitter, people were wondering whether he had a fan club, and clamoring for him to appear on the program more often! It was wonderful to see Diederik combine his gift for entertaining people with the contagious enthusiasm with which he does everything. The clip below is ten minutes well spent, if you speak Dutch that is.

He did a brilliant job, but if I’m to keep true to the principles of this blog, I’ll have to make a serious observation, not just congratulate him on a job well done — sorry, Diederik. Well, my observation is about the part that starts almost exactly two minutes into the interview. I’ve transcribed it and translated it into English below:

MVN: He won, and you were ecstatic, is that what you said?

DJ: Maybe not ecstatic, but I worked a lot with the material [graphene] at university, and it’s such a cool material! His winning is completely justified. It’s as if… well… if you read the papers from those days, then the American phrase “It’ll even walk your dog!” comes to mind. It’s strong, it’s flexible, you can see through it, it conducts infinitely better than copper — well, not infinitely of course — a million times better…

MVN: [interrupting] Please consider, Diederik, that not all the viewers have your brains!

Of course it’s good practice for talk show hosts to interrupt their guests when they’re not getting to the point quickly enough. I happen to think Matthijs van Nieuwkerk is a good interviewer. However, probably without even meaning to, he came uncomfortably close to the knee-jerk reaction that physicists are so familiar with: physicist starts talking, and interlocutor stops listening because he’s busy thinking “Oh no! He’s opening his mouth and I’m not going to understand anything that comes out!”

My geek heart breaks a little whenever that happens.

Not too much though, because Diederik went on to give one of the best popular-science explanations I’ve ever heard. Seriously, watch the video.