来自SUSE的特邀文章,最初发表于SUSE社区页面

在《OCTOpod》第一集中,Alan Clark与Thierry Carrez谈论了开源社区:它们是什么,它们如何工作,以及你如何参与。

Octopod

试图定义什么是开源社区可能听起来是一个简单的任务,但它是一个有层次的、细微的集体,有许多移动的部分。Thierry已经在开源社区工作了多年,目前是开放基础设施基金会的工程副总裁。在这一集里,Thierry揭示了开源社区的一些关键特征。我们听到了治理、原则、范围和文档的重要性,并发现每个人,甚至那些不写代码的人,都可以做出贡献。正如Thierry所指出的,这与你的技术能力无关,而是要在你能做到的地方增加价值,并成为社区的一个参与成员。建立一个可持续发展的社区需要努力,但这种透明度和协作使它成为一个值得的努力。

"这真的不是关于代码,这真的不是关于成为一个技术明星。它实际上更多的是关于对他人有用。"

在这里收听OCTOpod 或在您最喜欢的 播客平台 上订阅 !并请与你的朋友分享!

Screenshot showing podcast can be listened on Podcast ios 13, Spotify, Google podcasts, Overcast, Amazon Music, Stitcher and other podcast platform

以下是完整的文字记录。

EPISODE 01

[导语]

AC:我是Alan Clark。我的职业生涯是在企业软件领域度过的,重点是开源倡导和新兴技术。这些天,我是SUSE首席技术官办公室的成员,也就是OCTO的简称。欢迎来到我们的新播客系列,OCTOPod。

第一季都是关于开源的。我喜欢成为开源社区的一部分。我在很多方面都有贡献,从代码到椅子,为网络,为云计算。这包括担任开放基础设施基金会的董事会主席、Linux基金会董事会、Open SUSE主席、开放大型机项目董事会等等。一路走来,我遇到了很多伟大的人。

在第一季中,我将与这些专家中的一些人坐下来。我们将讨论开源的最新趋势和挑战,包括我们最新的报告中关于IT领导者为什么选择开放的结论。我们将讨论如何管理一个社区,开源中的多样性和包容性的重要性,以及更多。

请在您最喜欢的播客平台上或在community.suse.com加入我。

[采访]

AC:大家好,欢迎来到OCTOPod。今天,我很高兴能和Thierry Carrez坐下来,他是我在开源社区认识了很多年的人。我们一起工作了很长时间。他目前是开放基础设施基金会的工程副总裁。

谢谢你今天来到这里,蒂埃里。我们想从一些问题开始,我们想谈一谈关于开源和开源社区的基本情况,它们是如何开始的,它们是什么样子的等等。只是为了让人们了解它们是如何运作的。让我们从真正的基本问题开始。究竟什么是开源社区,什么不是?

TC:谢谢你,艾伦,很高兴来到这里。这听起来像是一个基本问题,但实际上是一个复杂的问题。开源社区的最底层是所有对开源项目有贡献的人,但显然,这只是把罐子踢到了路上,现在的问题是,什么是贡献?

传统意义上,对开源项目的贡献是代码和代码补丁,但这很快就扩展到了非代码活动,如文档或用户体验研究或在项目的持续集成上行走,这是由于更多的人使用它来跟踪一切,不仅仅是代码,还有文档和其他类型的文件和基础设施,以我们的代码和这些东西,但分享你的经验也是一种贡献。

最后,社区延伸到所有公开参与和分享经验的用户,所以最后,社区是所有积极参与开源项目并帮助它的人。

很明显,这个定义对于任何人都可以参与项目的开放领导块项目来说效果很好,而对于单一供应商或开源项目来说,效果就不那么好了,在这种情况下,他们称社区更像是他们的用户和会议参与者的扩展圈子,所以它和我们在一个更开放的开发项目中所说的社区含义不完全一样。

AC:这是个好观点。我想回到这个问题上,因为我认为这是一个非常好的观点,并想深入研究一下,但让我们在这里从不同的角度开始。你认为是什么让人们参与到这个社区中来?正如你提到的,有很多不同类型的贡献,这意味着,我们有很多不同类型的背景、经验和兴趣。是什么让人们来参加一个社区?

TC:我想说他们就像两类事情。有更多经典的利他主义动机,如回馈你正在使用的项目,或参与培养你正在受益的资源的公地,但越来越多的是,我们看到商业意义上的共享创新,如多个组织,把资源放在一起,这样他们就不会浪费精力或单独发明车轮,这就是我们看到的开放堆栈项目。

一些组织走到一起,因为共同走在同一套代码和软件上,比单独走在上面要好。对于任何类型的复杂技术,如果你能加入一个有同样问题的专家小组,你就能从中学到很多东西,所以当你处理一个复杂的问题时,与社区接触是完全有商业意义的,或者看到它,例如,在开放堆栈内的大规模[SIG 0:05:21.2],几个大规模云的运营商聚在一起分享他们的经验,显然,项目从中受益,因为我们从他们的经验中学习,但他们也相互学习,他们看到在这个小组中分享他们的经验的好处。

这确实是一套复杂的动机,但在底部,它要么是基于你的使用和想要回馈的利他主义,要么是有商业意义的,顺便说一下,这是更可持续的,因为这是一个双赢。如果每个人都是赢家,就不会有项目从这些组织的参与中获益的感觉,这些组织看到了贡献的价值。

AC:是的,这很有意义,对吗?我不得不--在这里回忆一下,我记得我第一次见到你的时候,我走进了我认为是一个新星项目会议,对吗?那是几年前的事了,那是一个规划会议,所以规划未来六个月的那种概念。

我只是被当时房间里的人的数量压倒了。我甚至不敢数,但在那个房间里有数百人有兴趣想参与并为该项目作出贡献。

我记得当时坐在那里,我在开源领域工作了很长很长时间,但我从来没有在一个有那么多人参与的项目中工作过。我对你如何处理这个小组印象非常深刻,能够听到房间里所有的声音,使人们能够做出贡献和参与,这是我想问你的有趣部分。

开源社区是如何运作的,特别是当你有一大群人想参与的时候?规则是什么,你如何制定参与规则,等等,使这些人能够参与,感觉他们可以参与和贡献,然而当你有这样一个非常大的群体时,你如何完成任何事情?

TC:这是个复杂的问题。

AC:我知道这是一个非常复杂的问题,我道歉。我可能要把这个问题细分,但我只是印象深刻,因为工作发生了,对吗?我对有多少工作能够完成,有多少人--甚至是新人能够参与到项目中来,完全印象深刻。

TC:你必须平衡一些结构元素,并允许有很多灵活性。从本质上讲,你必须提供一个人们能够分享的结构,同时,使它非常受欢迎,使人们感到他们可以参与,同时,在讨论的主题或下一步方面仍然有很大的灵活性。

我们在设计峰会中一直在做的方式,我们指的是你刚才提到的活动,那些设计峰会,其想法是让任何人都能够加入,并告知软件的未来,它甚至是基于最初的开发者峰会,然后我们在开放堆栈中完善了这个想法,我们有一个正在讨论的主题,所以首先有一个组织主题的呼吁,然后每40分钟我们将切换或50分钟我们将切换。

在这段时间里,我们会讨论,公开讨论该主题,用垫子做笔记,用鱼缸式的设置,让最参与讨论的人坐在中间,但同时,你可以根据人们想参与的程度,扩大人们的圈子,人们在房间里移动,随着讨论的进行,他们会更多地参与。

这提供了这种结构,人们可以自由地进行交流,同时,对于讨论的方向有很大的灵活性,这有助于获得这种设置。正如你所说,一旦你达到一定规模,这可能是一个问题。在参与规则或原则或章程方面,你必须在开始之前预先确定,我想说,你需要三件事。

第一件事是真正定义范围,你的项目想要解决的问题空间是什么,并且从零开始就非常明确,因为没有范围,你真的会暴露在范围蠕动中,这可能--最终,缺乏重点可能最终会扼杀你的项目。

这实际上是我们在开放堆栈中做得不好的一件事,那就是设定一个非常积极的范围,这样我们就不会--仅仅因为我们是一个社区,这并不意味着我们应该实际地解决每一个问题。

第二个是大的原则,你希望你的社区遵循的大的10倍,并把这些写下来,以便对加入社区的人来说,他们真的很清楚,他们签署的是什么。最后,治理,这描述了如何做出决定,治理在任何社会团体中真的需要,比如没有规则本身就是一种治理形式,叫做无政府状态,还有仁慈的独裁者模式,所有的决定都是由一个人做出的。

你需要定义治理,你需要在任何问题出现之前做到这一点,因为如果你等到问题出现时才有规则来解决它,那就有点太晚了。

AC:太晚了,不是吗?

TC:人们会永远讨论。他们可以很简单,但最终,它真的需要明确桶的止境,避免灰色地带,我们至少在OpenStack和其他项目中看到的是,通常,提前写下的东西避免了规则所要解决的情况。

有时只是说,"嗯,这个问题在那个级别没有得到解决,这个问题会升级到那个级别来解决",那么在某种程度上,它迫使第一组达成协议,不升级,因为他们基本上不想升级。他们不希望情况脱离自己的掌控。他们通常在自己之间解决,而不需要呼唤上层治理机构。

AC:酷,谢谢你,这很好。嘿,所以,我们的时间很快就要用完了,但我想为这些听众介绍一下,我们有很多人没有参加过社区,他们不知道如何开始,对吗?这可能是非常吓人的。

只是也许很基本的,一个也许过去没有参与过开源的人,他们的兴趣也许是你先前谈到的那些超越写代码的贡献,如何才能做到?如果一个人的时间有点有限,他们可以参与到社区中吗?他们将如何开始?

TC:我们在前面讨论什么是社区的时候提到过这个问题,但是即使你不写代码,或者你的时间有限,你也绝对可以参与到社区中来,特别是像加入会议,参与讨论,找到一个演讲,或者这些都是非常值得的贡献,因为否则,你最终会在每个会议上看到同样的演讲者,那些舒服的演讲。

让人们感到有能力这样做是非常好的,而且像文档一样,使用项目的人,当他们第一次尝试运行它时,他们可能对文档没有那么多的问题,所以谈论文档真的是一个容易参与的方式。像我说的那样展示你的经验,我们最近有这样一个例子,我们在开放堆栈的外展项目上有实习生,我们把他们与导师和有经验的开发者配对,他们一起走在一些特定的项目上。

外联实习生做了一件事,就是在博客上记录她的入职经历,同时也在TikTok帖子或每个社交媒体上记录,这对我们来说非常有用,可以了解到通过我们最新的贡献者的一些障碍是多么困难或多么容易。即使是像快速写出你如何处理这些第一步的贡献,对一个项目也是非常有价值的。不应该有像极高的期望,而且标准也不高。即使是最简单的贡献,只是从不同的角度来听,也是非常有用的。

交流:好的,这很好。在我们不得不离开这里之前,还有最后一个话题,这个话题可能太深了,可能要改天再处理,但我认为这很有趣,因为我知道你已经加入或从一开始就开始了项目,对吗?如果我有一些我认为非常有趣的东西来启动一个开源社区或在一个社区中启动一个新的项目,这是不是今天有人应该能够做到的?对某人如何开始一个新项目有什么建议吗?

TC:是的,当然。

AC:就像我说的,这是一个大问题,不是吗?

TC:是的,这就像一个新节目的主题,但我会试着让它变得快速。在创造方面,我想说今天与十年前相比,建立一个开源项目真的很容易。设置商店真的很容易,你只需采取像GitHub或GitLab或OpenDev这样的力量,我们正在使用OpenStack,所以很容易做到这一点,就像你是否应该这样做是另一个好话题。

AC:一个完整的问题,不是吗?

TC:是的,我想关键的问题是,是否有几个人或几个组织有同样的问题,并且会从分享解决方案中受益,因为最终对我来说,拥有一个开源项目的兴趣最终是为了避免浪费,让几方在自己这边开发同样的东西的专利,而他们可以合作和贡献,通过作为一个开源的合作项目来避免浪费这种精力。

这实际上就是为什么我对开放领导开发开放源码如此有动力,因为我并不真正看到由单一机构拥有的开放源码的意义,因为那样的话,你就不会真正有那种减少浪费的合作。这只是做专有软件的一种方式,你只是发布了一个代码,并有一些免费的劳动力在其中,并在旁边。归根结底,对我来说,重要的是是否有很多人有同样的问题,然后是的,开源项目有潜力,然后设置它不是最困难的部分。它曾经是,但今天它不是最困难的部分。

AC:那是真的。这是一个很好的观点,所以谢谢你,我喜欢你的回答。好吧,蒂埃里,所以我们想回过头来谈一谈社区是如何运作的,我把它们称为可以做的开放程度,因为有些社区比其他社区更有指导性,你知道,在我们一起工作的这几年里,我非常喜欢我们称之为四个开放的概念。

你能不能跟我们谈一谈,谈一谈这是如何打开一个社区,实现大量的沟通,我认为更多的贡献,所以给我们一点关于我们所说的四个开放的味道?

TC:当然,就像我们之前谈到的,我们提到了参与规则,我说我们需要定义范围、原则和治理,四个开放是原则的一个例子。这些都是开放堆栈社区所建立的原则。四个开放是开源的,因为那时还没有任何公开开发的开源项目,不是开放的核心,会做一个云软件。

这是一种说法,将做我们将开源,而不是开放核心的方式。不会有专有版本的产品,我们不会保留一些功能,也不会卖一个专有版本的东西,一切都应该是开源的。有开放的开发,现在看来真的很明显,因为像地球上的每一个开源项目都在某个开放的GitForce上,你可以看到正在发生的事情,但12年前或11年前,当我们开始OpenStack的时候,还没有这样的事情。

开放式开发是关于能够透明地看到开发中发生的事情,所以所有的补丁、所有的reeves、所有的问题或所有的讨论都应该是可访问的和透明的,不需要人们注册或任何东西来看到它发生,所以开发中的透明度。

第三个,也是大家都知道的,我们在讨论设计峰会的时候也提到了这个问题,就是开放设计。事实上,开发不是由核心开发人员的精英小组闭门造车,设计是在公开场合与用户讨论的,在我们举办的那些公开活动中,这种模式被复制到其他成功的项目中,比如说Kubernetes。

最后,开放社区。开放社区的理念是任何人都可以加入社区,任何人都可以成为社区的领导者。不存在付费游戏,也不存在领导者,即项目的技术领导者来自于某个主要赞助商的强制规定,或者是完全脱节的。技术管理与任何其他基础管理或任何东西都是完全脱节的。

这真的是一个贡献者,一个投票,你最终会进行选举,最受尊敬的贡献者会被选为项目的领导伙伴。有了这四个开放,你实际上有一个非常可持续的社区,因为你真的授权你的社区参与。没有他们看不到的地方,没有他们不能使用的功能,没有他们不能参与的讨论,没有他们不能达到的领导水平,我觉得这对开放堆栈的成功很有帮助。

它对其他社区的成功也很有帮助,我已经采用了它们,即使不是在文字上,也是在精神上,所以我觉得它是一个很好的模式。

AC:我很高兴你指出了这一点。当我们第一次提出 "四项原则 "时,你是对的,它们在某种意义上似乎是革命性的,而在过去这些年里,它们在我参与的许多社区中已被广泛采用,对我来说,这说明它们是有效的,这就是为什么我非常喜欢它们,所以感谢你对这些问题的阐述。我想谈谈第四个问题,关于开放的社区和像技术委员会之类的东西都是选举产生的,而不仅仅是任命。

这暗示了事情是基于声誉的,对吗?你的功绩是在社区中赢得的,所以对于一个人如何在开源社区中建立声誉以帮助他们成为一种力量,特别是在开放社区部分,有什么建议吗?

TC:是的,你是对的,如果你有公开的选举,它可以很快变成一场人气竞赛,那么声誉就很重要。人们认为,你需要成为一个技术上的摇滚明星,才能达到让你当选为一个项目的领导人的声誉水平,但实际上这并不是真的。从你能做的事情来看,让自己对别人有用才是真正的关键。做别人不做的事情。

每个人都很感激这一点,以覆盖所有其他人没有覆盖的盲点,你通过做那些其他人没有做的事情,在整个社区,包括在非常大的社区,变得非常有名,然后你可以利用这种声誉,像我说的那样被选为领导职位,或者你可以影响决策,因为没有人愿意得罪那些真正做他们不想做的事情的人。

实际上,这就是我在大多数我参与的社区中的开始,比如当我在2000年加入Gentu时,我最终记录了安全,因为它没有以我想要的方式被记录下来。很明显,记录安全流程在每个人的名单上都不占优势,通过这样做,我赢得了良好的声誉。我最终领导了那里的安全团队,我最终当选为Gentu董事会成员。这确实是一个主题,在开放堆栈中,我基本上也是这样做的。

我从废物管理开始,这又是一个非开发的任务,通过记录安全,我最后被选入技术委员会四年,通过从非代码贡献开始,最后成为该社区的领导者。这真的不是关于代码,这真的不是关于成为一个技术明星。它实际上更多的是关于对他人有用。

AC:这很好。

TC:关于不要,不要把你不应该做的事情放进去,我想说你不应该假设有恶意,因为在这些社区中,99%的情况下,人们试图做好事,而被视为潜在的恶意的事情,实际上最终会被分解为沟通问题,99%的情况下。不要急于下结论,给人们一个机会说出他们的故事,而不是匆匆忙忙地打包,造成一个不太受欢迎的社区,这才是真正的关键。

AC:好的,谢谢你,蒂埃里。这一直是非常、非常有趣和非常有教育意义的。我也学到了一些东西,它让我想起了很多好东西。非常感谢你今天帮助我们,加入我们的播客。我非常感激。

TC:好的,谢谢艾伦的邀请。

AC:蒂埃里,这很好。

[采访结束]

AC:更多信息,请查看community.suse.com,并确保在你喜欢的播客平台上订阅OCTOpod。

Logo

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

更多推荐