客座博客文章作者:Barathy Rangarajan,梦工厂动画
“包容性语言(inclusive language)”是什么意思?
在技术领域,推动更加多样化、公平和包容的文化的方法之一是在代码库和文档中取代“冒犯性的”语言。这包括评估现有的代码库和文档,识别潜在的有问题的语言,并用更容易接受的语言替换术语。通过在代码和文档中使用更具包容性和意图性的语言,我们为开发人员创建了一个欢迎差异并将其视为优势的环境。
但是,将代码和文档修改为包容性的工作可能会很棘手。跨整个仓库实现变更可能需要一个统一的团队或工作室的努力。更重要的是,如果没有一定程度的自我意识,有些人可能很难意识到别人可能会觉得冒犯或不尊重的术语。一些语言乍一看可能不会引人注目,但可能会让另一些人感到不舒服,例如以前常见的“master”和“slave”进程的命名惯例。
为了帮助提高认识并提供一个起点,我们创建了这个指南来识别非包容性语言的例子,提供替代语言的想法,并讨论一些公司目前正在开发的包容性战略。
编写代码或文档时的通用准则
- 避免使用有社会历史背景的术语。 在种族、民族、国籍、性别、年龄、心理和身体能力、性取向、社会经济地位、宗教和教育背景等方面具有历史意义或影响的术语。
- 避免使用习语和行话。 这可能会把没有特定专业知识的人排除在外,而且许多习语无法在国家之间翻译。此外,这些有时来源于负面的刻板印象。
- 编写包容性的示例。 尽量避免在文档中使用特定于特定国家文化的示例,并确保使用不同的名称。
- 如果你不确定,那就问! 试着注意语言的选择,如果不确定的话,问问周围的人,是否某些措辞会让人不舒服。
常见术语列表和替换建议
带有社会色彩的语言: 有历史或社会根源的语言,通常认为一种类别比另一种类别占主导地位。
- Master, slave → primary/main, secondary/replica
- Owner, master → lead, manager, expert
- Blacklist → deny list, exclusion list, block list, banned list
- Whitelist → allow list, inclusion list, safe list
- Native feature → core feature, built-in feature
- Culture fit → values fit
- Housekeeping → cleanup, maintenance
性别语言: 假设用户和开发者的性别,或者假设性别的语言。
- Man hours → labor hours, work hours
- Manpower → labor, workforce
- Guys (referring to a group) → folks, people, engineers/artists
- Girl/Girls (referring to women age 18 and older) → woman/women
- Middleman → middle person, mediator, liaison
- Gendered pronouns (he/him/his, she/her/hers) → they, them, theirs
能力语言: 认为某种身体或精神状态优于其他的语言。
- Crazy, insane → unpredictable, unexpected
- Normal → typical
- Abnormal → atypical
年龄歧视语言: 基于年龄做出假设或强化基于年龄的刻板印象的语言。
- Grandfather, grandfathering, legacy → flagship, established, rollover, carryover
暴力语言: 带有一定程度的攻击性或男子气概的语言。
- Crushing it, killing it → elevating, exceeding expectations, excelling
一些公司目前试图解决非包容性语言的例子
许多公司已经开始实施从代码仓库、文档和代码注释中删除非包容性术语的策略。
Autodesk
Autodesk 已经采取了一种果断和直接的策略来解决所有项目中不敏感的术语。Maya 和 Arnold 的项目经理 Nancy Haj 提到,Autodesk 创建了一个由不同角色的员工组成的专门任务小组来负责整个公司的计划。工作组必须想出一个实现策略,包括定义他们想要实现什么,以及从什么时候开始看旧代码。
最终的结果是一个共享的文档被 Autodesk 上的所有开发团队引用。为了更加清晰,该文档包括了要更改的术语列表、用于替换该术语的标准化替代方法,以及重写后可能出现的情况的示例。为了在整个公司实施这一战略,这些变化将在几个月内分多个阶段推出。在每个阶段,每个团队都必须处理来自该列表的一个新的术语子集。为了问责制,团队必须报告他们的进度更新,每个团队都给出了他们认为可以交付代码更改的时间框架。这将允许计划团队花足够的时间来制定变更。
Autodesk 目前正处于该计划的第二阶段。
梦工厂动画
梦工厂动画采取了自上而下的方式来推动变革。每个研发团队的技术主管都在讨论解决不敏感术语的策略,并特别关注在代码仓库中使用的“master”分支命名。超过 1500 个活跃的 Github 分支跨多个部门,利用“master”命名,这不是一个简单的任务。Github 没有重命名分支的机制。这意味着团队需要在消除“master”分支之前创建并采用一个替代分支。领导正在与所有涉及的团队(包括生产团队)合作,以开发一个对积极使用的代码库影响最小的迁移策略。
结合公司更广泛的努力来提高对包容性语言的认识并避免偏见,各个团队也进行了基层工作,其中技术领导者正在努力替换新版本软件中的“冒犯性术语”,并强调了使用更多包容性语言的重要性。作为团队日常工作的一部分。树立榜样,指出哪里可以做出更好的语言选择(例如使用中性语言来称呼一个团队为“engineers”而不是“guys”),让团队意识到这一点,并鼓励在代码和文档中做出更好的语言选择。
拥有多元化的劳动力对于更好地认识和改变非包容性语言也至关重要。在这一点上,工作室作为一个整体已经推出了大量的多样性、公平性和包容性倡议,并着眼于提高多样性招聘。工作室还促进了员工资源组的多样性和以技术为重点的资源组,如 TECHWomen,通过活动更好地教育员工,并在非包容性语言等可修复的领域提高社会意识。
索尼影视图像工作室
与梦工厂一样,索尼影视图像工作室也正处于自上而下的调查阶段,希望在他们的代码中实现更具包容性的语言。为此,软件开发和系统工程高级副总裁 Michael Ford 描述了评估策略,该策略用于确定相对于变更影响的变更的可访问性。调查队正在编制一份优先处理的用语清单,以及对该用语作出改变所需要的时间。当调查结束,确定了一系列术语并确定了优先次序,该小组将寻求立即采取行动。
团队在调查阶段的一个重要考虑事项是确定如何有效地向开发人员传达变更的必要性。这包括预期开发人员可能有的任何关注和问题,并构建叙述,以提供缺乏更改将如何造成更多伤害的观点。
总结
对于正在实施自己的包容性战略或处于起步阶段的公司来说,建立网络并向其他有当前举措的公司学习可能会有所帮助。最终,多样性、公平和包容需要整个行业的努力,我们鼓励技术人员合作并分享他们的包容战略。将现有代码转换为更具包容性的语言的努力可能不仅需要整个团队或工作室的努力,而且可能还需要对开发人员进行更多的自我意识和培训,以确保未来的开发继续保持包容性语言作为代码标准。