和许多人一样,我有很多软件想法,其中有几个非常好,但时间不够,因为我只是一个开发者。我想开源一些正在进行中的软件和想法,但同时也要保留项目的方向和愿景。到目前为止,我只在非免费软件上工作过,我不明白开源如何满足我对它的控制需求。
让我明确一点,我不打算将开源项目商业化以赚钱。这一点我知道。我只想掌控我所开始的愿景。
为了控制自己的开源项目,我需要通过提供指导来管理它,但我对如何管理有效地免费的东西感到困惑。
我是在错误的道路上吗?
和许多人一样,我有很多软件想法,其中有几个非常好,但时间不够,因为我只是一个开发者。我想开源一些正在进行中的软件和想法,但同时也要保留项目的方向和愿景。到目前为止,我只在非免费软件上工作过,我不明白开源如何满足我对它的控制需求。
让我明确一点,我不打算将开源项目商业化以赚钱。这一点我知道。我只想掌控我所开始的愿景。
为了控制自己的开源项目,我需要通过提供指导来管理它,但我对如何管理有效地免费的东西感到困惑。
我是在错误的道路上吗?
我自己也经历过这个过程,告诉你,你现在把马车放在了马前面。不想听起来太苛刻,但你需要掌握一些参考知识。
首先,“控制自己的开源项目” - 是互相矛盾的。开源涉及将某物赠送给社区,所以思考控制和拥有已经赠送出去的东西是你需要克服的心理障碍。
其次,你需要有其他人愿意参与你的项目。没有他们,你就没有任何人可以转移你可能有的任何方向和愿景。
第三,无论是最初的开发者还是具有最初想法的人,在任何带有任何追随者的开源项目中,都需要通过项目指导来获得控制权。如果社区愿意遵循您的指导,那么它们会这样做。否则,他们将不参与。
足够的演讲台。就项目管理而言,将角色分为两个功能: 1)吸引开发人员,承担任务,代码审查,指导和方向等。相信我,这既是销售工作,也是基于信誉的。从上到下,等级制,资深制等预期是让志愿者远离您的项目的一种可靠方式。 2)仓库物流。最终,你可以控制谁是/不是提交者,他们的权限等。如果你做得足够好,这会自然而然地得到解决。
最后一点评论,开源项目并不容易起步。有更多的项目比愿意付出必要的持续努力来推动你的项目发展的人更多。
祝你好运!
嗯,布莱船长,这完全取决于你如何分配提交权限,是吧?如果你开放源代码,但严格控制提交,那么这个愿景就完全属于你。当然,前提是你能找到其他人足够关心并提交补丁供你审查和评估。
听起来缺少的是一些热爱你的想法并愿意免费工作的热情开发者。
我不认为他们会从互联网上冒出来,你需要去找到他们。
一旦你找到了他们,你需要让他们保持兴趣,这可能意味着放弃一些或全部控制权...
问问自己,你的目标是将软件创新带给世界,还是拥有一个宠物项目?
这取决于你要开源的项目类型。
你是要在小型库中开源一个紧密定义的核心功能,比如Ruby Gem或PHP PEAR Package,还是想创建下一个拥有数百万用户意见的WordPress?
我建议从小做起。使用你以前编写过的东西,并且可以被其他人使用:
创建你想要的特定功能。将其放在其他用户可以fork或branch你的代码的地方,但不要让他们合并回你的代码的主分支或主干。
这样,人们就可以使用你的代码,但最终,你控制着什么进入官方项目。
基本上,你不能阻止别人 fork 你的代码并开始一个新项目。
最多你能做的是选择一种许可证,规定源代码不能用于同一产品(我不知道哪种许可证,但它确实存在)。
其次,你可以很好地控制现有基础和列出要包括的功能列表。
如果你的项目被 fork,你的新功能将使其他功能不那么吸引人。
最后,如果你不继续工作并放任它死亡,你的项目将被 fork。否则,当你正在辛勤工作时,没有人会来 fork 你的项目,对吗?
这里还有一些有趣的视频:
如果它是开源的,最终你无法控制它 - 任何人都可以自由地分叉并走自己的路。防止这种情况发生的方法是成为一个“仁慈的暴君”,并接受其他人对项目方向的意见。当然,这假设其他人对你正在做的事情感兴趣。