哪些因素决定了开源项目的成功?

时间:2020-03-05 18:58:15  来源:igfitidea点击:

我们有一系列封闭源代码的应用程序和库,我们认为打开源代码是有道理的。

到目前为止,阻碍我们前进的是在打开代码之前需要清理代码库并记录源代码。

只有在我们有合理的机会成功完成项目时,我们才希望开放资源。有贡献者。我们坚信该代码对于大量开发人员而言将是有趣的。

哪些因素(不包括项目的"有趣性"和"有用性")决定了开源项目的成功?

例子:

  • 代码清洁度
  • 源代码注释的可用性
  • 完整或者部分记录的API
  • 许可选择(GPL,LGPL,BSD等)
  • 选择公共仓库
  • 投资公共网站

解决方案

回答

确实,我认为答案是"我们如何运行项目"。

所有示例都很重要,是的,但是关键的事情是如何管理开发人员之间的交互,如何处理/接受补丁等,由谁"负责"以及他们如何承担这种责任等等。

比较和对比(历史很难找到!)在Perl中对Class :: DBI和DBIx :: Class的开发进行管理。

回答

今晚我只是读了一篇关于成功与不成功的开源项目的可用性方面的精彩文章。

摘抄:

A lot of bandwidth has been wasted arguing over the lack of usability in open-source software/free software (henceforth “OSS”). The debate continues at this moment on blogs, forums, and Slashdot comment threads. Some people say that bad usability is endemic to the entire OSS world, while others say that OSS usability is great but that the real problem is the closed-minded users who expect every program to clone Microsoft. Some people contend that UI problems are temporary growing pains, while others say that the OSS development model systematically produces bad UI. Some people even argue that the GPL indirectly rewards software that’s difficult to use! (For the record, I disagree.)
  
  http://humanized.com/weblog/2007/10/05/make_oss_humane/

回答

有几件事控制着代码的成功。所有这些都必须得到实现,以被采纳的机会微乎其微。

  • 市场-开源项目必须有一个市场。如果项目是太空榨汁机,那么我怀疑我们会成功。我们必须确保项目在用户和开发人员中得到广泛采用。如果我们也可以让其他公司也采用它,则成功的可能性是后者的两倍。
  • 文档-正如我们所接触的早期文档一样,它是关键。本文档中包括注释的代码,体系结构决策和API注释。即使文档中包含错误或者与软件有关的错误,也可以。记住,透明度是关键。
  • 自由-我们必须允许代码"自由"-我的意思是言论自由,而不是啤酒自由。如果我们感觉自己的市场正在成为其他公司的图书馆,那么BSD许可证是最佳选择。如果软件要在台式机上运行,​​那么GPL是选择。
  • 透明度-我们必须在透明的环境中编写软件。一旦开源,就没有隐藏的秘密。我们必须说明我们所做的一切以及我们在做什么。这会让开发人员大为恼火
  • 开发者社区-一个强大的开发者社区是必需的。这必须存在。只有约5%的用户回馈该项目。如果有人注意到一年没有发布任何版本,他们会认为"哇,这件软件已经完成了",他们会认为"开发人员必须丢弃它"。让开发人员继续努力,即使这意味着他们要花钱。
  • 交流-我们必须确保社区能够交流。他们必须能够提交错误,讨论解决方法以及发布补丁。没有反馈,将项目开源是没有意义的
  • 可用性-使代码易于获取是必要的,即使这意味着惹恼律师。我们必须确保项目易于下载和使用。我们不希望用户必须跳过18个nag屏幕并签署合同才能执行此操作。我们必须使事情简单,整洁

回答

我认为最重要的一个因素是正在使用项目的用户数量。
否则,它只是一堆写得很好,有用且有据可查的东西,它们坐在服务器上的工作并不多。

回答

要获取贡献者,我们首先需要用户,然后需要一些不完整之处。我们需要触发"这很酷,但是我真的希望它具有这种或者不同的方式。"如果我们缺少明显的功能,则用户很可能会成为添加该功能的参与者。

回答

最重要的是程序要好。如果它不好,没有人会使用它。我们不能指望鸡和鸡蛋会逆转,人们会视之为理,直到它变好为止。

当然,"好"仅意味着"比许多人的任何其他实际选择都要好",这并不意味着它严格地是最好的,只是它具有使许多人比其他人更好的功能。其他选择。有时,该程序在其他任何地方都没有等效项,因此在这方面几乎没有要求。

当一个程序很好时,人们就会使用它。显然,它必须在用户中占有一席之地-一个好的程序,不管设计得多么好,它所做的任何事情都不是好事,并不是很好。人们可以对市场营销提出意见,但真正好的产品在某种程度上倾向于推销自己。宣传不好的东西要困难得多,因此很明显,一个人的首要任务应该是产品本身,而不是宣传产品。

那么,真正的问题是:如何使它变得更好?对此的答案是一支敬业,技术精湛的开发团队。一个人很少能自己创造出优质的产品。即使他们远胜于其他开发人员,但多角度对项目的影响却是难以置信的。这就是为什么拥有公司赞助商如此有用的原因-它使其他开发人员(来自公司)对问题发表看法,以发表自己的意见。在开发程序需要社区中通常不具备的大量专业知识的情况下,这尤其有用。

当然,我说的都是经验。我是x264(目前最活跃)的主要开发人员之一,这是最受欢迎的视频编码器之一。我们有两个主要的开发人员,社区中的各个未成年人开发人员提供补丁,以及Joost(负责维护费率控制算法的Gabriel Bouvigne),Avail Media(我有时是按合同工作,目前正在按合同聘请编码员)的公司赞助。以添加MBAFF隔行支持),以及不时弹出的其他一些信息。

一个好的开发人员不会做一个项目-许多好的开发人员会做。最终的结果是,该程序可以比大多数商业竞争对手,硬件或者软件,甚至那些拥有巨大开发预算的竞争对手,更快地以更好的质量对视频进行编码。

回答

只是开源。最有可能的是,没人会开始捐款。但是至少我们可以在新闻稿上写到产品是GPL或者其他任何东西。

第一步是人们开始使用它...
也许然后,在用户感到舒适之后,他们将开始做出贡献。

回答

到目前为止,每个人的答案都不错,但是缺少一件事,那就是很好的监督。没有某种项目管理,没有什么比杀死开源项目更快的了。不要告诉别人要做什么,而只是为我们希望吸引的开发人员添加一些结构和任务。

杂乱无章的项目迅速瓦解。它不是一只鸟,我们只是放开它,看着它飞走。

回答

在研究这些问题时,我们可能有兴趣在UC Berkeley上查看在线课程的在线版本,该课程称为"数字信息的开源开发和发行:技术,经济,社会和法律观点"。它由莲花创始人米奇·卡普尔(Mitch Kapur)和法学院教授宝拉·萨缪尔森(Paula Samuelson)共同讲授。我上班时间很长,去年他们在我的iPod上放了课程的音频,他们从非常广泛的(尽管显然是学术的)角度谈论了什么有效,什么无效以及为什么。

回答

关于这个主题的书已经写好了。实际上,我们可以在这里找到一本免费的书:生产开源软件