Open source 保持大量爱好项目活力的最佳方式;开源?

Open source 保持大量爱好项目活力的最佳方式;开源?,open-source,Open Source,因为我的时间有限,我通常只能专注于一个或两个我的爱好项目,而其他的则坐在那里消磨时间 我正在寻找一个能让我更好地分配时间的解决方案。我担任项目指导角色的开源是现实的,还是有更好的解决方案 在我的例子中,一个项目有一个规模相当大的用户社区,但目前是封闭源代码的。已经有人要求对其进行开源。您的项目仍然会因为开源而浪费掉。开源项目需要更多的工作,因为您必须: 使文档保持最新,以便其他开发人员能够理解它 如果您确实让人们提交更改,请整合他们或向他们解释为什么不能包含他们的更改 对你的产品应该是什么保持

因为我的时间有限,我通常只能专注于一个或两个我的爱好项目,而其他的则坐在那里消磨时间

我正在寻找一个能让我更好地分配时间的解决方案。我担任项目指导角色的开源是现实的,还是有更好的解决方案


在我的例子中,一个项目有一个规模相当大的用户社区,但目前是封闭源代码的。已经有人要求对其进行开源。

您的项目仍然会因为开源而浪费掉。开源项目需要更多的工作,因为您必须:

  • 使文档保持最新,以便其他开发人员能够理解它
  • 如果您确实让人们提交更改,请整合他们或向他们解释为什么不能包含他们的更改
  • 对你的产品应该是什么保持一个愿景,并防止人们实施有损于该愿景的功能

开源可能确实是个好主意。如果您的项目对其他人来说有趣且有用,那么其他开发人员可能会比您想象的来得更快。看到别人拿起你的工作并为之做出贡献,对你来说也是一种极大的快乐和动力

另一方面,如果你打开了一个项目的源代码,它不仅仅是通过把它放到Sourceforge上完成的。为使项目对其他开发商具有吸引力,项目应具备:

  • 一个公共SVN、git或同等的存储库,您可以尽可能广泛地使用它
  • 网站或小型wiki(或网站上的一些页面),包含所有需要下载和构建的文档以及任何代码
  • 代码的良好文档(最好是doxygen,然后可以在网站上发布),以及
  • 如果你真的想激励其他人使用你的代码,也许你必须清理项目及其设计
  • 在freshmeat.net(如果是Unix项目)等典型网站上列出的清单,您可以在每次发布时更新这些清单;如果可能的话:与相关社区沟通,比如在其他项目的邮件列表中发布您的项目
  • 即使不在特定项目上工作,对任何有关该项目的问题都非常敏感
我用我的两个项目做了这个。几个月后,它们被纳入了主要发行版。又过了一段时间,我发现一个法国人正在为其中一个项目编写一个完整的gui。有几个开发者对另一个感兴趣,但最终没有人真正发送补丁

如果你只是半途而废——把它放到Sourceforge上,然后每两年上传一个新版本——我看不出它会有什么帮助。您在it上投资越多,您的项目对其他人的吸引力就越大,从长远来看,您在开发者帮助方面获得的收入就越多


您的案例的答案可能是思考哪些项目真正/最值得这些努力,然后继续进行。

将项目数量保持在两个或三个,并将其开源。自己不断地修改代码,花一些时间指导少数几个项目。开源并不意味着你现在可以有几十个项目,完全依赖你的同级程序员

项目之所以有活力,是因为有人在照顾它们。开源并不是默认的解决方案,只要看看SourceForge上大量死掉或孤立的产品就知道了


如果你是开源的,你的下一步就是建立一个用户群来管理这个产品。一旦建立了这个用户群,您就可以离开它。

使用它们,或者找到这样做的人

只有当对功能和修复有需求,人们拼命解决bug,或者认为“只要……”这就能解决我的问题时,他们才会生存。没有需求,没有人会觉得有必要去挖掘你的代码,包括你自己

如果用户在那里,您很难满足他们的需求,那么开源是一个可行的解决方案

然而,向SourceForge提交一个项目并在其上贴上“GPL”标签不会产生需求。你至少可以提高可见性:建立一个网站,添加一些口头描述,确保谷歌为其编制索引,将其提交给“自由软件”网站

如果是编程工具,请尝试将它们应用到您正在进行的项目中。
如果是应用程序,找出它们解决了什么问题,那么还有谁遇到了这个问题,那么它们为什么不使用它


或者——即使听起来很严厉——让他们安静下来。

一次只关注一个项目(最多两个)。根据项目对他人和自己的有用性,对项目进行优先排序。关注(1)最有用、用户最多的项目(例如,如果它做了其他程序无法做的事情),或者(2)给你带来最多智力挑战的项目。如果这两个项目都是,那就更好了

如果您让项目保持足够长的活动时间,使其能够聚集大量的用户群,那么属于第一类的人可能能够作为开源软件生存。然后,其他一些开发人员也可能对该项目感兴趣并加入该项目(对于Subversion项目,第一个开发人员花了好几个月的时间才从外部加入,大约32分钟)。一个只有一个开发者的项目在任何时候都可能死亡,但是如果有多个有动机的开发者,那么这个项目有更好的生存机会。重要的是要让一些工作得到释放。如果没有人能使用这个程序,那么它就不会聚集一个用户群

属于后一类的课程主要是让你自己学习一些东西,但对其他人来说可能没有那么大的价值。如果你对它们失去兴趣,就把代码埋在硬盘的一个角落里,继续前进。即使您将其作为开源发布,也没有人会继续开发它。如果你喜欢的话,把它压缩成一个包,放在你的网站上