开源项目的可持续性:四大问题

原创
2021/03/27 09:13
阅读数 1.1W

本文翻译自作者 VM BRASSEUR 的文章 Sustainability for Open Source Projects: 4 Big Questions

"可持续发展"这个词在自由和开放源码软件(FOSS)中被经常提起。什么是可持续性,它对你的项目意味着什么?

可持续发展的概念并不是起源于20世纪80年代,但它在那个时候获得了最为广泛的关注,这要归功于 Brundtland 的报告,该报告是联合国在1987年发布的,由一个跨职能的科学家、政策制定者和商业人士组成的团队经过三年的研究所形成的。该报告将可持续发展定义为"既满足当代人的需求,又不对后代人满足其自身需求的能力构成危害的发展"

虽然我们在这里所说的可持续发展指的是全人类这个范畴,但这个定义也适用于自由和开放源码软件的开发。然而,在不同的项目中,对这个定义的实际解释会有很大的不同。一方面,对于一个小而流行的 Python 库来说,可持续性可能意味着通过将核心贡献者的数量增加一倍来增加总线因素,从而避免维护者的倦怠,以确保总是有人可以为项目工作。实现这一点可能需要额外的文档、自动化以及培训,以指导新的贡献者,所以这不一定是一个项目可以在一夜之间完成的事情。

另一方面,有像 Blender、Let's Encrypt、Inkscape 和 Signal 这样的项目。相对于这些项目的用户数量(通常以百万计),他们的贡献者很少(不超过几百人)。吸引更多的贡献者可能是这些大型项目的一个目标,但它可能比提供社区、财务独立、扩大基础设施或关键开发的合同等项目的优先级低。

通常,关于 FOSS 可持续性的讨论最终都是以财务状况的好坏来形容,但正如你从上面的例子中可以看到的那样,这并不是那么简单。维护者支付一定的报酬是很好的出发点,但是如果维护者仅仅只是在为基本的项目和社区维护而拼命工作的话,这对项目的可持续发展是没有任何帮助的。

四大问题

事实上,经过对许多项目的仔细检查,可能会发现它们的可持续发展之路涉及到人员和财务要素的结合,需要加以平衡和优先考虑。这种检查本身可能是一个困难的过程,但如果项目社区通过自由和开放源码软件可持续发展的四大问题来进行检查,就会变得相对容易一些。

  1. 项目现在在哪里?项目现在的真实状态是什么?它的痛点和瓶颈是什么?有多少贡献者,他们的感受如何?项目背负着怎样的技术债务,包括文档、用户体验、安全和可访问性等重要但经常被忽视的东西?
  2. 项目想要达到的目标是什么?每个项目维护者的脑海中都有一幅"有一天......如果...... "的项目图片。与社区分享这些图片——无论它们现在看起来多么不切实际。进行公开对话,将所有这些图片凝聚成一个共享的图像,可以作为"我们希望项目长大后是什么"的答案。这个形象并不是现实,可能几年内还不会成为现实,但它可以让社区朝着一个共同的目标团结起来,并帮助设定一个方向,以更好地确保项目以可持续的方式发展。
  3. 项目如何从现在的位置发展到我们希望的位置?这就是优先级和平衡的作用。你可能很熟悉为软件开发创建一个路线图,列出要做的功能计划和顺序。在回答这个问题时,你正在创建项目开发的路线图。"核心贡献者数量翻倍"是该路线图的一个好功能,但它可能有"增加贡献者文档"和 "增加测试覆盖率"的前提条件和依赖性。同样,"每年的捐款达到25000美元"可以帮助支付扩展基础设施的费用,但它有自己对"创建一个非营利组织"或"找到一个财政赞助商"的依赖性,因为管理这笔钱和涉及的税收不是一件小事。就像软件一样,提前考虑好这些依赖性可以让项目开发减少挫折感,提高成功率。
  4. 项目如何保持在我们想要的地方?最后,这就是可持续性问题。如果不回答前面三个问题,你就无法回答这一个问题,即项目如何在不影响未来需求的情况下满足现在的需求。值得庆幸的是,在回答前三个问题的过程中,大多数项目发现他们已经在逐步解决这个问题。回答这个问题就变成了坐下来收集所有现有的想法,与社区分享,并定期重新审视它们,以确保项目仍在朝着可持续发展的方向前进。

规划

我们现在在哪里,我们要去哪里,我们将如何到达那里,以及我们将如何保持在那里?能够回答这些问题可以使项目和社区更强大、更加具有可持续性。

回答这些问题需要多长时间,这在很大程度上取决于项目、需求和文化。有些人会对更敏捷的东西感到舒服,制定最小可行的计划,然后定期对它们进行迭代。其他人可能更喜欢瀑布式的方法,提出一个详细的路线图来打动潜在的赞助商和贡献者。唯一错误的方法是根本不做,错误地认为项目的可持续性是可以推迟到以后的事情

展开阅读全文
加载中
点击加入讨论🔥(3) 发布并加入讨论🔥
打赏
3 评论
6 收藏
1
分享
返回顶部
顶部