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

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

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

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

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

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

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

四大问题

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

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

规划

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

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

相关文章
相关标签/搜索