5a74c09e0b15698f3fc29cd6abe0562a.gif

86f086f1ecb0f676083a710d11c7672e.jpeg

| 转载自:ALC Beijing

| 编辑:董静雯

| 责编:沈于蓝

| 设计:周颖

       2ef89f0d30824a8fce587658d0c53cea.png         

Danese Cooper 作为一位直率的自由与开源软件的活动家,已经有20多年了。在过去20多年里,她一直在为 FOSS 运动的福祉和健康发展工作,如维基百科的 CTO、Sun 的首席开源布道者、英特尔的开源战略高级总监以及 Drupal 协会、硬件基金会和开源计划的董事会成员。七年前,在运行 PayPal 的 OSPO 时,Danese 开始思考、谈论和撰写有关内源的想法,她主张将内源作为持续发展 FOSS 运动的下一阶段。Danese 现在生活在爱尔兰西部,是美国 501(c)3 非营利组织InnerSourceCommons.org的主席,同时也在 DaneseWorks, Ltd 提供开源(和内源)相关的咨询。

下面是她在ApacheCon Asia 2022 做的主题演讲 “内源与Apache之道:如何学习开源”的文字记录稿。 她在这次演讲中将分享她以Apache之道创立“内源社区”的原因和方法,以及不同领域的新一波对开源充满好奇的组织是如何通过内源的实践来帮助他们实现自身工程文化的现代化,并为他们真正参与开源做好准备的。

       75b2a541624284d7bedbcc46072b8136.png         

早上好。我的名字叫Denise Cooper,自2005年以来我一直是Apache软件基金会的成员。近年来,我在 ApacheCons 上做过多次主题演讲,这是我第一次在 ApacheCons Asia 做主题演讲,不过我确实参加了第一次 ApacheCons Asia。

我在这里要和你们谈谈一个活生生的开源实例,一个活生生的开源原则,作为Apache软件基金会成员的一部分,我们一起学习成长。很明显(上图)是OSI的标志。Apache 中有一些人不是很喜欢 OSI。我帮助运营OSI十年了,所以我非常相信OSI 提供了一个制定(开源)许可协议标准服务,稍后我们会讨论这(选定开源许可协议)是否足以创建开源项目。

 950eed5e910e53dbdd4d94fbb82aae1f.png

我从 1999 年开始从事开源工作。就在那一年,我受雇于SUN微系统公司,开发Java的开源软件。因为 Java 是一种为网络而建的语言同时Apache 对 Java 很感兴趣,当然并不是所有的 Apache 里的人都这样想。Apache中的一些人认为在Apache软件基金会中如此强调Java是不合理的。

实际上 Apache 软件基金会在 1999 年才成立,而在那之前 Java 已经出现好几年了。因为我参与了Java(推广),我最终拥有了一大群有名的朋友,他们中的一些人就在下面这张图中。

       039bff1d593b5ce92454df267bebc986.png       

这是创始人们在 ApacheCon 上的一张合照,我想这是 2019 年Apache北美峰会上拍摄的照片。那一年对我们来说意义重大(Apache软基金会成立20周年)。所有这些人都是非营利组织 Apache 软件基金会的开创者,他们中的两个,中间的两个,Roy T. Fielding和Brian Belindorf被公认为Apache的联合创始人。

剩下的几个人也都加入很久了,大家可能认出了 Jim Jagielski。还有一些你可能不认识的人,但相信我他们从一开始就在我们身边。当他们创立 Apache 软件基金会的时候,发生了一些有趣的事情。他们编写了关于如何做开源的指南,Roy,穿蓝色衬衫的那个,在他的硕士论文中研究了 Apache Way ,以及 Apache 是如何运作的。

他写了一篇非常精彩的有关 Apache Way 机制的论文,对我们今天理解 Apache Way 依然有帮助。后来他的博士论文是关于 Restful API 。这篇论文让他闻名于世,但他的第一个工作是思考大规模的同行评议并行编程的方法,在互联网上规模化开发,这就是Apache 之道,试图让Apache的项目工作得更好。

我的开源之路源于这些人的指导,因为在 1999 年我还不是一个与开源相关的人。但我当时负责一个非常受欢迎的项目,那就是开源 Java。有些人,尤其是 Brian,强烈认为这应该发生在Apache 中。所以我花了很多时间和这些人在一起,他们对我影响很大。

     d624de33893ce356182b1ad0d7b8dc6e.png         

例如,开源不仅仅是一种许可证的想法。再说一次,我以前在 OSI 工作过,在我成为Apache 成员的那段时间里,我确实认为这是 OSI 通过弄清楚开源定义是如何在许可证中表达自己的想法, 来向更大的开源世界提供的真正的服务。如果你愿意,你可以选择不被OSI批准的开源许可,因此,你不能称它为OSI认证的开源许可协议,也不能获得开源光环效应。

我们所做的大部分工作,是努力不让每个开源工程师都成为一名律师。非常不幸,我们现在还没做到,我们中的很多人都成为了律师事务的专家。但是 Apache 有一个深刻的认识,它不仅仅是许可证。

Apache 软件基金会下所有项目都是在同一个许可证下授权的,即 Apache 软件许可证 2.0,在那个时代环境下,我们在那个许可证上花费了很多时间。我参与了创建 2.0 版本的一小部分工作,但许可证只是一个开始。在开源许可证下发布代码只是开始。开源不是个动词,但我说的开源必须是一个动词。

       27cf090f03480a33fe49733ed7d89c95.png        

Apache 还了解了很多大公司的情况,以及他们愿意结合实际在做的事情,以获得良好的营销计划。当 Sun 开始开源 Java 时,他们并没有使用OSI认证过的开源许可证。我同意OSI 认为 Sun 的许可在遵循开源定义的情况下还不够开放,这也是我加入 OSI 的原因之一。在 Sun 工作的六年里,我非常努力地推动他们朝着更好的方向发展。

即使在今天,在开源世界仍然会发生的一件事是:有些公司与他们的运行方式相差甚远,至于他们不了解如何开源,但他们想因此获得开源的光环,因此他们把开源项目办公室放在了市场部门。开始从本质上放大那些无关紧要的行为来配合市场的宣传,他们想当然地把项目开源包装成惊天动的市场宣传活动。

但真正的开源并不是这样的。在 Apache 基金会成立之后的很长一段时间里,有一些大公司试图使用 Apache 这个名字,他们通过简写等方式拉近和 Apache 的关系,以展示他们在做开源的工作。但他们实际上是在用 Apache 的名字卖万金油。

这也是Apache软件基金会孵化器成立的原因。因为 Apache 意识到,如果 Apache Way 是正确的做事方式,它就有责任让这些正在孵化的项目意识到这一点。如果我们要从非开源贡献者那里获取代码,我们就有义务教他们如何以我们的方式工作。这样整个社群可以遵循相同的做事方法一同前进,这就是孵化器成立的原因。

现在仍然有很多公司试图向你推销他们的开源程序,但是他们做的离真正的开源有很大的距离。如果他们不参与 Apache,他们怎么学习呢?  我刚开始为 Paypal 工作时脑子里想的就是这些事情。

我所理解的开源的原则如下:

       c0502ee30319ef37fc072ec0835add4b.jpeg         

首先,就像这张照片展示的,是透明度。它可以是倒置的透明,你不需要解释它为什么是颠倒的。你只需要发布你所谈论的事情,让那些试图与你一起贡献的人通过阅读你的所言所行来理解你的观点。

在这一点上,这种透明与传统的软件开发方式是如此不同,这是它独有的。现在仍然有很多公司害怕开源。然而,早在2000年,就有一些最讨厌开源的公司已经转变了态度,尤其是微软。微软实际上雇佣了大量的Apache 贡献者,来帮助他们弄清楚如何让 Azure 成为一个真正的开源项目。

在这个过程中,大公司一直把开源当作边缘活动,就像大多数公司一样,直到他们真正尝到一些甜头。他们非常有效地使用了内部开源来培训,让大家学习开源正确方法。其他没有采取行动的人,当大家开始真正推广开源的时候,他们不再是我们的敌人了。这是我从事开源24年来意识上发生的最大的翻天覆地的变化。

但我还从 Apache 中学到了众多原则之一就是公平竞争。如果没有公平的竞争环境,就无法实践 Apache之道。有几个失败的例子很清楚地展示了这一原则(公平竞争):

我要提到作为微软的有竞争力的产品的OpenOffice,因为我参与了项目的开发。但这个项目并没像真正的开源项目那样运作起来。虽然项目即有用户社群,也有贡献者社群,但是 Sun 的工程师们大多, 用户的贡献没有合入到项目产品。为我们奋斗了很长时间努力改变这种局面。直到 Oracle 收购了 Sun,那群潜在的贡献者在做贡献的过程中遇到了这么多的麻烦,他们看到 Oracle 无法正常维护项目,所以他们 Fork 并创建了 Liber Office。如果您现在正在使用 Open Office,Liber Office是一个比Open Office更好的版本。而 Apache Open Office 是一个参考实现,但如果您真的想完成工作,它并不是最好的选择。我个人认为,这是个问题,我和 Apache谈过很多次,我希望情况最终会好转。

但与此同时,你想要创造一个公平的竞争环境,这意味着贡献者和你是平等的,你必须认真地审查并通过他们的提交以及你自己的提交。

作为 Apache Way 的真正核心部分--可审计的对话轨迹。你不会试图通过 Apache 孵化器来推动你的议程。Apache 很久以前就决定,所有的事情要在电子邮件列表里中讨论,那时电子邮件还是互联网上唯一的交流方式之一。如果某个决定从来没有 Apache 电子邮件列表中进行讨论,没有出现在邮件归档中,那么即使有很多人参与了决策过程,那这个决策在Apache软基金会就没有真正发生。

Apache Way 约定了你最后要做的事情,一旦你准备合并一个更改,或准备基于你与其他 Apache 的人面对面或在邮件之外的对话,要开始一个新的方向。你们应该对彼此说的最后一件事是“好吧,是谁把这个放在邮件列表上的?”

因为如果你不把它写进邮件列表,它就像永远没发生过。

它如此重要的原因是它允许社区中一群思想相似的人,在他们需要的时候,异步地消化信息,换句话说就是,当他们需要的时候,可以知道某些决策的相关信息。这还能让那些立即阅读所有内容的人保持警惕,他们可以说,“不,等一下这不是好主意,我不支持。”在 Apache 中,任何人都可以给出一个令人信服的理由来撤销更改。

如果你所做的一切都是为了营销,那么这些开源原则是很难学习的。

事实上,如果你真的想完成工作,它们并不容易学会。这就是为什么有些项目在孵化器中停留了很长时间,而有些项目则顺利通过了孵化过程。因为这些孵化毕业的项目从一开始就已经在艰难地实践这些开源原则并乐意做出转变。

因此,Apache 之道的主要特点是,开源一种社群化的协同开发的核心方法集,它允许一大批紧密协作的开发人员可以集中精力做非常、非常有价值的工作。

我认为,在这一点上,Apache 软件基金会的输出足以证明 Apache 在软件开发方面所做的尝试,这比任何对方法和方式的质疑更有说服力。

我现在要花一点时间来解释这些具体的方法

      a5e9504470173de3826c8a499c6a9d00.png         

顺便说一下,这是张板球投掷运动的照片。

我原来住在爱尔兰,现在我在2017年搬了家,在美国以外的地方生活,回顾美国的开源和欧洲的开源是非常有趣的。欧洲现在在他们的开源努力上取得了很大的进步,所以,现在是我来这里的好时机。

       960d57ea4eccd0f3dccfb73711d81ab9.png                         

好的,首先是理性开明的利己主义原则。大家是因为共同的兴趣(维护Apache web服务器)开始创建 Apache 软基金会。如果人们没有从这些互动中得到他们需要的东西,他们就不会待在这里。我们正在努力建立大的社群,让我们来看看这些自我维护的兴趣,看看如何使自己目标成为成为社区都公认的目标。这意味着如果你得不到你需要的东西,你就不会回来了。如果你需要的是社群,即使你因为疫情而不得不独自坐在房间里,人们依然可以交谈,谈论你关心的事情。

如果你创建了一个捐赠到 Apache 开源项目,你可能会有兴趣让更多人帮你维护它,或许是为了得到修复项目缺陷的补丁,也有可能是为了展示你的能力而让你获得高薪的工作。

我记得有一次和一些自由软件狂热者的对话,终于有人听到Apache人说,因为对他们来说,我觉得承认这一点在意识形态上并不纯粹,自己在交易中有所收获是不纯粹的。但Apache一直认为要在给予与获得直接寻找平衡,就像竞争环境必须是公平的。

所以我认为这也是Apache的独特见解,以及Apache运作的方式。

efa1f942b275e26afede45cbc50923e1.png

另一个是必须有辅导关系。现在,Google Summer code经常被认为是辅导很重要的理念。但实际上,如果你看一下时间,Apache孵化器可能是谷歌代码夏天的前身,你的孵化团队中必须有两个人已经是 Apache 的成员,并且已经知道 Apache Way 的工作方式,这样他们就可以监督和指导你在孵化器中的行动,让项目做到有机的开源,而不是仅仅依靠你的财富和你的能力来投入资源来让事情按照你的方式进行发展。很多非常大的公司需要注意到这一点。

另一个部分是辅导的重要性。我自己也曾因为答应作为导师指导别人却没有投入很多时间而感到内疚。在Apache,你会因此被点名,也许还会被取代为导师,这是一件好事。Apache Way认为不是每个人都能每天付出最大的努力,需要避免贡献者燃尽的问题, 让项目成可持续发展的开源开源。

如果你不能参与Aapche软件基金会成员会议,你可以签署一份代理协议,这样社区就可以继续前进。如果你改变了,你准备撤销代理协议。

如果社区里有人告诉你保持一切都是透明的不是一个好主意,那是因为他们没有告诉你,这又有可能会破坏他们自己不公开的的商业主张。导师机制可以让我们提前识别这种冲突,帮助我们建立起跨越地域的大型团队开发软件的方法。

       c0c28e04a3f6f89cd8fef53a5da3f31f.png

第三,包容。Apache 直到最近才提到包容。作为 Apache 最初为数不多的女性成员之一,我们很久以前就开始讨论包容了,但在 Apache,大多数人认为公平的竞争环境,自然而然就已经包括了包容。但根据我们的经验,并不一定适用于女性,所以随着时间的推移,人们做出了各种努力,试图为女性创造一个独特的声音,现在的 ApacheCon,有女性午餐,我们有非常杰出的女性参与到 Apache 软件基金会的领导中,这真的很有帮助。

但我在这里使用了包容这个词,因为我认为 Apache Way 的许多用户从根本上讲都是关于包容的。例如,就像他们之前说的,公平竞争,你要做什么来创造一个公平竞争的环境,让那些知道所有代码的人不是房间里唯一的声音?

指导是其中的重要部分,但还有一些其他深奥的东西关于如何在公平竞争的环境下运作合适的项目。其中一条是,不要试图成为专家。第一次问问题的时候。需要有足够了解代码的人来回答些问题,以便让新的社区成员能够快速跟上并迅速融入其中。你希望所有这些问题都被记录下来,所以当一个问题第一次被提出时,自然应该有一个导师仔细地、周到地、详尽地回答这个问题。

让做亲自做这件事的人来操盘是明智的选择。但在问题被问出来并得到回答之后,你千万不要急着再回答这个问题了。如果另一个人问同样的问题,或一个非常接近的问题,你的工作是坐下来,提供一个公平的竞争环境。让听到你回答的人成为第二个提问者的专家。你经常这样做,他们就会在整个组织或项目中积累专业知识。通过允许人们消化,然后成为专家,成为导师,将导师的角色在一群乐于助人的成员中一步一步向下传递。

这就是包容,这从一开始就是 Apache 的基础。我认为 Apache 的包容还有一些其他的东西。我之前说的的电子邮件的持久化存档证明了,(在Apache)没有在邮件列表发生过的事情就没有真正发生过,这个存档主要是有用的,让人们不用花专家的时间就可以继续前进。他们可以通过阅读邮件归档来了解以前发生过的事情。

而这一点正在逐渐消失,即使在Apache项目中,因为现在有一个趋势,人们试图使用Slack。之前我们总是在邮件列表上讨论问题,同时我们也使用IRC,但IRC的讨论记录被仔细地记录下来,这些日志被发送到邮件列表中记录归档。所以,我们以一种任何人都能读懂的方式整理了关于这个项目的所有信息是一件非常重要的事情。每个人阅读英语的速度都不一样,确保人们有足够的时间消化信息是很重要的邮件列表确实做到了这一点。所以,对我来说,这是Apache方式的三个主要部分,它们对教导新人如何进行开源很重要。

       6738ccf6ef4a0fd392cd00b767cbd656.png        

我在2014年开始使用一个叫做 INNERSOURCECOMMONS.ORG 的东西。Innersource 这个词不是我发明的。这个词是由Tim O'Reilly创造的,当时他和Brian Valinar创办了一家名为 clam.net 的公司,旨在帮助公司学习如何做开源,包括公共开源和在公司内部使用这种方法。

InnerSource 是 Tim 用在公司内部的术语,但它已经很久没有被使用了。当我在2014年开始谈论它的时候,在某种程度上InnerSource改变了我的事业。因为大多数开源活动家甚至不会碰它,因为大家想生产公共开源。但我有真实的感觉 我们需要在防火墙后面去进行开源实践, 基本上是为那些永远不会给 Apache 任何东西的公司提供更多的孵化器。我们可以用另一种方式来传授这些经验,那就是 Intersource Commons。   

8d57f1e9133dac333a05ebe959665eeb.png

这些是目前正在讨论 Innersource 实践的公司。如果你仔细观察 你会发现很多公司也是 Apache 的忠实粉丝。也许很多人参与开源已经有很长时间了,但是有些人才刚刚接触开源。他们都专注于学习如何通过改变他们公司内部的工程方法来实现开源,以尽可能地匹配开源的工作方式。他们中的一些人甚至把它作为允许公共开源的前导,在你可以开放你为大众写的代码之前,即使我们已经批准把代码作为开源项目发布,你必须首先证明你知道如何建立一个公平的竞争环境,你知道如何建立包容,你知道开明的利己主义是重要组成部分。你知道你必须在公共场合讲话,这样人们才能从归档材料中快速了解事情的上下文。

很多大公司都在学习这样做, 我为什么想这样呢?

dd0b1574e279686a6c9561c8bed7a4d1.jpeg

是这样的,我希望这样是因为我相信大多数工程师仍然没有以开源的方式工作,这是个问题。这个可怜的家伙在盐矿里 还在传统方式孤立地制造盐,没有任何信息共享。这与代码重用无关,是关于等级制度,并试图在没有良好沟通,并且只允许非常特定的工程师接触特定的代码片段。

我觉得如果你同意这仍然是人们工作的主要方式,并且你想看到更多的工程师知道如何以开源的方式工作,这样你就可以在你的公司雇佣他们,或者他们可以在非常重要的开源项目中成为维护者,而这些项目现在需要更多的维护者。

我们不能通过学校来培养维护者,因为这样做太花时间了。我们有很多优秀的工程师,但他们不被允许以开源的方式工作。我们可以通过长篇大论的理由说服公司,让大家在工程上做得更好,更灵活,方式实现开源。这就是我开始创建 Innersource Commons 的真正原因。

您可以通过访问 Intersource Commons 参与进来。你会发现一些非常非常友好和乐于助人的人,你会看到很多关于 Apache 和 Apache Way 的内容。

a664b389f477f91867fa8f30a060415e.png

所以,下次有人告诉你开源很可怕,可能是因为它由未洗刷的大众编写的,

f9e84073b9ea2c9c44dbdeb1513d8290.png

或者说是大家都在讨论开源组件安全的问题。

       d1c374ceed6b866a86211cb78ec69c61.png         

或者是要构建社群这件事太难了。

2f15dff99533eb93d675b418b0c24620.jpeg

我认为作为Apache会员,或者想成为Apache会员的开发人员,都在潜心教人们如何进行开源。通过在Apache孵化器工作,帮助人们理解 Apache Way,或者进入 Innersource Commons 并说“我来自Apache,我知道怎么做”。“我能回答你们的问题吗”这些都是传播 Innersource 的很好的途径,还有帮助代码社区成为每个人开发的方式,不是吗?

好了,非常感谢你抽出时间来聆听这次演讲。

我知道这个主题演讲会被翻译成很多语言,所以希望它能被发布出来,并且附有多语言字幕。很抱歉我没能亲自参加这次大会,我期待着能再次去亚洲旅游。如果你在夏天结束的时候来到爱尔兰参加欧洲 Linux 基金会开源峰会,我们将有机会见面。最后你也可以在twitter通过@DivaDanese与我联系。

非常感谢您的宝贵时间。

相关阅读 | Related Reading

086a72a33fa67d737a6a4d8782720dba.jpeg

16个分论坛出品标准大揭秘,期待你的申请!

488b832d7dc31a72a277fceb7a99977a.jpeg

COSCon'22主论坛来袭 开源站在十字路口

118216a46125aa2a39a735e34479347a.jpeg

线下 Meetup 预告|从原理到实战,详解 Database Plus 的互联网最佳实践

开源社简介

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联合体。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,以 “立足中国、贡献全球” 为愿景,旨在共创健康可持续发展的开源生态,推动中国开源社区成为全球开源体系的积极参与及贡献者。

2017 年,开源社转型为完全由个人成员组成,参照 ASF 等国际顶级开源基金会的治理模式运作。近八年来,链接了数万名开源人,集聚了上千名社区成员及志愿者、海内外数百位讲师,合作了近百家赞助、媒体、社区伙伴。

8b1241943d61bec43fcfdc809a3e32c4.gif

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐