因为我的时间有限,我通常只关注一两个我的爱好项目,而其他人则坐在那里浪费.
我正在寻找一种能让我更好地分配时间的解决方案.是开源的,我负责指导项目的现实,还是有更好的解决方案?
就我而言,一个项目有一个合理规模的用户社区,但目前是封闭源.有人要求开源.
开源可能确实是一个好主意.如果您的项目对其他人有趣且有用,那么开发人员可能会比您想象的更快.看到其他人接受你的工作并为之做出贡献,这也是一种极大的乐趣和动力.
另一方面,如果你开源项目,不仅仅是把它扔在Sourceforge上.为了使项目对其他开发人员具有吸引力,它应该具有:
公共SVN,git或等效存储库,您可以尽可能广泛地使用它们
一个网站或小维基(或您网站上的某些页面),包含下载和构建的所有必要文档以及任何代码
代码的好文档(最好是你可以扔在网站上的doxygen),以及
如果您真的想激励他人处理您的代码,那么您也必须清理项目及其设计
在每个版本中更新的puremeat.net(如果是Unix项目)等典型网站上的列表; 如果可能的话:与相关社区沟通,比如在其他项目的邮件列表中发布您的项目.
即使不在特定项目上工作,也要对任何有关它的查询做出非常敏感的反应
我用我的两个项目做到了这一点.几个月后,它们被纳入主要发行版.又过了一段时间,我找到了一个法国人为其中一个项目写了一个完整的gui.一些开发人员对另一个感兴趣,但最终没有人真正发送补丁.
如果你只是做了一半 - 把它扔在Sourceforge上,然后每两年上传一个新版本 - 我看不出它会有什么帮助.您投入的越多,您的项目对其他人的吸引力就越大,从长远来看,开发人员的收入会帮助您获得更多收益.
您的案例的答案可能是考虑哪些项目真正/最值得这些努力,然后继续它们.
您的项目仍将作为开源浪费.开源项目需要更多工作,因为您必须:
使文档保持最新,以便其他开发人员能够理解它
如果您实际上让人们提交更改,请将它们集成或向他们解释为何不能包含更改.
保持对产品应该是什么的愿景,并防止人们实施有损于该愿景的功能.
使用它们 - 或者找一个做的人.
只有当需要功能和修复,人们拼命地解决bug,或者想"如果只是......这将解决我的问题"时,它们才能生存.如果没有需求,没有人会觉得不得不深入挖掘代码,包括你自己.
如果用户在那里并且您很难满足他们的需求,那么开源是一个可行的解决方案.
但是,向SourceForge提交项目并在其上贴上"GPL"标签不会产生需求.您至少可以提高可见性:设置网站,添加一些口头描述,确保谷歌索引它,将其提交到"免费软件"网站.
如果是编程工具,请尝试将它们用于您的正在进行的项目中.
如果它是应用程序,找出他们解决了什么问题,那么还有谁遇到了这个问题,那么他们为什么不使用它.
或者 - 即使听起来很刺耳 - 让他们安息吧.