微软向开放开发模式的转变是一个有趣的案例研究,用于研究如何管理大规模开源开发。拥有数百万用户和数千名潜在贡献者,Microsoft 的项目维护人员面临着大多数开源项目中尚不存在的挑战。
在微软的规模下,项目维护者更接近产品经理或项目经理,而不是开发主管。您将与内部和外部贡献者合作,同时直接处理项目待办事项并解决错误和问题。我还管理功能请求,并经常与不熟悉项目和部署企业应用程序的限制的志愿者贡献者合作。
ⓒ 盖蒂图片银行
GitHub 上的大规模协作
您可以在 GitHub 上查 印度号码数据 看代码库 ,但访问源代码并不能替代协作。当新的贡献者需要更改代码时,他们将如何找到代码的特定部分?有多种方法可以在搜索克隆存储库或运行调试器时添加断点,但这需要繁琐的试验和错误。志愿者贡献者的时间是宝贵的资源,不能浪费,但也很容易流失。这是因为注意力被转移到了更方便工作的项目上。
为了克服这种情况,Windows 开源团队开始在广泛使用的代码库 Windows Terminal 中尝试新流程。现在,项目维护人员正在编写简单的指南,说明需要完成哪些工作以及在何处放置新的和更改的代码。这些文档称为演练,利用您对代码和社区的熟悉程度来指导新贡献者解决代码库中需要贡献者帮助的“问题空间”。
演练介于用户故事和项目文档之间。它旨在“尽可能简单地”告知贡献者他们可以为项目做出宝贵贡献的起点。无论如何,大多数开源贡献者都是已经拥有丰富开发经验的人,他们会利用自己的时间按照自己的时间表工作,以便将这些经验捐赠给更多的开发人员。
什么是演练?
演练是对问题和代码的高级解释 为贡献者
提供他们首次开始工作时所需的上下文。它是代码的“心理指南”,告诉您文件、方法和定义的位置。演练中的其他元素可能包括代码片段或类似代码,以及指向与同一代码段交互或实现类似功能的拉取请求的链接。
演练可以作为独立文档作为项目文档的一部分包含在内,但也可以替换为问题讨论中的评论等简单内容。这并不奇怪。Microsoft 的开源方法与 GitHub 的社交 大胆的数据 编码模型密切相关。微软正在利用同样的工具来添加格式化的演练。它使用基本的 Markdown 功能来突出显示关键元素,以帮助开发人员导航代码。如果需要,演练还可以包括动画 GIF,以说明预期的 UI 行为。
演练是一种相对非正式的项目管理方法,但它们的编写方式有一定的结构。演练可以被认为是解决问题的初始阶段,就像与开发经理的对话或围绕白板举行的头脑风暴会议。
将演练分配给项目板
在 GitHub 上使用演练的有趣之处在于您可以将其分配给项目。因此,您可以向项目板添加演练,并且项目板可以向演练添加元数据,以用于指示难度、向用户分配问题以及提供有关结果拉取请求的详细信息。
最初是一种为功能请求或错误修复提供上下文的简单方法,现在已成为基本的项目管理工具。然而,它仍然保持适当的非正式程度。贡献者无需跟踪最终的项目。这是专为项目维护人员提供的工具。这使得项目维护人员可以查看哪些演练工作正在进行中,以及哪些演练贡献者需要更多信息来帮助他们开始工作。
通过讲故事编写代码
演练是项目讲故事的一个有趣的例子。微软在内部利用讲故事来共同理解问题及其可能的解决方案方面。这些故事的运作水平比敏捷开发方法更高,并且通常描述所需的最终状态以及该功能的潜在用户。
Microsoft 将这种方法从正式的企业开发框架中剔除的目的是通过快速指示在项目中放置代码的位置来激励潜在的贡献者。在不了解问题的上下文和代码的情况下查看 GitHub 上的问题通常是令人畏惧的。这可能是一个很容易解决的问题,但它通常取决于对代码库的深入了解以及了解要使用哪些模块以及要修改哪些资源。
演练是一种方便、非正式且易于理解的方法。不要疏远贡献者,而应为他们提供入门所需的信息,但不要低估他们的主动性和专业知识。对于项目维护人员使用的任何工具来说,这是一个重要的要求。对于任何项目来说,最糟糕的结果就是疏远志愿者。
我希望微软内外采用和应用这种技术的开源项目的数量将会增加。这项技术将帮助下一代贡献者克服编写第一个拉取请求的挑战。