Code is our craft. At Airbnb, we view our code and product as a reflection of our values. Each developer imbues their work with a piece of themselves. We want all engineers to be proud of the codebase in which they work and the systems that they use every day.

We want to share with you some of the work that we are doing at Airbnb to build an inclusive engineering culture. We hope that sharing our story may energize and bolster similar efforts to eliminate non-inclusive terminology throughout the industry.

Bootstrapping Change

Airbnb’s mission is to create a world where anyone can belong anywhere. Continued violence and prejudice against under-represented groups threaten belonging and equality. Increased diversity in Airbnb Engineering will allow our team to better empower Airbnb hosts to serve Airbnb guests. It is imperative that Airbnb engineers from all backgrounds feel like they belong when contributing to Airbnb.

In the summer of 2020, we identified terms in Airbnb’s technical stack that undermine our core value of belonging. Team members proactively organized a volunteer effort in a Slack channel, working with employees from affected communities to operationalize change. Together we co-authored a proposal to address non-inclusive terminology in our codebase. Within a month, we presented the proposal to our CTO. He then prioritized this work by staffing dedicated engineer hours to make our code and systems more inclusive.

Acknowledgement and resourcing from the highest levels of management legitimized this effort. The legitimacy of the effort was further reinforced by smaller actions undertaken by individuals. Every task, pull request comment, and Slack reaction sent a signal that this work is valued by the business.

https://fordlandr3.instructure.com/courses/2327/assignments/16957https://fordlandr3.instructure.com/courses/2327/assignments/16958https://fordlandr3.instructure.com/courses/2327/assignments/16959https://fordlandr3.instructure.com/courses/2327/assignments/16960https://fordlandr3.instructure.com/courses/2327/assignments/16961https://fordlandr3.instructure.com/courses/2327/assignments/16962https://fordlandr3.instructure.com/courses/2327/assignments/16963https://fordlandr3.instructure.com/courses/2327/assignments/16964https://fordlandr3.instructure.com/courses/2327/assignments/16965

Building New Habits

We consider non-inclusive terminology to be a legacy style of programming that we want to eliminate. To that end, we began by measuring the usage of non-inclusive terminology in our code. We then broke the problem into two pieces: preventing new additions of these terms and driving down existing instances of these terms.

To address the first problem, we introduced a linter to flag pull requests that introduce terms that Airbnb has deemed non-inclusive. The linter comments on each pull request that adds lines containing one or more of these terms. The pull request comment suggests alternative terms.

In order to build trust with engineers, we focused on making the linter actionable. We want the author to be able to resolve the linter’s comment in their existing pull request, without needing to edit code in another repository. Accordingly, we tend to exclude third-party code and code that is pulled in from upstream repositories when linting pull requests.

We began by introducing the linter to individual repositories, one at a time. We asked developers who were well-known in that codebase to drive the initial rollouts. These local experts were able to make judgements about which directories should be excluded from the linter and also had the trust of other developers in that codebase.

https://groups.google.com/g/cuevana4k/c/UcicC8hrC6Mhttps://groups.google.com/g/cuevana4k/c/M4zpDIwTNTQhttps://groups.google.com/g/cuevana4k/c/lQKTSzspQTchttps://groups.google.com/g/cuevana4k/c/xzWSu173vnwhttps://groups.google.com/g/krmovie/c/BrLXdf9JM5ghttps://groups.google.com/g/krmovie/c/kJLNIrIfpx8https://groups.google.com/g/krmovie/c/79e_NtS_Drchttps://groups.google.com/g/krmovie/c/zrGlgcE64O4https://groups.google.com/g/f91080p/c/knp40PrG0_ohttps://groups.google.com/g/f91080p/c/74wiW8gu5cEhttps://groups.google.com/g/f91080p/c/vQ1jPZ-4kfM