我们只有在项目有贡献者时才想要开放源代码——即使项目有合理的成功机会。我们相信这些代码对广大开发人员很有趣。
除了“有趣性”和“实用性”之外,哪些因素决定了开源项目的成功?
例如:
- 代码的规范性 - 源代码注释的可获得性 - 完全或部分记录的API - 许可证选择(GPL vs. LGPL vs. BSD等) - 公共存储库的选择 - 投资于公共网站
我认为最重要的因素是使用你的项目的用户数量。 否则,它只是一堆写得很好、有用且文档完备的东西,闲置在服务器上没有什么作用...
实际上,我认为答案在于“你如何运行项目”。
所有的例子都很重要,但关键是如何管理开发人员之间的互动,如何处理/接受补丁等,谁“负责”以及他们如何处理这种责任等等。
比较和对比(历史并不难追踪!)Perl中Class::DBI和DBIx::Class的开发管理。
我刚刚阅读了一篇有关成功与失败的开源项目可用性方面的优秀文章。
摘录:
大量的带宽已经被浪费在争论开源软件/免费软件(以下简称“OSS”)中缺乏可用性上。这场辩论正在博客、论坛和 Slashdot 评论中继续。有些人认为糟糕的可用性是整个 OSS 世界的问题,而另一些人则认为 OSS 的可用性很棒,但真正的问题是那些思维闭塞的用户,他们期望每个程序都能克隆 Microsoft。有些人认为 UI 问题只是暂时的成长烦恼,而其他人则说 OSS 开发模式系统地产生了糟糕的 UI。甚至有些人认为 GPL 间接地奖励难以使用的软件!(声明一下,我不同意这种观点。)
只需开源它。很可能,没有人会开始贡献。但至少你可以在新闻稿上写明你的产品是GPL或其他。
第一步是让人们开始使用它...
也许在用户感到舒适之后,他们会开始贡献。
到目前为止,大家的回答都很好,但缺少一件事,那就是良好的监督。没有某种项目管理,没有什么比这更能够迅速扼杀开源项目了。并不是要告诉人们该做什么,而是为了为你希望吸引的开发人员添加一些结构和任务。
组织混乱的项目很快就会崩溃。它不是一只鸟,你可以放手让它飞走。