如果您查找开源的官方定义,您可能会偶然发现来自开源倡议组织董事会成员的这份纲要。如果您浏览一下,您一定会找到一些与您感觉非常一致的想法或概念。其核心在于,开放性(和开源)是关于自由分发——将您的作品公开供他人使用。
这实际上是关于帮助他人和回馈社会。
当我们开始思考开源以及我们如何在 Buffer 中实施它时,我们发现它不仅是自然而然的,而且对于我们的运营方式至关重要。事实上,在我们看来,如果我们不开始更认真地对待它,我们会在很多方面对我们自己造成损害。
但当时我并没有完全意识到开源会对我产生的所有影响。
开源对作为开发者的我、作为 Buffer 员工的我,甚至作为个人的我都产生了积极的影响。这些都是我想在这里与您分享的内容——向您展示我们如何在 Buffer 偶然发现了开源。
践行您的价值观
在 Buffer,我们以 我们的运营方式 和我们的产品而闻名。我们认为,让您的价值观和文化完全透明,会让您对践行它们产生额外的责任感。作为 Buffer 的一名员工,我经常思考如何才能成为我们共同目标的好管家。我如何才能以一种能够帮助他人的方式宣传我们的想法、失败、成功和经验?
作为一家公司,我们重视透明度,并将其置于首位。我们认为这有助于我们的运营,并且我们希望其他人可以查看我们的数据并从中获得真正持久的价值。这就是为什么您可以在公开的 Google Docs 电子表格中找到我们所有员工的薪资,打开 Trello 面板并查看我们的产品路线图,甚至可以访问实时仪表板,查看我们所有的收入。
有一天在思考这个问题后,我意识到我并没有充分利用 Buffer 为我提供的可能最大的回馈机会:我们自己的代码。我每天花费数小时编写、测试和思考代码,以确保我的工作能够解决人们的实际问题,并总体上让他们的生活更轻松或更好。
那么我为什么不分享它呢?
自上而下
我认为这样的价值观往往来自组织的最高层。如果公司对代码没有相同的看法,那么分享您每天为公司编写的代码可能会很困难!为此,我们的 CEO Joel Gascoigne 似乎意识到了这个机会,并且对此也充满热情。我记得大约一两个月前他发起了一封电子邮件,他在其中提出了支持在 Buffer 使用开源的一些有力论点。
以下是 Joel 提到的一些内容
“我想分享一些在 Buffer 困扰我多年的事情。众所周知,我们的价值观之一是表达感激之情。从一开始,我们就非常幸运能够在开源成为软件开发世界重要组成部分的时代构建 Buffer。
如果没有开源,我们不可能发展到今天的规模。事实上,我们可能根本不会在这里。互联网在很大程度上建立在那些领导和贡献开源的人的慷慨之上。我们实际上是站在巨人的肩膀上,在很多方面,我们自己所做的事情与我们有幸依赖和使用的令人难以置信的技术相比,是微不足道的。
我相信,作为一家公司,为开源做出更多贡献是我们未来的关键部分,几乎是我们应尽的义务。凭借我们的透明度价值观,我认为这是人们可能期望并且应该期望我们做到的事情。”
读完这些话后,我感到更加坚定。参与开源社区感觉完全是 Buffer 应该做的正确的事情。
Buffer 的 CTO Sunil Sadasivan 也是一位热情的开源倡导者。Sunil 对 Buffer 的工程技术有着最佳的“大局观”,并迅速帮助我们推动 Buffer 的开源计划。
Sunil 认识到开源的力量,帮助我们促成了许多重要的事情——从专门用于公开讨论的 Slack 频道,到用于建议的公开日历,以及在我们的开源文档上留下评论的习惯。Sunil 赞成并帮助我们向前推进。
当 CTO 花时间为公司的开放式思维提供更宏大的愿景时,像我这样的开发者可以更轻松地采取行动。这是一种共生关系,我们需要我们中的几个人来执行我们对开源的愿景。看到我们的领导层推广我们的开源工作真的很棒。
致力于开源是对我们所有人的内心检查。我们知道我们可以在这方面做得更好!我们的价值观倾向于促进个人成长、感恩和开放。同样,开源社区也提倡许多相同的理念。
这感觉非常适合我们的工作场所和文化。
个人成长
在那时,我开始思考我如何才能提供帮助。面对如此多的代码和机会,我意识到挑战实际上在于找到正确的事情来分享。我意识到,首先,开源代码应该对某人有所帮助。那么,什么是最有帮助的呢?
当然,我们可以开源整个 Buffer。这当然符合我们的价值观,但对于社区来说,这可能不是最有利的举措。在 Buffer 启动开源运动的正确选择似乎是发布一些重点突出且个性化的组件。
作为 Buffer 的 iOS 开发者,我最熟悉我们的 iOS 代码库。这是我最了解的,所以我从那里开始。大约在这个时候,我一直在开发一个模块化组件,以便在我们的应用程序中轻松查看图像。它易于使用,并且解决了平台开发者经常面临的实际问题。这感觉像是一个完美的起点。
最终确实如此。但首先,我经历了一次开源现实检验:这是我编写的代码,而我编写它时并没有想到有一天全世界都会检查它。冒名顶替综合征和疑虑迅速蔓延。我开始问自己
- 如果这不好怎么办?
- 如果有一些错误怎么办?
- 如果人们认为我没有编写最好的部分(它是基于现有的开源项目)怎么办
- 如果我错过了重要的快捷方式,例如使用正确的 API 怎么办?
在短短几个小时内,我作为一名工程师经历了一些重要的成长。这种成长直接源于两件事
- 在一家相信我们能够分享我们的代码,并且认为这是正确的事情的公司工作
- 向全世界开源该代码
有时,仅与您的团队一起开发是最容易的。他们了解您,并且他们可能非常熟悉您的编码习惯。那里有很多舒适感(也应该是这样)。与为可能成千上万的人编码相比,您的精神状态可能会迅速从舒适变为怀疑。
我认为这种经历对于软件工程师来说是一次重要的经历。它让我意识到我面前有一个令人难以置信的学习机会。正如老话所说:“没有人能做到完美。”肯定会有错误或粗糙的地方,但这完全没关系。所以,我分享了代码。
表达感激之情
这种经历直接关系到我从开放式思维中获得的第二个好处:感恩。当我发布我之前提到的开源项目时,社区的反响非常积极。其他开发者提到了一些调整,对我们的 readme 文件进行了一些编辑——最重要的是,他们只是感谢我们发布了它!
这有力地提醒了我们,开发在很大程度上是一项社区驱动的任务。没有哪个开发者拥有所有答案。有专家,但我经常看到这些专家指出,社区帮助他们达到了今天的成就。
开源帮助其他开发者工作并完成伟大的事情,但从本质上讲,它也是一种知识转移行为。我记得当 Apple 开源 Swift 时。对我来说,那是激动人心的一天。我很高兴浏览 Apple 的代码,并向该语言的行业专家学习。我学到了一些我可能本来学不到的东西,并学到了很多最佳实践。
简而言之,我对此非常感激!
旅程的开始
在 Buffer,我们的开源事业还处于起步阶段。我们仍在提出一些问题,以帮助我们走上正确的道路,例如“什么是最有帮助的开源代码?”“我们如何告诉人们这件事?”以及“我们如何以开源的心态进行开发?”
但在整个过程中,我们一直被提醒,互联网实际上是一个非常乐于分享和慷慨的地方。正如 Joel 所说,我们今天在 Buffer 取得的成就完全是因为其他开发者的出色代码,他们非常友善地与世界分享了他们的辛勤工作。他们树立了多么令人惊叹的标杆。
我所能想到的就是我希望我们也能像那样。我们想向那些做得比我们好得多的人学习,我们将努力达到那个高标准。我们也想回馈社会并帮助解决问题。我们想为他人节省时间。我们想公开分享我们所有的工作。
这就是引导我们走向开源的原因,它已经对我们思考工作和文化的方式产生了令人难以置信的影响。我很高兴看到它接下来会带我们走向何方。
本文是《开放式组织 IT 文化变革指南》的一部分。
1 条评论