开源一个成熟的商业软件需要花费大量资金,即使你所做的只是“隔墙扔出一个 tarball”。这就是为什么公司放弃他们不再关心的软件时,很少将其开源,而那些放弃开源项目的公司也很少将它们转移到能够使其他人受益的新家。
如果你只考虑了最终结果,你可能会惊讶于到达那里有多么昂贵。
成本包括:
- 法律许可。 拥有使用该软件的权利与赋予世界上每个人不受限制地使用它并创建衍生产品的权利是不同的。检查每一行代码以确保你拥有在 OSI 批准的许可下发布的必要权利是一项巨大的任务,需要“解放团队”中的高价值员工。这包括开发人员和律师。
- 重新打包。 为了将其传递给他人,必须创建一个包含所有必要的源代码、构建脚本以及非公共源代码和工具依赖项的自包含软件包,因为它很可能在内部不存在。同样,解放团队将需要你最好的开发人员。
- 保留出处。 仅仅因为你有信心你拥有代码的权利,并不意味着其他人也会如此。版本控制系统可能包含许多提供关于谁编写了哪些代码的信心的信息,因此重新打包还需要包括一种迁移提交信息的方式。
- 代码清理。 文件头有望包含来源信息,但解放团队最好检查一下。他们还需要检查评论中是否有诽谤和亵渎性语言,更不用说商业秘密(尤其是来自第三方的商业秘密)和其他知识产权问题。
对于一个可持续的项目,以上所有内容加上:
- 遵守主机治理。 将你的项目迁移到像 Apache、Conservancy、Public Software 等主机是一个绝妙的主意,但这样做需要准备工作。至少,你需要与新的主机组织协商,他们很可能需要你满足他们的流程要求。这显然包括文书工作,但代码可能需要符合版权声明等等。这对你的解放团队来说是更多的工作。
- 权利迁移。 你的代码有一个现有的社区,需要迁移到你的新主机。这包括你的员工——他们也是社区!他们将需要提交权利、治理权利、社交媒体权利等等。你的解放团队显然需要你的社区经理,但也可能需要人力资源部门的投入。
- 捐赠。 保持你的项目存活需要资金。到目前为止,这一切都来自你,但如果你在新社区和主机接受财务负担之前就简单地离开,可能会出现问题。你应该考虑向你的新主机捐赠,以支付他们的迁移成本以及至少一年的社区托管成本。
- 营销。 解释你正在进行的迁移、你进行迁移的原因以及对你和社区的好处非常重要。如果你不这样做,周围会有很多喷子为你做这件事。创建一个新闻博客帖子和一个常见问题解答——必要的最低努力——确实需要有经验的人,你会希望将这样的人添加到你的解放团队中。
解放你的软件的动机
必须有一些商业理由使时间和精力以及费用的投入值得。
- 市场策略。 越来越多的公司选择围绕对其业务有贡献的软件创建实质性的、公开管理的开源社区。开放的多方利益相关者共同开发者社区是所有参与者以最低成本进行创新的绝佳载体。只要你的市场策略不需要制造人为稀缺。
- 与第三方的合同。 虽然代码的所有者可能不再感兴趣,但可能有一个或多个当事方对其负有合同责任。与其违反合同或买断合同,不如转向开源可能更好。
- 更大的依赖生态系统。 你可能不再需要代码本身,但你很可能还有其他部分业务依赖于它。如果他们愿意集体资助开发,你可以考虑采用“内部开源”策略,这将为你节省上述许多成本。但最好的方法可能是开放代码,以便你的团队和其他公司的团队可以资助代码。
- 内部政治。 从外部看,公司看起来像一个整体。从内部看,很明显它们是它们所处市场的缩影。因此,它们有可以通过开源解决的政治权术。
这一切并不是说转向开源就能保证项目的成功。毕竟,“梦幻之地”策略只在电影中有效。但虽然将一个失败的公司解放项目视为“弃用软件”可能很诱人,但它很可能根本不是这样打算的。
阅读 Meshed Insights 上的完整文章。
评论已关闭。