尊敬的 Safia,
我在一个研究实验室工作,并且开发了一些开源工具来与研究设备交互。在进行了一些 Google 搜索后,我发现有多个开源项目在做同样的事情,只是完成度和复杂度各有不同。我认为如果这些项目能够以某种方式联合起来,对于使用这种实验室设备的研究人员来说,拥有强大的开源工具将是非常棒的。我该如何将那些在做相同事情的不同项目的人们聚集在一起呢?
真诚的,犹他州的联合者
你好!这是一个很棒的问题,并且触及了开源最重要的部分之一:倾听。与围绕开源项目开发社区相比,编写和发布软件是一个相当容易的过程。因此,你可能会经常发现多个开源项目都在解决相同的问题,但它们分散在不同的组织或代码仓库中。在弄清楚是否应该将所有这些项目整合到一个代码仓库和一个社区中之前,有几件事你应该考虑。
就像生活中的大多数事情一样,在做出最终决定之前,你必须进行大量的倾听。你需要倾听哪些方面呢?在做出决定之前,需要询问几个问题并考虑一些想法。准备好了解了吗?好的,我们开始吧!
因为你对将人们聚集在一起感兴趣,所以我假设你对每个项目都在努力实现的共同目标有一个想法。如果你没有,这就是倾听发挥作用的地方。但这里有一个关键:除了弄清楚每个项目的目标以及它们共同的之处之外,找出每个项目的差异也很重要。虽然有些项目可能具有相同的技术功能,但它们不一定具有相同的以用户为中心或社区目标,而最终这些因素对于项目的活力更为重要。人们在项目或其目的周围不分享的想法和想法,往往比他们确实分享的目标更能分裂他们。
统一项目为你提供了解决每个项目中缺失组件的机会——这些组件可以是技术性的,也可以是非技术性的。例如,一个项目可能拥有强大的现有社区,而另一个项目可能拥有完善的架构,但这两个项目都可能缺乏良好的文档。在提议统一多个项目之前,列出一个清单,列出每个项目的“最佳版本”应该具备的一些东西。例如,一个理想的开源项目,用于管理与实验室设备的交互,可能具有良好的文档、示例用例和一个活跃的支持邮件列表。通过识别这些缺失的组件以及对项目应该是什么样的期望,你就有机会确保这些因素的存在以及项目从一开始的健康和活力。
最后一点:合并项目本身也有其痛苦之处。你可能最终不得不将以前从未一起工作过,或者具有不同开发或项目管理风格的人们聚集在一起。从这个意义上说,联合项目需要对项目的情感需求有高度的敏感性和洞察力。事实上,你会发现合并项目的技术挑战与联合项目的人际关系挑战相比相形见绌。事实证明,人比软件更难搞定!
总而言之,当你想将多个项目合并到一个组织或代码仓库时,请考虑以下几点:
- 每个项目是否都有共同的最终目标,使人们更容易彼此合作?
- 如果项目有不常见的目标,这些目标是否严重到足以阻止人们之间的有效协作?
- 是否存在外部因素,例如资助或企业赞助,可能使两个不同的项目难以联合?
- 你是否准备好迎接将人们聚集在一起为共同目标而努力的挑战?
如果这些问题的答案促使你重新考虑是否应该合并项目,花一些时间思考一下你在过程中可能遇到的问题。如果这些问题的答案让你对联合多个项目的可能性感到更加自信,那么就放手去做,联合它们吧!
结束,
Safia
1 条评论