在All Things Open
2015上,GitHub的开源项目负责人Brandon
Keepers给出题目为“open
source principles for better engineering
teams”的报告。在此之前,OpenSource.com的Robin
Muilwijk对其进行了采访。
Brandon就其与开源的缘分、当前工作的职责、GitHub及员工与开源的关系等方面的问题一一进行了回答。

对企业和开发人员来说,开源贡献具有重要意义。它能帮助企业建立自己的开源标准,同时能够吸引多样化人才,可以帮助开发人员丰富开发经验,提升个人能力。但事实上,如此明显的优势并没有吸引更多的开发人员从事这个行业。

在今天的数字世界中,开源软件几乎为现代社会和经济的全部赋能。了解构建,维护和使用这些开源项目的人员对于关心开源的可持续发展的任何人,以及依赖于这些项目的关键服务和技术网络都是至关重要的。这项调查的目的是为有关开源社区的的一系列主题提供高质量的数据,并为今后的研究提供信息。

Brandon简介及其与开源的缘分

开源软件可能会成为主导未来驱动云计算、人工智能等的软件,但目前只有一小部分开发人员负责主要的代码编写。虽然对于任何固定的开源项目来说,绝大多数核心贡献都来自于一群忠诚的开发人员,但是未来消费开源的趋势可能会转变为编写开源程序。

本开源调查是GitHub的一个开放数据项目,合作者来自学术界,工业界,以及开源社区。

在2011年加入GitHub之前,Brandon曾是设计speakerdeck.com、gaug.es和harmonyapp.com的五人团队之一。之后,他曾经在GitHub参与过GitHub
Flavoured
Markdown、通知、wiki等内部工具的开发。目前,Brandon主要负责GitHub开源相关的工作。其具体职责包括帮助公司和社团克服开源方面的难题、寻找凸显其他社团成果的方法以及为GitHub建造更好的角色模型等。

这看起来只是时间问题。

概述

Brandon表示,开源对其作为软件工程师的成长非常关键。他学习了如何利用开源语言进行编程,尝试了利用开源库和框架来设计应用程序,并知道了如何利用开源的思想来编写软件。可以说,Brandon的一路蜕变与开源密不可分。

开源无限制,但开源贡献有很多限制

GitHub与来自学术界,工业界和开源社区的研究人员合作,设计了这个调查,收集了关于开源软件开发实践和社区的高质量、最新数据。

GitHub开源项目负责人的职责

开源贡献者的职业收益很可观,但令人惊讶的是参与开源贡献的人并不多。根据Stack
Overflow最近的
一项调查显示,仅有12.4%的开发者每月至少贡献一次,另有23.1%的开发者表示他们每年至少贡献一次,但还达不到每月一次的程度。

数据来源于GitHub.com上超过3800个开放源代码存储库的5500名随机抽样调查对象的回答,以及500多个来自其他平台的非随机抽样调查的回答。

谈及该问题,Brandon首先提到了GitHub在开源方面的影响。作为一个影响力很大的网站,GitHub聚集了全球的工程师来进行开源方面的
努力。该公司一直在努力维护一个稳定、健康发展的开源生态圈,包括降低参与门槛来提高开源的吸引力、为初始社团提供帮助以及增加开源的多样性等。因此,作
为GitHub的开源项目负责人,Brandon需要为很多项目提供贡献、编写流程自动化的代码、与来自不同社区的成员进行沟通以提供更好的帮助以及准备
/参与各种会议等等。

图片 1

调查的结果是一个有关使用、建立和维护开源软件的用户的态度、经验和背景的开放数据集。

GitHub自举行为的意义

接受调查的开发人员中,有80.2%的人表示他们将编码作为业余爱好。虽然有孩子的开发人员不太可能花时间编写代码,但仍有很大比例的开发人员在空闲时间编写代码。那么为什么他们不选择为开源项目做贡献呢?

深入了解

Brandon认为,利用GitHub来构建GitHub的行为意义非凡。它让团队可以充分了解GitHub的优势和不足,让研发人员更加了解客户使用产品的方法和感受、更愿意倾听客户的反馈以及不断把积累的经验应用到产品中。

Mathew
Lodge指出,开源项目并不那么欢迎开发人员的贡献:“任何开源项目都不欢迎陌生人的一次性贡献,而且他们的贡献被接受也有非常大的困难。”换句话说,为开源项目贡献的权限并不那么容易获得,而且开发人员可能不愿意花费太多业余时间说服项目维护者,以获得为开源项目贡献的权限。

本年度的调查包含50多个问题,涵盖了广泛的话题。以下,我们摘取了有关社区的可执行度最高,也最重要的一些见解。

GitHub工程师与开源

开源项目维护者不愿意接受一次性贡献并非没有道理,正如 Mark
Callaghan所强调的那样:“即使我了解开源贡献者,也会对他们的一次性贡献保持警惕。”

下文的数据仅包含来自GitHub.com上的开源存储库的随机样本。百分比是四舍五入的,可能总和不是100。

Brandon表示,作为一个诞生于开源社区的网站,GitHub及其工程师与开源形影不离。他们不仅仅了解开源的概念,更是经常以开源方式进行工
作。在公司内部,工程师参与的所有环节都是透明的。无论是代码审查、系统更新还是产品问题诊断,任何工程师都可以看到他所关心的内容。以公司的定制化聊天
室Hubot为例,它帮助工程师部署代码、确定参与人员位置、诊断位置等等。公司的所有员工都可以编写并部署脚本来让Hubot拥有新的技能。

此外,Ross
Gardler表示,开源贡献的最佳方案是是开发共享组件。数据显示,开发人员的大部分时间都花在了规划、粘合代码、测试、协调上。有时还要说服项目维护者自己的贡献是有价值的。换句话说,开发人员贡献的每一行代码都需要进行大量的幕后准备工作。

文档很重要,但经常被忽视,也是建立包容、易于使用的社区的一种手段。负面的互动不常见,但很突兀,对项目的活动有影响。开源代码是全世界可使用的,但相比受众群体的广泛程度,其贡献者相对不那么广泛。开源的使用和贡献通常是在工作中发生。选择软件时,默认选开源软件。文档很重要,但经常被忽视

良好工程师团队的秘诀

如果你是靠写开源软件赚钱的,这并不是什么大问题。然而,大多数人只是将其作为业余爱好。

文档有助于指导新用户:如何使用项目,如何贡献,使用和贡献的条款,以及社区的行为标准等。改进文档是回馈开源的一个很好的方式。

开源项目所面临的一个很大局限就是参与人员的地域分布广和工作时间不统一。在这种情况下,成员之间很难进行面对面或者及时的消息沟通。但
是,GitHub中的很多项目依然取得了成功。Brandon认为,这其中的最大秘诀就在于独特的沟通方式——透明、参与和合作。透明保证了代码及其中间
流程的可见,而参与使得参与人员能够明确项目的进展和目标。最后,参与人员的合作有利推进了项目的进展。

“没有时间”和“免费贡献”

93%的受访者表示,不完整或过时的文档是一个普遍存在的问题,但60%的贡献者表示很少或从未对文档做出贡献。当你遇到文档问题时,请发起一个
pull quest
来帮助改进文档。许多人在工作中参与开源,因此对使用条款的信赖至关重要。毫不奇怪,到目前为止许可证书对用户和贡献者来说都是最重要的文档类型:64%的用户认为开源许可对他们决定是否使用该项目非常重要,67%的用户认为在决定是否提供贡献方面非常重要。文档对创建包容性的社区有帮助。明确说明一个项目的进度的文档,例如贡献指南和行为准则,对在开源中参与不足的群体更加重要。近四分之一的开放社区用户在英语的读写方面不是畅通无阻的。因此在针对项目进行沟通时,请对非英语母语者或读写障碍者使用清晰易懂的语言。

对GitHub贡献者和维护者的建议

虽然开发人员喜欢在业余时间编写代码,但很少有人有足够的空闲时间将其用于真正的开源贡献。正如Drupal创始人
Dries
Buytaert所说的那样,“开源社区经常误以为每个人都可以做出贡献。然而,不是每个人都有足够的空闲时间来进行开源贡献。”
开源社区的不平等使得业余开源贡献人员难以拥有为开源做出贡献的“空闲时间”。因此,在开源社区中实行精英管理的想法有点不切实际。

图1:使用开源时遇到的问题

谈到对GitHub贡献者和维护者的建议,Brandon表示,大家需要加强对开源重要性的认识。现在,基本上所有的软件都和开源软件相关。从使用
的编程语言或者库、运行的服务器、传输数据的网络到访问数据的浏览器或终端,它们都可能与开源有关。可以说,开源已经成为当代软件开发的基石。
Brandon套用Steve
Weber谈及改革的名言说道,软件或许就是推动当今技术革命的蒸汽机,而开源社区的想法比起所产生的代码更具有深远意义。开源已经改变,并将继续改变软件开发的方式。

Tobie Langel也对相关话题发表了观点:

负面的互动不常见,但很突兀,对项目的活动有影响

转载自:infoq.com/cn

开源很大程度上是建立在工程师的空闲时间上的,但是他们并非时时都有空闲时间。那些工作忙碌、需要照顾老人与孩子或者由于住房成本而长途通勤的人们,只是没有时间来做贡献。科技行业的性别失衡已经相当严重:女性只占劳动力的12%至24%,这项数据具体到开源行业中还要更低。

开源社区有来自世界各地的人,因此可能导致冲突。虽然严重的冲突事件很罕见,但开源的公开性质使得负面的相互作用非常突兀。

开源为那些有权参与的人提供了经验、曝光度和平台,它导致了工资和职位得差距扩大化。实际上,GitHub调查中,过半的受访者声称,开源在某些方面对他们目前的角色有非常重要的影响。由于受访者大多为男性,因此很容易看出谁从中受益。

因此,负面影响的可能远不止直接参与的个人。对用户行为提出积极的建议,并迅速解决负面事件,可以增加贡献者的参与和协作。

因此,Langel建议使开源专业化,即付钱给开发人员让他们为开源做出贡献。许多软件供应商已经在这样做,并取得了良好的效果,但在软件的主流用户中,这种情况仍然非常少见。目前还不清楚出现这种情况的原因。Langel认为,一个成熟的开源战略可以帮助公司改善和推动关键项目的进行,丰富其企业文化,并使公司吸引更加多样化的人才。

18%的受访者亲自与其他开源使用者产生过负面的互动,但有50%的受访者亲眼目睹过其他人的冲突。从这些数据我们无法得知,这两个数字的差距是否是因为经历过这种冲突的用户离开了开源社区,或只是因为冲突广泛存在,因此目睹者多。无论哪种,都是受负面互动影响者比直接参与冲突者多,所以快速、礼貌并且公开地解决这类问题,也是在向潜在的目睹者发送了一个信号,即这种行为不是普遍的,而且是不能容忍的。到目前为止,最常见的不良行为是粗鲁言语的,其次是辱骂和成见。不到5%的受访者遇到更严重的负面事件,例如性骚扰或跟踪,经历者不到2%。负面经历对项目健康发展有严重的后果。21%的经历过或目睹过负面行为的受访者表示,由于这种情况,他们停止了对项目的贡献,8%的人变得更喜欢在私人渠道贡献。提供能让人直接解决问题的工具是解决骚扰问题的最有效方法。屏蔽一个用户相比求助第三方来强制处理更有效。要提供给用户能够保护自己的工具。

依靠开发人员个人是无法解决这个问题的,原因是前文提到的“没有时间”和通过开源软件的人不需要解决此类问题。但是,通过开源贡献获益的企业(而不仅仅是消费开源),可以尝试解决开源市场固有的不公平问题。

图2:在开源中遇到的负面行为

相比使用者之广泛程度,开源的贡献者相对不那么广泛

开源为全球用户提供了技术基础。在某些方面,用户群体的多样性甚至超过开源贡献者,但在其他方面,代表性仍存在巨大差距。

提高项目的可访问性能够吸引更多的贡献,确保该项技术提供一整套使用示例和需求,并有助于更好地代表技术工作。

开源的性别不平衡仍然很深刻:95%的受访者是男性;只有3%是女性,1%是非二元性别。女性受访者与男性表示对在将来贡献开源的兴趣相当,但女性更少表示能够实际做到。其他方面则更具代表性:受访者中1%的受访者为跨性别者,7%是女同性恋,男同性恋,双性恋者,无性恋者或其他少数性取向者。26%是移民,16%是少数民族者。女性比男性更容易遭遇不友好的语言或内容,成见和性骚扰。不意外的是,女性比男性更可能直接寻求帮助,寻求帮助的对象更多是他们熟悉的人,而非在公共论坛或渠道寻求陌生人的帮助。尽管陌生人之间的合作是开源最具魅力的方面之一:努力建立一个所有人都感到自己的参与是受欢迎的的社区。一半的贡献者表示,他们的开源工作在他们当前的职业方面有一些作用,或非常重要。开源工作有助于人们建立自己的专业信誉。

图3:对项目来说重要的方面

开源的使用和贡献通常是在工作中发生

开源广泛发生于专业领域。大多数受访者在工作中使用和贡献开源,许多人表示他们的开源工作对于获得当前的工作有重要作用。

不过,多数受访者表示,雇主的官方政策和IP协议对于什么内容,在什么条件下是允许的并不明确。企业通过对员工的开源工作提供补贴,这对开源社区有关键作用,因此制定和传达明确的政策可以鼓励员工更频繁,定期的贡献。

70%的受访者是全职或兼职工作者,其中85%的受访者经常或偶尔在他们的主要工作中以某种方式贡献开源。几乎所有的有工作者至少是偶尔在他们的专业工作中使用开源,65%将贡献开源作为工作职责的一部分。多数受访者表示,他们的雇主接受或鼓励使用开源应用程序和依赖代码库,但有些受访者表示,雇主对使用开源的政策不明确。近一半受访者表示他们的雇主知识产权政策允许他们在未经允许的情况下为开源做贡献,另外12%的受访者可以获得许可来贡献开源。但是,28%的受访者表示知识产权政策不明确,另有9%的人不了解知识产权协议对贡献开源的要求。

图4:与开源相关的雇主政策

选择软件时,默认选开源软件

选择新软件时对安全性的要求较高,大多数用户认为开源软件普遍比专有软件更安全。在稳定性或用户体验方面,开源软件较弱。即使如此,大多数用户都喜欢开源,并总是寻找开源的选择。

开源的相对优势在于安全性:使用任何类型的软件,安全性是最重要的考虑。安全性是我们调查的唯一维度,大多数用户认为开源软件通常比专有软件更安全。

用户还关心的是稳定性和用户体验,但在这些维度上,较少的人认为开源有优势:只有36%的用户认为体验更好,但30%认为开源软件通常比专有选项更稳定。

尽管有这些权衡,用户仍然喜欢开源。72%的受访者表示,他们在评估新工具时总是会寻找有开源的选择。

图5:用户在意开源软件的什么特征

数据

本开源调查是一个开放数据项目。你可以在这里下载数据:

-images.s3.amazonaws.com/open-source-survey/data_for_public_release.zip

本调查的目标

在今天的数字世界中,开源软件几乎为现代社会和经济的全部赋能。了解构建,维护和使用这些开源项目的人员对于关心开源的可持续发展的任何人,以及依赖于这些项目的关键服务和技术网络都是至关重要的。

这项调查的目的是为有关开源社区的的一系列主题提供高质量的数据,并为今后的研究提供信息:

提供高质量的数据,帮助了解有关开源工作,工具和社区的决策。帮助用户,贡献者,维护者和其他利益相关方在动机,经验和需求方面相互理解。有助于更多公众了解现代全球经济所依赖的公共物品供给的一种独特组织系统

文章来自微信公众号:新智元