本月在“队列”专栏,来自 LinuxQuestions.org 的 josephj 提问
如何才能让程序员加入我们的项目?
我接手了一个用 $programming_language 编写的项目,因为最初的开发者离职了,没有人挺身而出。它目前托管在 GitHub 上,并采用 GPL 3 许可证。
这是一个我每天都在使用的工具,我不希望看到它消亡。我对 $programming_language 和 GUI 编程知之甚少,所以我自己无法维护它。
我该如何找到一位或多位有时间帮忙的程序员呢?
过去我找到了两三位程序员,但是,尽管他们有良好的意愿,但没有人坚持足够长的时间来完成很多工作。
答案
这是一个我经常被问到的问题,所以感谢您将其提交给“队列”专栏。由于程序员的需求非常旺盛,并且他们自己通常也有很多业余项目,因此让他们参与您的项目可能是一个挑战。我对您的第一个建议是为参与设定现实的期望。除非您找到另一位对该项目非常感兴趣或迫切需要它来工作的程序员,否则您不太可能找到人直接接手维护工作。成为维护者所涉及的时间、奉献精神和责任不应被低估。话虽如此,以下是一些您可以做的事情,以确保找到您的项目并有兴趣参与的人员能够顺利地成为 नियमित 贡献者。
介绍和信息传递
至关重要的是,您的项目需要清晰地概述
- 它做什么,
- 它是为谁服务的,
- 它为什么与众不同,
- 以及何时何地应该使用它。
这些项目看起来很简单,对于已经参与项目一段时间的人来说,很容易忘记这些信息对于其他人来说可能并不明显。许多项目,尤其是较小的项目,由于信息缺失、难以找到或难以理解而被忽视。您正在使用 GitHub,因此 README.md 文件是放置这些信息的地方。(在 GitHub 之外,README 文件也具有相同的基本目的。)包含的信息应该简洁,但长度要足以清晰地表达您认为对项目重要的信息。
贡献指南
您还应该创建一个 CONTRIBUTING 文件(如果您在 GitHub 上使用 Markdown,则为 CONTRIBUTING.md 文件),其中包含有关实际参与您的项目的信息。这里是提供关于克隆的简单分步说明、关于代码应如何构建的详细说明、您可能拥有的任何编码标准或格式标准、关于测试的信息、提交补丁的流程、您的拉取请求和审查流程,以及任何其他被认为对贡献至关重要的信息的地方。GitHub 对此评价很高:从维护者的角度来看,该文档简洁地传达了如何最好地协作。对于贡献者来说,快速查看此文件即可验证他们的提交是否符合维护者的指南。
简单且定义明确的初始贡献
新的潜在贡献者可能面临的最困难的决定之一是找到从哪里开始参与。告诉他们直接进入问题跟踪器可能很容易,但是拥有一系列小的、定义明确的任务可以大大减少获得新贡献的阻力。
发出行动号召。诸如小的 UI 问题、翻译和简单的小修复之类的任务将鼓励人们花时间熟悉您的代码库,以查看参与是否适合他们(以及您)。一旦有人花时间深入研究您的代码,那么下一步提交一个小补丁似乎就不那么困难了。在几个补丁之后,这个人可能既愿意也有能力承担更大的任务,例如更重要的功能请求。从那里,他们可能会成为长期的提交者。
代码质量和文档
程序员倾向于出于某种原因参与他们感兴趣的项目。持续参与的另一个先决条件是处理他们理解的代码库。编写结构良好且具有高质量文档的代码将帮助其他人更快地入门,并将确保您在流程的“熟悉您的代码库”部分不会失去太多贡献者。
鼓励初始贡献
特别是对于较小的项目,很容易让补丁被忽略。对于新的贡献者来说,即使是由于繁忙的日程而不是代码质量差而没有得到回应,也不太可能导致进一步的参与。此外,尽管并非所有贡献的代码都将是可接受的质量,但您拒绝代码的方式在许多方面为整个项目定下了基调。拥有愿意且能够以建设性的方式识别和指导潜在贡献者的现有贡献者至关重要。尖酸刻薄的敌对回应不会导致潜在贡献者提供更高质量的代码,而是导致他们为不同的项目做出贡献。
在线下之外寻找
有了 GitHub 等出色的工具,很容易忘记也可以在其他地方找到潜在的贡献者。会议、本地用户聚会和其他线下选项可能是很好的资源,不应被遗忘或忽视。
现实情况是,为一个新的或小的开源项目获得贡献者并不容易。确保您掌握了基本原则至关重要。拥有关于如何参与的明确指南、易于入手的任务以及欢迎的建设性反馈循环将促进您获得的贡献,并将有助于确保您获得持续且可持续的贡献者。
3 条评论