
链接到播客: https : //soundcloud.com/mattermosthq
开源软件已经改变了世界。 从您正在阅读的网站到手机上的移动应用程序,这种强大的想法(通过特殊许可共享的技术可以免费使用和重新使用)是世界上几乎每个主要软件系统的核心。
数十亿人受益于开源。 但是这些用户中只有一小部分做出了贡献。 如果我们可以大大增加贡献者的数量怎么办? 如果我们可以以有意义的方式将开源的概念扩展到软件之外,并扩展到更多学科(例如科学,商业和艺术),该怎么办?
只有数百万知道他们如何做的人愿意捐款。 许多人不知道从哪里开始。 有些人担心-他们是否足够好以至于可以将其作品纳入可以对其进行分析和判断的公共记录中? 他们会为难吗? 如果他们犯了错怎么办?
这些是普遍的恐惧,需要改变。
开源100项目的目的是通过消除这些障碍并鼓励他们与开源社区分享自己的才能,帮助释放全球数百万人口的潜力。 在这个新的系列访谈中,我们将见到100个从各个背景为开源项目做出贡献的人们,并了解他们的起步以及他们如何产生影响。
我们的目标是找到可以与您联系的人。 就像您一样的人,他们需要学习如何成为社区的一部分,并在此过程中感到忧虑。 犯过错误并克服错误的人,最终学会了做出贡献,然后在世界上有所作为。
我们希望本系列能够激发您对造福世界的潜力有不同的看法。
访谈1:George Mattberg,Mattermost开源项目的核心提交人
在这次就职采访中,乔治·戈德堡(George Goldberg)分享了他在英国康沃尔郡,香港和香港长大的经历,以及在Collabora从事兼职工作的学生早期开始KDE开源项目的经历。
他经营一个学生电影院的爱好最终导致他将Mattermost用作开源消息传递应用程序。 看到早期项目的需求后,他开始在业余时间做出贡献。
随着时间的流逝,乔治的贡献不断增加,最终他成为了赞助开源项目的公司的核心职员。 如今,他在开源领域专业工作,不仅为每天依赖Mattermost的数以千计的企业开发软件,而且还欢迎,支持并授权新一代贡献者,这些贡献者对该项目的未来有所作为。
以下是访谈的重点:
开源100:我们和Mattermost开源项目的职员贡献者George Goldberg以及Mattermost,Inc.的职员一起在这里。我们只是在这里了解一下George自己,以及他如何成为开放人。源,以及在Mattermost项目上的工作感觉。 乔治,也许您可以自我介绍一下,例如您来自哪里,在哪里长大,在业余时间做什么?
Mattermost核心提交人George Goldberg :是的,当然。 我来自英国您可能已经知道我的口音了。 我在该国的一个乡村地区长大,在康沃尔(Cornwall)地区的左下角。 然后,当我18岁时,我短暂地搬到了香港,然后降落在伦敦,这是我过去十年左右的时间。 不久前,我读大学并读了本科课程,但我总是比硬件方面更注重软件方面。 在进行这些研究的同时,我还曾在一家名为Collabora的公司工作,该公司是一家位于英国剑桥的开源公司,并且在那里从事电信相关软件的工作。 然后,在那之后,我做了很多零碎的工作,最终在一年多前加入了Mattermost。
开源100:非常酷。 您是如何得知Mattermost开源项目的?
乔治 :最初是Slack登场的那一刻,突然变得风靡一时,所有人都在谈论它。 每个小软件项目都突然使用Slack。 而且,我自己是一个狂热的开源人士,并且非常怀疑云是默认状态,因此我要做的第一件事就是找到Slack的替代品,它不是封闭式SaaS产品。 在那个时间点上,似乎还没有真正的东西,但是可能会有一些关于正在进行的项目的声音。
大约九个月后,在我所在的大学里,我曾经经营一个志愿者电影协会,而且我们有很多员工需要协调。 人们想使用Slack。 我们不想为Slack付费,因为,您知道,志愿者俱乐部根本没有钱。 我们换了个样子。 我们在拐角处有一台旧服务器,它运行着Wiki,网站和其他内容。 我们就像,“哦,我们可以在上面贴些东西吗?”那里有几种产品需要评估。 我认为Rocket.Chat是其中之一。 Mattermost刚推出时就带有一种很大的想法,“我们已经构建了这个巨大的开源产品。”
老实说,他们两个都不是我们真正想要的。 但是有希望的人,觉得有足够时间的人,是最重要的。 因此,我最终寻找并关注了这些项目,并最终开始填写Mattermost中一些缺少的功能。 由于它是一个开源项目,所以这是有可能的。 我在GitHub上提出了一些请求,以填补需要该电影组的一些空白。 我最终用它做各种不同的事情,最终最终加入了公司全职工作。
开源100:这是一个极好的最终结果。 您看到了哪些差距? 从开始时到最初的几次拉取请求,您在项目中看到的差异是什么?
乔治:一件大事是我们实际上有聊天记录。 到那时,我们已经试用了Slack的免费版本并使用了一段时间,我们想在其中迁移内容。 有一个进口商,但是有点不成熟。 它缺少了我们需要的很多东西。 因此,我开始的第一步是尝试填补这些空白,并认为该产品已准备就绪,可以立即使用,我们只需要正确进行迁移即可。
从那里,导致了其他事情。 我们想要导入的Slack可以完成但Mattermost尚未完成的事情,例如频道链接之类的事情。 因此,我最终添加了通道链接支持的第一个版本,依此类推。 这是非常有益的。 我最终做出的贡献对于我刚开始做这些事情并不是完全必要的,仅仅是因为我很享受自己。
开源100:出色。 您能很快在开源项目中有所作为是非常了不起的。 您从事开源项目已有一段时间了。 Mattermost作为一个开源项目与您从事的其他项目之间有什么区别和相似之处?
乔治:开源项目有各种各样的风格。 我对开源的第一个有意义的贡献是在我16岁或17岁的时候,这不是代码贡献。 基本上,我开始进行其他错误分类。 仔细检查错误报告并重现旧的报告,看看它们是否仍然存在。 那是针对KDE项目的,那是那里的Linux桌面环境。 这是一个很大的社区,这是一个有趣的社区。 世界各地散布着许多公司,其中许多都设在德国,因为这是一个源于德国的项目。 大量的自愿捐助者也设在德国。
那是一个有趣的项目,因为它有一些公司参与者。 但是它绝对没有任何企业参与者构成该项目的足够大的部分来实质性地影响它。 他们在这里和那里可能会有一点影响。 一些子项目是相当庞大的公司项目,对付一些IT顾问的客户更感兴趣,而对社区的兴趣就小。 但总的来说,这是一个自愿者制定的项目。
与此形成鲜明对比的是,还有许多其他大型开源项目,例如Mozilla Firefox,在该项目中,有一个准公司的非营利实体非常重要。 或许多更现代的开源项目,我将Mattermost归为此类,实际上,在这个社区的中心有一家营利性公司,而他们正在牧养它。 他们提供了很多产品开发所需的资源,但是其中一部分是开源产品。 可能会有专有的附加组件,或企业版,等等。
根据您要考虑的是GitLab还是Mattermost或Elasticsearch,MySQL等,模型会略有不同。 但这是另一种情况。 在一个纯粹的社区主导的项目中,领导和挑战是人们真正不想做的艰巨任务。 因为在每个人都是志愿者的地方,您最终会非常依赖几个真正喜欢从事肮脏工作的人。
哪里有一家公司参与其中,那要容易得多。 公司通常会提供资源来执行非常详细的维护,质量检查,这是社区贡献者通常不感兴趣的事情。但是接下来的挑战是,您必须平衡公司拥有的大量权力在社区中,并确保您的社区运作正常并且力量平衡不要太过分散。 例如,如果您查看Node.js的历史,他们在克服公司实体在社区中的角色方面遇到了一些严重的困难。 无论您使用哪种模型,都并非没有挑战。
开源100:是的。 完全有道理。 在这些模型中的任何一个中,都有很多人一直想为开源做出贡献,而他们却受到了阻碍。 我很好奇,您认为人们在愿意时会做出什么贡献?
乔治: 这很困难,因为我认为那是每个人都不同的事情之一。 从个人的角度来看,可能只是不确定他们是否足够好或者被它吓到了。 一旦克服了这一方面,我认为保持贡献路径简单很重要。 因此,当某人决定要查看如何回馈他人时,他们通常会具有强烈的善意感。 也许他们使用了该产品,或者他们对产品感到非常兴奋,并且他们说:“我想退还一些东西。”这可以确保他们的方式没有太多障碍,在他们还清东西之前就失去了那种好感觉。
我认为这是关键因素。 易于做出贡献,热情好客,而且欢迎开源项目的原因也有各种各样的看法。 我个人并不是对此事有很强见解的人。 我有点愿意去那里。 但是我认为关键是它确实需要考虑。 您如何欢迎人们加入,确保他们的贡献得到重视,并确保您不会给他们造成不必要的障碍?
而且,实际上,有一个大型公司实体参与的开源项目很重要。 当您是在公司工作的付费开发人员时,您习惯于在编写每段代码时都遇到各种障碍。 质量保证,所有这些东西。 处理。 在那里是有原因的。 这是一件好事,但是对于志愿者贡献者来说可能是非常困难的,因为如果您向他们投入大量的QA以获取他们的一些代码,有时它只会使平衡成为“您知道吗? 我花了几天时间编写这段代码。 我无法处理此质量检查。”您最终可能会因此而感到多余。 因此,平衡生产高质量产品的过程需求和支持社区非常重要,因此您并不是在说:“谢谢您的贡献。 现在,在我们接受之前,先对这700件事进行其他处理。”
开源100: 得到它了。 当您刚开始进入Mattermost项目时,人们可能会认为有些受欢迎的事情是什么? 一个开源项目可以做些什么来欢迎人们,当您在Mattermost开始时的第一笔发现是什么?
乔治:我认为对于Mattermost来说,最重要的事情之一就是关于如何做出贡献的指导非常明确,而且没有特别长。 我看着GitHub。 从标签和拉取请求之类的东西,我可以看到有一个过程。 核心团队正在使用一个过程。 现在还不清楚该过程如何工作,但是有一个文档总结了“这就是您要经历的流程”。而且它足够简短,我阅读它时不会分散注意力,失去兴趣或其他。 这样就很容易了,因为就像“哦,对。 如果是帮助通缉票,那意味着如果我解决问题,“团队会接受此票”的障碍已经克服。 只是确保当时技术上还可以。”
很好 就像是,“我知道我想将此东西添加到产品中,它作为帮助通缉票存在。 那意味着他们也想要它。 我不会花很多时间来编写此功能,而只需要与核心团队争论,他们出于某种原因实际上并不想使用该功能。” 就像是,“我知道我在做什么不会被浪费。”
然后,当我发出请求请求时,有一个非常欢迎的快速响应。 尤其是产品经理,他们是处于审查的第一阶段的产品经理,他们真的知道如何鼓励。 您知道:“非常感谢您的贡献。 我们将进行审查,以确保它看起来符合我们的期望,然后将其传递给开发人员,他们将检查代码,然后将其合并。” “非常感谢,这就是我们要做的。”
它立即使您感到赞赏。 “我已经做到了,伙计们正在处理。”这与您发出拉取请求的位置完全相反,它被忽略了,您的感觉就像是:“发生了什么? 有人在乎吗? 我做错什么了吗? 我有冒犯他们吗?”这种事情。 在人们不在一起的任何远程交易中,通信都至关重要。 交流确实有助于使人们感到赞赏,并确保没有误会。
开源100: 您是否曾经想过,在非开源项目中,这种情况还会发生更多吗? 您是否认为在没有志愿者的非开源项目中,产品经理应如何参与以确保快速审核提货请求并保持流程顺畅? 当人们有报酬参加工作而不必一定要迎合志愿者时,这有多重要?
乔治:这是一个棘手的问题,部分是因为我在很多方面很幸运,没有在非开放源代码软件方面的丰富经验。 我的意思是,我已经开发了很多闭源软件,但是它一直在开源公司中使用。 因此,即使我们正在研究的特定内容实际上不是开源的,开源文化也一直存在。 我想肯定地说,其中的某些过程在任何地方都是有益的。 我的意思是,如果您与一直在工作的同一个团队一起工作,则不必那么全面。 他们有点知道游戏已经存在。 他们知道该过程将是什么。 但是,保持沟通交流通常是一件好事。 绝对是
开源100: 是的,很有道理。 当我们到外面找人的时候,他们想为Mattermost的开源项目做出贡献。 您想让他们知道什么可以帮助他们做出第一笔贡献?
乔治:浏览一下我们的贡献者文档。 不必觉得需要阅读所有内容,只需稍微看看就能了解它们的工作原理。 我希望您会从中受益,那里确实有很好的即时机会做出贡献。 无论是代码,文档还是翻译,集成。 这意味着您将在正确的位置寻找。 届时您将与核心团队处于同一波长,一旦完成,剩下的实际上就是语义。 如果您与我们处于同一波长,那么您生产的任何东西都将是有价值的。
开源100:非常酷。 我再问几个问题。 您想为贡献者社区看到什么? 对于他们可能工作的所有不同地点,您会喜欢哪些地点,“嘿,如果您对第一个请求请求感兴趣,则可以尝试一下。 您可以个人喜欢从社区中看到些什么?
乔治:难题,那一个。 我觉得有很多地方我们可以做得更多。 我认为整合是巨大的。 我们只是真正地探讨了集成可能带来的影响,特别是目前正在使用的插件API。 这是一个“可集成性”的级别,如果这是一个词,那么以前在这种软件中还没有真正看到过。 我认为,“用我们从未想到过的事来震撼您,您可以使用这项新功能。”
开源100: 很酷。 是的,我们都对插件体系结构感到兴奋。 您能告诉我们更多有关插件如何工作的信息吗?
乔治: 而不是像这样的所有不同软件中可能都熟悉的webhooks或slash命令-插件可以实现真正的深度集成,并且可以覆盖各种不同的部分。 最初,在第一个发行版中,我们只暴露了一些点滴。 您可以覆盖弹出窗口。 您可以覆盖消息类型。 但从本质上讲,我们正在朝着覆盖UI的各种组件以及服务器如何处理这些事情的能力迈进。
例如,目前,Mattermost使用Markdown呈现批处理消息。 但是,使用消息类型的插件,您可以覆盖它以执行其他任何操作。 例如,您可能拥有使用Slack标记语言的与Slack兼容的代码。 与Jira兼容的消息,因此,由于Jira的标记与Markdown完全不同,因此可以正确显示来自Jira实例的消息。 您甚至可以在其中包含交互式元素。 您可以拥有实际上与之交互的消息,并且它们会发生变化。
例如,我认为GitLab管道将是一个很好的管道。 在消息中显示管道的进度,以及从消息中管理这些管道的能力,这就是ChatOps。 这是双向的ChatOps,不是只读的。 如果您将其视为类似于无线电通信的老式无线电。 “你好。 谁能听到我的声音? 结束。”然后对方回答。 您那里真的没有双向通讯。 一个人与另一人讲话。 对方回头。 带有斜杠命令和webhooks的ChatOps有点像那样,但这将它带入了一个新的高度。 这是控制系统的人员与ChatOps控制的系统之间的全时双向对话。
开源100:太棒了。 现在,该插件体系结构处于beta版。 某人如何参与其中? 有人如何提出想法并获得插件的反馈? 他们应该去吗? 您要他们互动吗? 他们如何了解插件体系结构的Beta版的发展方向? 您如何建议他们参加?
乔治: 如果您想谈论任何事情或了解更多信息,最好的方法是加入预发布的Mattermost实例。 核心团队完全在这个Mattermost实例上工作,该实例是公开的。 您可以注册。 它是pre-release.mattermost.com。 注册并登录。我们就在那里。 所有的开发讨论都在那儿进行。 我认为有一个名为“插件”或类似名称的频道。 加入该频道。 来与正在构建插件系统的团队交谈。 问他们任何问题。 提出任何建议,如果您已经有了一个主意,那就去建立它。 插件的优点在于,实际上,我们对您的想法的想法并不重要,因为它是插件。 喜欢或想要它的人可以使用它。 不需要的人,不必。 所以要有创造力。 没有任何限制。
开源100: 对于想与您联系的人,您在GitHub上的处理方式是什么,在Mattermost预发布服务器上的处理方式是什么?
乔治:在GitHub上,我是grundleborg,在Mattermost上,我只是乔治。
开源100:完美。 好了,谢谢乔治,我们将在以后的播客中期待您的更多信息。
乔治: 好的,谢谢。