微软 Azure CTO 办公室开源主管 Sarah Novotny 近日在开源博客上分享了过去一年中微软在开源领域所做的工作,希望微软的经验可以为 2021 年进行构建和协作的开发人员或团队有所帮助。

2020 年的全球疫情从根本上改变了许多公司的工作模式,人们不得不改变他们的沟通和协作方式。但是,对于从事开源的人来说,远程工作才是常态。因为开放源代码社区庞大且分布在全球各地,需要来自世界各地的开发人员的有效合作。

那么,开源的采用和使用在今年显着增长也就不足为奇了,GitHub 2020 Octoverse 报告显示,GitHub 上去年有超过 6000 万个新存储库创建,开发者数量超过 5600 万。尽管开源开发人员已经建立了许多成熟的远程实践,但今年,各种规模的公司都面临挑战,要求以新的方式集成其开源软件体验和开发模型。

一、接受不同观点有助于更好的开发软件

在开源领域的成功既取决于你对社区的贡献,也取决于你从社区中学到了什么。在每个拉请求、问题和代码片段的背后都是一个人。与他们建立联系非常重要,需要倾听、学习和与他们产生共鸣。也许他们可以提供团队没有想到的不同的观点和反馈。

Sarah Novotny 提到了一个社区反馈改变他们观点的例子,Dapr 项目收到了大量用户反馈,要求提供一个流线型的 API 来检索应用程序应用程序机密。而微软负责 Dapr 的团队并没有计划在当前的周期内进行这项工作,但是社区明确表示这个新的 API 将解决开发人员面临的许多问题。

Dapr 的维护人员与社区成员密切合作,在社区成员提交了多个 PR 后添加了这个功能,涵盖了从代码到文档到示例的所有内容。在添加了这个功能之后,微软的客户也选择了这个功能,并在他们的 Dapr 实践中使用了它。
这表明,倾听社区反馈非常有价值,只要有机会,在得到鼓励和支持的情况下,社区成员就会为实现需求做出贡献。

二、在政策和自主权之间找到平衡

为了帮助推动开源工作,微软有一个专门的开源计划办公室(OSPO),其目标是帮助员工安全、有效、轻松地使用和参与开源。

Sarah Novotny 说,过去一年中他们收到了很多企业客户(包括零售商,银行到汽车制造商)的信息,希望在内部建立类似的办事处和业务。我们分享并讨论了如何在制定政策和授权员工做正确事情之间找到平衡的最佳实践。虽然 OSPO 会根据公司的需要而有所不同,但我们经常讨论的一些常见做法包括创建跨职能小组,设置明确的策略并使它们易于查找和理解,对工具进行投资以及提供奖励和动力都可以满足。微软希望继续建立自己的内部实践,并在分享过程中帮助其他人也做到这一点。

三、确保安全至关重要

在开发过程中使用开放源码有许多优点,包括加速了产品开发、降低了所有权成本和提高了软件质量。然而,开源软件和其他软件一样也有风险,开源软件可能存在导致漏洞的安全缺陷。最新研究显示,安全漏洞通常在被披露之前的四年多时间里都不会被发现。因为开放源码软件本质上是由社区驱动的,所以没有中央或单一的权威机构负责质量和维护。它的源代码可以被复制和克隆,从而导致版本控制和依赖项的复杂性过大。更糟糕的是,攻击者可以伪装成维护者并引入恶意软件。

随着越来越多的系统和关键基础架构开始更多的依赖开源软件,通过社区驱动的流程建立更好的安全性比以往任何时候都更为重要。确保开放源码是确保每个公司供应链安全的重要组成部分。

2020 年,微软与 GitHub、 Google、 IBM 和其他公司一起创建了开源安全基金会(OpenSSF)。该小组正在帮助开发人员利用资源识别开源项目的安全威胁,提供教育和学习资源,并寻找加快漏洞披露的方法。在即将到来的一年中,OpenSSF 希望提供实际的帮助,以提高世界上最重要的开源项目的安全性。

四、积极沟通

大公司和大型开源项目知道,重要的信息必须通过不同的渠道广泛而频繁地交流。即使有了这些知识,微软在 2020 年也不得不像许多其他公司一样迅速改变。因为疫情,我们不再有那种偶然的互动时刻,比如在咖啡馆里碰到某人,和同事一起去开会,或者和某人一起等电梯时学到一些有用的东西。

现在,微软已经认识到了频繁沟通的重要性,这已经成为开源社区的一个标志。积极沟通是非常重要的,因为不确定性可能比好消息或坏消息所带来的压力更大。

以 Kubernetes 项目为例,该项目从未设立过办公室,如今它们拥有 407 个聊天频道,涵盖了从地区用户群到开发者讨论特定技术子系统的所有领域。这些聊天室,无论是 IRC channels,、Twitter hashtags,、Teams 还是 Slack,都是开源项目的办公室。

但是,聊天内容的存储是短暂的,聊天室不是新的公告电子邮件或文档存储库,很少有人会去翻阅聊天室的历史记录。理解沟通是如何改变的,以及对每种媒介的期望是什么,可以使内部沟通成为良好协作文化的重要支持。

展望 2021

前文提到的四点是开源协作的一部分,但它们对于形成良好的企业文化同样重要。很多问题都需要一个团队或整个行业来解决,意味着我们所有人都需要成为开源中值得信赖的合作者和有自我意识的参与者。

几年前,如果你想让几家大型科技公司在一个软件项目上联合起来,建立开放标准,或者在一项政策上达成一致,通常需要几个月的谈判、会议、辩论……

现在,开源已经完全改变了这一点。它已经成为跨公司协作的行业接受的模型,当看到新的趋势或问题出现时,我们知道共同努力解决这些趋势或问题会更好。这时,只要几周时间更方就可以达成一致,共同使用已建立的模型来指导工作。

因此,公司之间的合作越来越频繁,我们能够完成的跨行业工作量也在加速增长。仅在 2020 年一年,微软就参与了数十个行业组织和协会的活动,从 Linux 基金会和 Apache 基金会等老牌组织,到 Rust 和 WebAssembly 等新兴社区。这项跨越公司和行业的工作将在未来一年继续下去,我们期待在开源中学习,成长,并在开源中赢得我们的地位。