On the Techdel test, and giving a shit about workplace diversity

[Disclaimer: I am writing this from my perspective as npm's CTO, but purely in a personal capacity. It has not been reviewed or approved by anyone at the company, and any questions or complaints about it should be directed at me.]

At npm, we care a lot about workplace diversity.

This statement by itself distinguishes us in no way from the majority of companies, who will all say, if asked, that they value diversity. Of course they do! "Diversity" sounds like one of those nice, cheap, HR sorts of words, like "empowerment" and "transparency", that you can put into your mission statement and be so meaningless as to require no effort whatsoever on your part to live up to. Just another buzzword. The actual level of commitment to diversity, and even the level of understanding what it means to have and support a diverse workplace, vary enormously from company to company.

We started npm, Inc. back in January 2014, and over the last 14 months I feel like I have come a long way as a manager of people and learned a great deal about what it means to really, truly value and support diversity. When I learn things I like to write about them, so that's part of my motivation for this. Another, bigger part of my motivation is intense, unbearable impostor syndrome about my own, and by extension npm's, actual level of success at doing so.

This started when I wrote a blog post comparing diversity at major tech companies, then seriously escalated when I wrote a half-joking rhetorical tweet about a Bechdel test for tech (which, you're right, Ryan, should totally have been called the Techdel test:

This then got picked up by the excellent people at 18F, who used it to kick off a much more serious and useful conversation about gender diversity at their organization, and from there to diversity in general. The original tweet has been remarkably long-lived and 18F's post has been picked up by dozens of other sources. It has been extremely gratifying to see an offhand remark of mine, mostly via 18F's amplification, spur so many interesting and useful conversations, but it has also made me feel like a huge fraud.

Here's why: npm has, at present, exactly 11 employees (though we are hiring a bunch more right now). The three founders are all white men (though we managed some diversity in sexuality, having one straight, one gay and one bisexual founder). Of the 8 non-founders, all of whom are engineers of various kinds, we have four women and four men, all but one of whom identify as white, with some additional variation in the LGBT spectrum. This is... fine. It's not great. It's better than a lot of places. It could be much better. It's also far, far too small to be statistically meaningful, so as we grow we could either get much better or significantly worse. The best I can say is that we're doing okay so far, and will continue to try to improve. Hiring diversely is hard, and a great deal has been written about it, and I'm not going to write about it now.

But hiring diversely is merely the first step. You can't just hire a diverse group and then employ standard Silicon Valley workplace culture and expect things to go well. Once you get people in the door you have to make sure the culture values them and helps them perform at their best. And this is another reason why I have been so uncomfortable receiving attention for our own diversity, because in this area we have been even less successful.

Of our eight employees, over 14 months, people have had big enough problems with the workplace environment and their job quality to raise those concerns to their manager (me, in nearly every case) a total of about 20 times (we keep records of the individual meetings, but I haven't collected them for exact stats). From my experience of previous companies, that's actually not bad -- people often run into things that make them unhappy at work, especially at startups where the situation changes rapidly. But what is bad is that of those reports, more than three-quarters were raised by the women.

These problems varied in scope. Some were minor -- we had problems with over-talking, especially during ad-hoc meetings. We were unnecessarily negative in our discussions of third parties and other technologies. A couple of times, I gave credit for a piece of work to a man who worked on a project instead of the woman who actually did the work until I was corrected. More seriously, I gave ineffective feedback in a way that was distinctly gendered. Various members of the team fell victim to gendered expectations on a number of occasions. On two occasions I really majorly fucked up, totally misunderstanding a team member's needs and expectations, making them miserable entirely by accident. Not all of these problems were gender-related, but obviously since women experienced the majority of them, gender bias was at work.

The best, in fact the only, thing that I can say in our defense is: we give a shit. We really do. When these things were brought to our attention, we took them seriously. We made immediate changes. Sometimes they worked and the problem was resolved or at least improved. On some we had to try a couple of times before we found something that worked. On some of them we still haven't found a solution. But we give a shit. We are trying.

Really early on, we talked about what npm's values are, and one of the clearest summaries of them turned up in a tiny paragraph of text that Isaac churned out for our jobs page. It's so good that it has been almost unchanged in 14 months:

npm is not a typical product, and we are not a typical early-stage “work hard/play hard” startup. We are responsible adults with diverse backgrounds and interests, who take our careers and our lives seriously. We believe that the best way to iterate towards success is by taking care of ourselves, our families, our users, and one another. We aim for a sustainable approach to work and life, because that is the best way to maximize long-term speed, while retaining clarity of vision. Compassion is our strategy.

The way you can tell what a company's values are -- as opposed to what they say they are, which are universally the meaningless platitudes I mentioned at the beginning -- is by their actions. In particular, you can tell what a company believes is really important by what it will give up, or pay, to get that thing. At npm we have made real, meaningful sacrifices in terms of speed of development and cash outlay, to ensure that our team works sensible hours, and isn't woken up in the middle of the night for operational issues. We have also made real, tangible sacrifices in speed of hiring to ensure that our applicant pool is diverse, and our interviews as fair as we can possibly make them. We didn't decide things in favor of happiness and diversity vs. cash every single time, but we did it often enough to hurt, and to be sure that yes, we really do value these things enough to bear that hurt. Because we give a shit.

And that's really all you can do. Detecting and compensating for bias is mind-breakingly difficult. You can be totally conscious of your bias and yet still make biased decisions even though you're actively trying to avoid doing so. You can put processes in place to promote fairness but the design of the processes themselves can and will be biased. You can track statistics and set goals but that doesn't make them happen. You can try to cast a wide net for hiring but job postings are more likely to spread via social connections, which means your friends, i.e. people who are already very similar to you. That's not to say you shouldn't try to correct for your bias, and make goals, and put processes in place, and hire widely. of course you should. But it will never be enough. It is a morass. Once you notice bias you suddenly see it everywhere. I spend an inordinate amount of time on my morning commute considering the gender politics of who gets out of my way.

Oh, and what about the Techdel test? Well, until very recently, npm didn't even pass that. Our four women devs are all on different teams (www, registry, cli, and dev relations). While they all lay down a great deal of high-quality code, their functions rarely call each other directly. On our website, Raquel's code now calls a caching library written by CJ, so we squeak by. I'm not beating myself up over this, though. The Techdel test was a rhetorical joke intended to inspire a conversation, not be a genuine measure of quality of participation, and while npm's gender diversity isn't perfect, we are well above the minimum bar that it was the original Bechdel test's aim to set.

Ultimately, npm is a tiny part of the overall picture. Me giving a shit about hiring diversely and working diversely is not going to change Silicon Valley, especially since I get it wrong half the time even though I'm trying really, really hard. But I care, and I really honestly try to do better every day. It's not good enough, but it's not bad, and that's better than most.