开源项目经理应考虑的 5 个技巧

还没有读者喜欢这个。
Lots of people in a crowd.

Opensource.com

2013 年的一项调查中,11% 的自由和开源软件贡献者认定为女性。但或许未来会更光明?我们可以通过考察女性参与Google Summer of Code的情况来回答这个问题,该计划为中学后学生暑期贡献开源软件提供津贴。从2011 年2015 年,该计划的女性参与者约占 7-10%。这是一个极低的比例,对开源领域多元化的未来来说不是好兆头。

最近,北卡罗来纳州立大学和加州州立理工大学圣路易斯奥比斯波分校联合发布了一项关于开源领域性别偏见的研究。尽管这项研究已被广泛传播并被多家媒体分析,但我仍需声明,我的分析仅基于该研究尚未经过同行评审的事实。此外,该研究的调查结果仅适用于约 35% 的 GitHub 用户群,这在任何方面都不能代表整个开源社区。即便如此,该研究确实得出结论,对于这部分特定用户而言,女性的拉取请求被接受的频率往往高于男性。这意味着什么?我们可以得出结论,尽管女性并非开源贡献者的多数,但她们的贡献与男性的贡献相比,价值相等甚至更高。

看来女性是非常有能力的开发者,但在开源社区中只占很小的比例。而且女性参与开源的情况似乎不会增加。我们如何改变这种状况?通过执行行为准则,有效管理拉取请求和问题上的沟通,为新的贡献者创造健康和友好的环境,建立非数字空间,以及实践同理心,开源项目可以创建多元化和包容性的社区。

行为准则

行为准则是任何开源软件项目的重要组成部分。如果您是一家希望将内部项目公开的公司,请务必在这样做之前制定行为准则。如果您是一位准备推送个人项目的第一个公开提交的独立开发者,请务必在这样做之前制定行为准则。是否应在代码库中包含行为准则不应有任何犹豫或疑问。我们有管理我们州、我们国家和我们全球社会的行为准则,那么为什么我们的软件中不应该有行为准则呢?行为准则巩固了项目的期望和目标。信不信由你,尽管您可能对围绕项目的社区中哪些行为可以接受、哪些行为不可接受抱有期望,但有些人并没有。行为准则有助于为数字世界中行为的全球对话设定基调。

有很多行为准则可以作为您项目的一部分使用。我个人建议使用贡献者盟约。该文档的语言简单、简洁、易于理解,并且已经包含多种翻译版本。此外,它目前已被相当知名的开源项目使用,例如 AtomRuby on Rails

关于 PR 和问题的对话

拉取请求和问题可能是开源社区中最紧张的环境之一,这是理所当然的。在这些环境中,人们会公开他们仓促编写的代码和半生不熟的功能请求,以及他们编写良好的代码和错误报告。拉取请求和问题的公开性让新老贡献者都对自己在项目中的地位感到不安。因此,在在线空间中与其他开发者交流时,保持文明、同情和尊重的语气非常重要。这似乎要求不高,但您会惊讶于情绪化的心态和随手可及的回车键会造成多大的损害。

语气在数字空间中难以辨别,我们常常最终将我们当前的情绪和语境应用于我们在网上阅读的内容。如果您对某个请求或评论立即感到恼火或受辱,请稍后再读一遍。如果您仍然对评论的语气感到模棱两可,请要求澄清。永远不要——我再说一遍,永远不要——将一种由您个人心态驱动的语气或意图应用于他人的评论。这种简单的误解会引发许多误解和问题,并且可以通过给予与您交流的人以善意的推定来轻松避免。

即便如此,分歧确实经常发生。当分歧确实变得激烈或情绪化时,项目维护者必须在每次讨论中坚持以下规则:

  • 批评的是想法,而不是想法的提出者或他/她的能力。
  • 在所有意见分歧较大的讨论中,都应包含公正的协调人。
  • 适当执行项目的行为准则。

您会注意到,在本节中我没有提及任何关于边缘化个人的内容。这是因为拉取请求和问题上的负面互动会对所有贡献者产生负面影响,但对来自边缘化背景的贡献者的影响更大。当您必须时刻警惕如何在空间中呈现您的语气和想法时,有人以负面方式接收到您无害的评论或不太完美的拉取请求可能会产生不利影响。

新贡献者的价值

新贡献者是任何开源项目的生命线。虽然有些人可能倾向于赞扬核心开发者和维护者,但实际上是新贡献者维持着项目的精神。

新贡献者防止开源开发团队变得小团体化。新贡献者为项目引入有趣的新想法。新贡献者提出的想法与现状相反。因此,与新贡献者进行有效互动应成为任何开源项目的首要任务。

在编写开源软件几年后,您可能已经忘记了第一次 fork 存储库、紧张地敲击键盘编写您认为很糟糕的代码、在“拉取请求”按钮上徘徊数小时想知道您的贡献将如何被接受的感觉。成为一名新的贡献者是一个身心俱疲的过程,但有一些方法可以减轻新贡献者的负担。

首先,确保您有编写良好的贡献指南非常重要。无论是简单的 Markdown 还是纯文本文件,请确保您的指南包含有关开发设置、测试驱动开发流程、您使用的任何样式指南以及您在提交拉取请求方面的任何程序的完整信息。不要害怕复制其他地方已有的信息。提供有关 fork 和 clone、创建分支和提交更改的信息是完全合理的。尽管这给您作为指南的编写者带来了很多负担,但它为新贡献者提供了参与项目的单一权威来源。

除了包含详尽的贡献指南外,还可以考虑包含一个屏幕录像,以直观地引导新贡献者完成贡献工作流程。如果屏幕录像工作量太大,可以考虑制作一个快速信息图来描述工作流程。例如,查看我为 Project Jupyter 制作的贡献工作流程信息图。不同的人以不同的方式学习,为新贡献者提供不同的方式来了解如何参与您的项目,让他们知道您了解并关注他们独特的视角。

但是,在新贡献者甚至可以开始参与项目之前,他们必须知道他们可以做什么。在项目中标记问题,其中包含有关完成问题所需的贡献类型(文档、测试用例、功能、错误修复等)、特定问题的难度(低、中、高)和优先级级别的信息,可以极大地帮助新贡献者找到适合他们第一个拉取请求的完美问题。标记问题的类型和优先级相对容易,但标记难度确实需要更多的细微差别。在标记问题的难度时,我认为考虑以下问题很重要:

  • 解决此问题是否需要跨多个文件进行更改?
  • 解决此问题是否需要特定主题(线程、底层网络通信等)的专业知识?
  • 解决此问题是否涉及与代码库中未记录或未测试的部分进行交互?

回答这些问题不仅有助于您为新贡献者提供更多信息,还有助于您评估自己代码库的质量并努力进行改进。

非数字空间的重要性

除了数字论坛之外,拥有围绕开源项目形成现实世界联系的机会也很重要。这些联系不必发生在围绕项目组织的会议或聚会上——它们可以发生在任何地方。当个人在现实世界中互动时,可以达到一定程度的尊重和友情。社区成员可以在当地咖啡店或联合办公空间举办临时活动,包括协作编码、休闲对话和知识共享。不管我们喜不喜欢,人们都有不同的数字和现实世界角色,允许围绕您的项目在互联网之外发展社区,这为具有较强社交技能的潜在贡献者提供了参与项目的机会。

增强同理心

在日益互联的世界中,与来自全国各地,甚至世界各地的人们一起编写软件在工作环境中已是司空见惯。全球范围内的互动在开源领域更为常见,任何能够访问互联网和文本编辑器的人都可以了解并为开源项目做出贡献。当我们尝试与来自我们可能甚至无法在地图上识别的国家的的人们进行技术和非技术讨论时,这必然会引起很多紧张关系。我们如何有效地穿越开源软件的多元文化生态系统?这涉及到您可能已经听过无数次,但可能难以完全掌握的东西:工程同理心。我相信同理心是可以加强的一种能力。具体来说,以下行为可以极大地帮助提高您的同理心技能:

  • 阅读来自不同文化的开发者撰写的技术博客文章。
  • 观看在与您居住国家/地区不同的国家/地区举行的会议的技术讲座。
  • 如果您掌握一些其他语言,请尝试用该语言阅读新闻。这将使您了解作为开源领域的非英语母语人士是什么感觉。

这些技巧将帮助您了解来自不同背景的开发者如何思考、写作、说话和分享。随着时间的推移,您将对不同的人处理软件开发的方式产生一种视角和欣赏。

最后的想法

您会注意到,我上面描述的技巧并非专门针对边缘化个人。当您创建一个欢迎和接纳边缘化个人的空间时,您就创建了一个欢迎和接纳所有人的空间。

User profile image.
Safia 是一位充满活力的软件工程师,对社会公益数据科学、智能界面和优质咖啡感兴趣。在 Twitter 上关注她。她是 dsfa 的创始人和无畏的领导者,dsfa 是一家旨在为小型企业提供数据科学服务的专业服务初创公司。

1 条评论

[引用] 如果您对某个请求或评论立即感到恼火或受辱,请稍后再读一遍。如果您仍然对评论的语气感到模棱两可,请要求澄清。永远不要——我再说一遍,永远不要——将一种由您个人心态驱动的语气或意图应用于他人的评论。 [/引用]

措辞优美。我需要把它裱起来挂在墙上……

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.