依赖开源项目的公司离不开强有力的行为准则

  曾经饱受嘲笑和法律攻击的开源软件,如今已成为技术产业中的一股势力。诸如Docker,Hortonworks 和 Cloudera 这些鲜活的例子,证明了与开发者社区合作能够使公司茁壮成长,社区贡献者们能够帮助其核心技术跟上时代,应用最新的功能特性。

  许多软件工程师利用他们的空闲时间为开源项目做贡献,产生出了大量的创新和免费的劳动成果。但是开源技术也有它的另一面,不同于传统商业环境中雇员的错误行为会导致受到惩戒,开源社区中的成员通常没有等同的约束,因为没有“开源人力资源部门”这样的部门去负责管理这些事务。

  来自 Chef 公司的工程师 Seth Vargo 就是一个例子,Seth 负责 Chef 开源配置管理工具的商业化支持,他最近因为收到了某些社区成员的死亡威胁而同时离开了公司和 Chef 社区,仅仅因为他对开源项目做的一些贡献遭到了某些人的不满。

  这种窘境暴露出一个微妙的问题,依赖于开源技术以实现商业成功的这些公司,需要尝试去对那些没有实际控制的开源社区进行合理的管制。

  当公司开始管制开源社区行为的时候,他们会非常谨慎,因为这可能会扼杀创新或导致社区成员质疑这帮公司监工的动机。如果形势开始难以控制的时候,对于公司来说明智的方式是行动起来,让开源人才不要离开,避免紧张升级。

  有一种能够与错误行为斗争并建立起基本秩序的方法,那就是建立一种强有力的行为准则——一组规定了社区内可接受的行为的指导原则。Ada Initiative 是一个支持女性从事开放技术的非盈利组织,针对多起在开源会议中发生的性骚扰和性攻击等严重事件,该组织发展和普及了一套行为准则,以帮助社区成员一致认清不适宜的行为,以及针对一些无法容忍的事情发生后相关的处理方法。

  公司对于其开源社区的法律责任

  专注于开源许可的法律公司 O‘Melveny&Myers 的合伙人 Heather J. Meeker 说,开源项目一直以来是由一些自我管理的技术成员构成,它的产生并不依赖于特定公司和组织实体的发起。

  “开源社区倾向于非常直接了当和畅所欲言的表述他们的观点,当把这一点和匿名留言结合在一起时,带有强烈观点的声音会表现出来,而这在实名制的情况下可能就不会发生。”——Heather J. Meeker,O‘Melveny & Myers

  开源组织的创建例如 Linux 基金会和 Mozilla 基金会,两者均监管着各自的开源技术,他们认为这类项目只有在离开自己的设备才能成功。而现在,其他公司也开始行动起来,承担起类似的角色以开发利用开源社区的智慧。

  出于对法律的考虑,这些开源社区通常会从企业中剥离出来,并且公司喜欢这种方式,Meeker 说。从社团中的法律分离使得开源社区从常见的管理问题中解放出来,这些问题包括专利方面的考虑,因为他们不得不根据会计和其他债务事务进行汇报。

  由于公司对于开源社区没有法律责任,这也使得,公司“只能以道德劝服作为执行权威的唯一手段”,Meeker 说,当社区成员决定制造点小麻烦时,这个问题很容易导致出有趣的窘境。

  收到死亡威胁的Chef公司工程师

  Seth Vargo 后来去了一家做数据中心管理工具的公司 HashiCorp,对于社区来说,他的离职让 Chef公司脸上无光。Vargo 没有详细说明他的忧虑,并且拒绝评论此事。

  Chef 公司开源社区总监 Nathen Harvey 说,曾经 Chef 公司制定了一份类似于行为准则的社区指导规则,其中概述了公司对开源社区所期待的可接受的行为,而 Vargo 事件让公司重新回来更新了条款以帮助缓和未来可能发生的未知事件。

  Chef 公司最初的行为准则包含了行为建议,诸如如何对其他人保持尊重,以及认真措辞以避免自己看起来像个性情古怪的人。

  而最新的草案除了列出一系列不可接受的行为外,还包含了更多处罚措施,并引入了一个新的由律师、巡视官和决策人组成的社区管理团队;该团队的职责是在邮件列表、GitHub 和其他社区成员活跃的地方寻找问题。

  如果律师或者巡查官(Harvey 目前担任此职责)发现了负面行为,全体团队成员会尽全力检查事件发生的环境并找到谁应该对煽动此事负责。如果有必要的话,Chef 公司的 CTO 兼合伙人 Adam Jacob 会来决定下一步怎么做,包括可能会删除该用户在 Chef 社区上的在线空间。

  在该草案实践中,一位社区成员感觉到自己的安全受到损害,这个指导原则看上去更像是强制性的法律。“我们并没有说这是我们的社区准则”,Harvey 说,“我们和社区是一起协作来制定这些准则的。”

  社区自我调节和外部介入的重要性

  Ada Initiative 合伙人 Valerie Aurora 认为,即使一家公司在开源社区上没有法律权力,建立一个委员会以监管社区成员之间的交流也变得越来越重要,尤其要在一个固执己见的文化中制造出礼貌的氛围。

  “许多公司目前采取的是不干涉的方式”,Aurora 提到一些公司为什么认为不能监管太多,“他们会停止为自由生产价值。”

  Rackspace 软件开发者 Alex Gaynor(Python 软件基金会总监,Django 软件基金会前任总监,OpenStack 的开源贡献者)认为,Django 开源项目极大的受益于采用仲裁者授权采取行动的行为准则。

  “嘿,这话在这说不对”,Gaynor 描述了仲裁者需要对行为不端的成员说的话,“你警告后如果他们看起来不当回事,你可以升级惩戒例如临时甚至永久禁言。”

  Aurora 建议公司应该为开源提交者支付一定的费用,让其检查社区中恶毒的行为,因为她相信让某人去免费承担这个工作很困难。

  “我认为有一种道德责任去确保这些社区不是毒气制造组。”——Russell Keith-Magee,Django 软件基金会主席

  在 Chef 公司的例子中,Harvey 主张他们的仲裁者做这件事是因为热爱,他说:“在 Chef 公司的现实情况是,没有一个人的工作是去监控 IRC,没有人是付费去在 StackOverFlow 上面回答问题。在 Chef 的人们做这些事是因为他们关心社区和项目。”

  行为准则是否有效?

  现在依然需要时间去检验 Chef 公司新制定的行为准则是否能防止类似 Seth Vargo 这样的事件再次发生,但是对于 Django 项目和 Ada Initiative 这样的组织来说,包含相关强制性政策的行为准则已经避免了一些特殊情况的爆发。

  在 Ada Initiative 发展出他们的行为准则后,Aurora 表示她看到女性参与开源会议呈现上升势头,这些女性感觉和之前相比,她们在各种会议过程中不再缺乏安全感。同时在这些会议中的侵犯行为(例如有人在 PPT 里插入色情图片)也出现了下降。

  如果对于管理开源社区有一件事可以确定的,那就是这不是一个轻松的工作。甚至 Linux 领袖 Linux Torvalds(他自己也因为攻击性评论成为争议的目标)最近承认他在他自己的 Linux 社区中也犯过错误。

  “问题倾向于离间用户或开发者,并且我非常擅长这个,” Torvalds 在 LinuxCon Europe 2014 上提到,“我使用措辞强烈的语言,但是再说一遍我不打算修正任何一条语句。”

  开源社区中强烈的个性和缺乏任何法律的保护,介入开源项目的公司可能得到的不仅仅是约定中的内容,甚至会有纠纷甚至死亡威胁的发生。但是也许在这种情况下,有一个行为准则以及一些强制性规范应该能在事件发生之前就缓和并处理掉。

  “Chef 社区不是一个实体,它是一群人的集合,”Harvey 说,“行为准则可能是能够将我们和软件本身绑定在一起的最强的东西”。

  所以这件事给我们上了一课,天底下没有什么东西是免费的,包括从事于开源项目的劳动。如果你是一家想要涉足开源社区的公司,将自己从任何法律责任中分离出来固然是好事,但是这并不意味着当一些不走运的事情发生时你可以完全免责。当社区中发生坏的事情却无人来管的时候,社区里那些积极贡献的成员们将远离这里,关于项目的负面影响将导致没有软件工程师愿意再参与进来。那就只能跟你的免费创新说再见了。

  “一个负责人的公司实体无法撇清所有责任”,Keith-Magee 说,“市场会容纳那些为自己决定负责的公司。”本文由“www.no1nk.com”编辑

时间: 2024-10-09 10:30:21

依赖开源项目的公司离不开强有力的行为准则的相关文章

为什么依赖开源项目的公司必须坚持强有力且可实施的行为准则?

原作者:Jonathan Vanian 原文链接:https://gigaom.com/2014/10/25/why-companies-that-rely-on-open-source-projects-must-insist-on-a-strong-enforceable-code-of-conduct/ 曾经饱受嘲笑和法律攻击的开源软件,如今已成为技术产业中的一股势力.诸如Docker,Hortonworks和Cloudera这些鲜活的例子,证明了与开发者社区合作能够使公司茁壮成长,社区贡

Git,SVN的优缺点及适合的范围,开源项目?公司项目?

使用git不久,粗浅理解: 1)适用对象不同.Git适用于参与开源项目的开发者.他们由于水平高,更在乎的是效率而不是易用性.Svn则不同,它适合普通的公司开发团队.使用起来更加容易. 2)使用的场合不同.Git适用于通过Internet,有多个开发角色的单个项目开发,Svn适合企业内部由项目经理统一协调的多个并行项目的开发. 3)权限管理策略不同.Git没有严格的权限管理控制,只要有帐号,就可以导出.导入代码,甚至执行回退操作.Svn则有严格的权限管理,可以按组.按个人进行针对某个子目录的权限控

[转]Git,SVN的优缺点及适合的范围,开源项目?公司项目?

使用git不久,粗浅理解: 1)适用对象不同.Git适用于参与开源项目的开发者.他们由于水平高,更在乎的是效率而不是易用性.Svn则不同,它适合普通的公司开发团队.使用起来更加容易. 2)使用的场合不同.Git适用于通过Internet,有多个开发角色的单个项目开发,Svn适合企业内部由项目经理统一协调的多个并行项目的开发. 3)权限管理策略不同.Git没有严格的权限管理控制,只要有帐号,就可以导出.导入代码,甚至执行回退操作.Svn则有严格的权限管理,可以按组.按个人进行针对某个子目录的权限控

开源项目【commons】一 || 开发文档

目录 1.项目地址 2.项目简介 3.项目结构 4.commons-api功能列表 5.commons-core功能列表 6.学习交流QQ群[883210148] 1.项目地址 工具类-commons[Git地址 https://gitee.com/ying_kevin/commons] 2.项目简介 本项目构建目的主要是致力于开发一套适用于微服务架构体系的公共类封装,解决各微服务间的代码重复利用,规范微服务项目中API接口规范,约定代码规范性.项目的完善是一个不断迭代更新的过程,同时也欢迎各位

开源项目Docker,是否需要一个开源基金会?

开源容器虚拟化是否需要第三方基金会,Docker的发起人Solomon Hykes指出了自己的观点. 开源项目Docker容器虚拟化工程开始于2013年3月,并且已经发展成为产业界最受大家讨论的虚拟化技术. SolomonHykes启动了Docker项目,当时Hykes正在运作一个像dotCloud(一家PaaS平台的服务供应商)一样有名的云平台服务公司.Hykes是Docker的首席技术执行官,并且dotCloud业务已经被出售,该公司曾经是Docker背后领先的商业赞助商. 开源软件在某些情

【我整理的java开源项目】

摘要: 1. 整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考. 2. 如果你觉得好但是我没有列出的开源项目请告诉我,方便我添加到列表里. 3. 如果你发现信息描述有误请联系我,我会及时修改或删除. 开源项目的繁荣离不开你我的参与 下面提供一些跟开源相关的文章链接: 1. Apache的开源软件列表 http://www.oschina.net/project/apache 2. Java开源Apache项目 http://www.open-open.com/56.htm 3

大公司都有哪些开源项目~~~阿里,百度,腾讯,360,新浪,网易,小米等

红色字体是现阶段比较火的 ---------------------------------------------------------------------------------------------------------------- 奇虎360 https://github.com/Qihoo360 1.MySQL中间层 Atlas Atlas是由 Qihoo 360,  Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQ

中国开源项目哪家强?看看阿里,百度,腾讯,360等都开...

奇虎360 开源github地址:https://github.com/Qihoo360 1.MySQL中间层 Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性.目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条. 主要功能:* 读写分离* 从库负载

Android 开源项目android-open-project开发工具及测试工具解析 开发效率工具,开发自测相关,测试工具,开发及编译环境,其他

主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Parceler 通过注解及工具类自动完成实体类 Parcelable及值传递 项目地址:https://github.com/johncarl81/parceler Json2Java 根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能 项目地址:https://github.com/jonfhancoc