Which factors determine the success of an open source project?我们有一系列封闭源代码的应用程序和库,我们认为打开源代码是有意义的。 到目前为止,阻碍我们前进的是在开放代码之前需要清理代码库并记录源代码。 只有在我们有合理的机会成功完成项目时(即有贡献者),我们才希望开放资源。 我们坚信该代码对于大量开发人员而言将是有趣的。 哪些因素(不包括项目的"有趣性"和"有用性")决定了开源项目的成功? 例子:
有几件事控制着代码的成功。所有这些都必须获得通过的最小机会。
关于这个主题的书已经写好了。实际上,您可以在这里找到一本免费的书:生产开源软件 在研究这些问题时,您可能有兴趣查看UC Berkeley的开源课程的在线版本,该课程称为"数字信息的开源开发和发行:技术,经济,社会和法律观点"。它由莲花创始人Mitch Kapur和法学院教授Paula Samuelson共同讲授。我的通勤时间很长,去年在我的iPod上播放了该课程的音频-他们从非常广泛的(尽管显然是学术的)角度谈论了什么有效,什么无效以及为什么。 最重要的是程序要好。如果它不好,没有人会使用它。您不能指望鸡和鸡蛋会逆转,人们会视之为理,直到它变好为止。 当然,"好"仅意味着"比许多人的任何其他实际选择都要好",这并不意味着它严格地是最好的,只是它具有使许多人比其他人更好的功能。其他选择。有时,该程序在其他任何地方都没有等效项,因此在这方面几乎没有要求。 当一个程序很好时,人们就会使用它。显然,它必须在用户中占有一席之地-一个好的程序,不管设计得多么好,它所做的任何事都不是好事。人们可以对市场营销发表看法,但是真正好的产品在某种程度上具有推销自己的趋势。推广不好的东西要困难得多,因此很明显,一个人的首要任务应该是产品本身,而不是推广产品。 那么,真正的问题是:如何使它变得更好?对此的答案是一支敬业,技术精湛的开发团队。一个人很少能自己创造出好的产品。即使他们远胜于其他开发人员,多种观点对项目也有非常有用的影响。这就是为什么拥有公司赞助商如此有用的原因-它使其他开发人员(来自公司)对问题提出了自己的想法。如果开发该程序需要社区中通常不具备的大量专业知识,则此功能特别有用。 当然,我说的都是经验。我是x264(目前最活跃)的主要开发人员之一,这是最受欢迎的视频编码器之一。我们有两个主要的开发人员,社区中的各个小开发人员提供补丁,以及Joost(负责维护费率控制算法的Gabriel Bouvigne),Avail Media(我有时是按合同工作,目前正在按合同聘请编码员)的公司赞助。以添加MBAFF隔行支持),以及不时弹出的其他一些信息。 一个好的开发人员不会做一个项目-许多好的开发人员会做。最终的结果是,该程序可以比大多数商业竞争对手,硬件或软件,甚至那些拥有巨大开发预算的竞争对手,更快地以更高的质量对视频进行编码。 要获取贡献者,您首先需要用户,然后需要一些不完整之处。您需要触发"这很酷,但是我真的希望它具有这种或不同的方式。"如果您缺少明显的功能,则用户很可能会成为添加该功能的参与者。
我认为最重要的一个因素是正在使用您的项目的用户数量。 到目前为止,每个人的答案都不错,但是缺少一件事,那就是很好的监督。没有某种项目管理,没有比杀死开源项目更快的了。不要告诉别人要做什么,而只是为您希望吸引的开发人员添加一些结构和任务。 杂乱无章的项目迅速瓦解。这不是只鸟,您只是放开它,看着它飞走。 只是开源。最有可能的是,没人会开始捐款。但是至少您可以在新闻稿上写到您的产品是GPL或其他任何产品。
第一步是人们开始使用它... 今晚我只是读了一篇关于成功与不成功的开源项目的可用性方面的精彩文章。 摘抄:
确实,我认为答案是"您如何运行项目"。 您的所有示例都很重要,是的,但关键的事情是如何管理开发人员之间的交互,如何处理/接受补丁等,由谁"负责"以及他们如何承担这种责任等等。 比较和对比(不难找到历史!)在Perl中对Class :: DBI和DBIx :: Class的开发进行管理。 |