许多开发者在工作与生活平衡方面挣扎。他们日常任务繁重,并且经常被要求解决紧急的客户问题。然而,许多开发者,像我一样,都有想要推广的想法,只是没有时间去做。有时,这些个人想法无法通过产品管理的功能选择流程。有时,开发者没有时间独自完成端到端的解决方案,但他们知道,如果能够以某种方式实现,项目将会受益。
这就是指导的用武之地。指导有很多好处:它有助于被指导者的个人发展,并且可以提高指导者的自信心和领导技能。我在一篇关于高超的指导技巧的采访中讨论了这些好处,该采访刊登在Red Hat Research Quarterly 上,其中包含许多关于建立有益的指导关系的技巧。
然而,在我刚才描述的场景中,指导还有另一个非常实际的好处:它有助于让开发者参与到指导者-开发者想要推广的项目中。在本文中,我将解释如何在开源软件 (OSS) 世界中将指导用作力量倍增器,并通过指导为开源社区做出进一步贡献的人们来创造多赢局面。
本文基于我指导学生的经验,这是我的组织与 Reichman University 合作的一部分,但它适用于任何指导情况。
开源软件是一个门户
对于许多人来说,OSS 是进入任何激动人心的软件社区项目的绝佳入门票。它可以帮助本科生和研究生获得可见的经验,从而改善他们首次求职的机会。或者,它可以帮助更有经验的程序员找到有趣的项目(有很多这样的项目)或特别具有挑战性的项目(也有很多这样的项目)。在许多情况下,在寻找编程机会的人和寻找更多开发者的项目之间可以找到很好的匹配。
第一步是利用这个机会。
构建多赢组合
开发者有他们想要推动的项目;外部程序员想要为开源项目做贡献。但是他们如何才能找到彼此呢?
有多种机制可用于将项目与贡献者进行匹配。首先,我想分享我的指导故事;然后,我将讨论其他选择。
我的故事始于我被邀请为 Reichman University 的学生提供研究项目。该大学与行业合作伙伴合作,开设了一个课程和实验室,其中为学生提供了许多公司赞助的各种项目。然后,学生可以在这些公司的支持和指导下实施这些项目。
这是该课程运行的第一年,我们的团队几乎没有时间准备。为了快速行动,我不得不从我的积压项目中提取一些我想要实施但没有能力独自完成的项目。我们提供的项目之一是在 Ceph 软件定义存储产品中组件之间的通信路径中添加压缩层,以降低公共云上的部署成本。这是一个复杂的项目,因为它涉及到大型且复杂的存储系统数据路径的更改。
事实证明,这是一个非常好的决定。在课程结束时的演示中,大多数学生都在做研究导向的、非生产性的项目,例如概念验证或为特定问题选择最佳 AI 算法的简单研究项目。另一方面,我们的团队提供了一个更具挑战性的、成熟的功能,它将驻留在一个庞大的生产项目中。如果我们有更多的时间来计划,我不确定这是否会是我们的决定,但幸运的是,必要性导致了一个很好的解决方案。现在我们计划有目的地继续指导生产项目。
将受指导者与任务相匹配至关重要。在 Reichman University,有很多研究生在软件行业担任开发者几年后回到大学。这意味着我们可以展示相对复杂的项目。对所有参与者来说幸运的是,Maya Gilad 选择实施压缩项目,并且带来了这种背景以及为开源项目做贡献的愿望。她非常适合,并且可以在相对较短的启动时间内开始做出贡献。
按照课程要求的交付成果,Maya 在我作为业务导师和 Or Friedmann 作为技术导师的帮助下,准备了需求文档和设计文档,并实现了 Ceph 压缩通信功能。在开发此功能时,我们甚至发现了一个不属于原始要求的附加用例。到学期结束时,我们有一个拉取请求 (PR) 准备提交给 Ceph。
这个故事的结尾展示了所有参与者的几个成功
- 在学生课堂演示期间,Maya 的项目是唯一一个真正转化为大型生产系统代码的项目。
- 从 Maya 的学术角度来看,这是一个巨大的成功,她在这门课程中获得了 A+ 的成绩。此外,她还接触到了 Ceph 社区。
- Ceph 项目获得了一项对公共云部署很重要的新功能。
- Maya 仍在工作并为开源社区做贡献。
PR 的道路才刚刚开始。这通常是受指导者需要大量帮助的地方,因为这很可能是他们的新流程。
在我撰写本文时,我们正在运行该课程的第三年。在这一轮中,两名学生选择了另一个我没有时间自己实施的项目,这次是在 Kubernetes 中。我招募了一位技术导师来帮助我,我们都非常兴奋并充满期待。
更多指导机会
我很幸运能参与到一个行业-学术合作项目,但如果您没有参与这样的项目,您能做些什么呢?
还有其他与世界各地学生就开源项目进行合作的替代方案。学生们的工作会得到报酬,这是一个帮助学生迈出行业第一步的绝佳机会。
建立这些联系的两个最受欢迎的平台是
如果您有兴趣寻找可以帮助您的实习生,这些都是很好的起点。
提示:与 Reichman University 项目一样,这些平台内部也存在很多竞争。花一些时间思考如何展示您的项目,以便合适的候选人会选择它。这是一个很好的营销练习,如果您做得好,它将获得丰厚的回报。
您还在等什么?
如果这篇博文引起了您的兴趣,以下是成功指导项目的总结清单
- 选择一个框架良好的项目,并确保您知道并传达此类项目的成功标准。确保它适合您为受指导者计划的工作。您和受指导者都希望项目成功。过于复杂的项目会增加失败的机会。
- 确保项目定义明确。
- 验证它是否可以在期望的时间范围内完成。
- 定义及时的里程碑,并确保有一个最小的范围,可能有一些额外的锦上添花式的改进。
- 如果项目很复杂,请考虑将其分解为多个 PR。
- 确保您拥有所需的所有导师资源。您可能需要一些指导方面的帮助。没有必要将自己限制在您可以独自完成的事情上!
- 不要忘记您需要合并 PR——确保您有足够的社区支持来完成此步骤。
- 不要忘记您需要合并 PR——确保您有足够的社区支持来完成此步骤。
- 考虑将项目推销给潜在受指导者的最佳方式——通常,对受指导者的竞争非常激烈。
- 找到一个(或多个)平台来匹配项目和受指导者/实习生。研究其规则并遵守它们。
- 尽早让上游社区参与进来。尽快尝试获得他们对设计的反馈;这将在提交 PR 时获得回报。
记住:一个成功的项目和受指导者的积极体验可以带来更多参与 OSS 社区的机会。糟糕的受指导者体验可能会适得其反,因此将您的项目的主要目标之一定为积极的指导体验,以鼓励受指导者保持参与。
1 条评论