大约五年前,我被一家专门从事数据库安全的公司聘用。我们的一些软件用于保护军事资产和主要银行的数据库。但是很多开发工作与绝密武器或机密信息相去甚远。例如,我们编写了一个小型命令行实用程序,用于驱动虚拟机进行集成测试。它帮助我们消除了安装和升级过程中的故障。我不得不在我的下一份工作中再次编写它吗?我如何与在其他组织工作的朋友分享它?
怀着健康的理想主义,我向执行管理层提出建议,我们将该工具开源。我希望这是一个不费脑筋的决定,并且在部门层面能够快速做出决定。令我惊讶的是,这花费了两年时间、大量的官僚主义以及比我预期的多得多的努力。在这个过程中,我学到了许多宝贵的经验,我想与尝试开源他们的第一个项目的工程师分享。
不要试图说服人们开源的好处。
传统的执行管理层不关心那些不直接或间接增加公司收入或估值的项目。其他一切都被认为是浪费精力和不值得承担的风险。一旦被认定为这样,你最好的演示文稿也会被充满怀疑的态度拒绝,从而扼杀任何好的倡议以及你的动力。
例如,我试图向一位销售副总裁宣传开源的好处。他非常困惑,不明白我为什么要在一个不创造新产品功能的项目上浪费时间。我试图逆流而上,撞到原木,偶尔会被淹没。
相反,将一些关于 VMWare 收购 SpringSource 或 IBM 从 Java 中赚取多少钱的文章转发给高管。成为开源啦啦队长,并在你的组织中努力将积极的情感与“开源”这个词联系起来。
你的项目不会增加收入,所以不要提及它。
试图将收入附加到不会产生任何收入的倡议上,对于经验丰富的销售驱动型团队或经理来说,很容易成为目标。
例如,我开发了一个巧妙的故事,以某种方式证明开源我们的测试自动化工具可以通过改进我们自己的产品来为公司赚钱。包括我自己在内的所有人都很清楚,我们不会从中获得一美元的收入,而且直接成本高于直接收益。
承诺外部贡献者是一厢情愿的想法。
在推销开源项目时,一个常见的错误是希望有外部贡献者。这些人可能会为你的项目增加数百工时,添加功能和修复错误。
现实是残酷的。在我们四个开源项目中,只有一个项目看到了大量的外部贡献。抱最好的希望,做最坏的打算是有帮助的。
同样重要的是要知道,执行管理层不重视免费的开发人员,特别是对于内部工具而言。毕竟,如果我们真的需要更多人手来处理工具,也许我们应该先进行那次对话?
寻求关于公共许可证的书面法律意见。
开源项目被视为一项可选活动。因此,它将始终是你的公司中正在进行的其他二十个更重要事项中的第十项。你正在经营一家企业,销售数百万美元的软件!
深吸一口气,并运作这个系统。首先,获得有能力花费少量资金获得知识产权律师书面意见的经理的部分支持。
没有风险管理策略,任何高管都不会做出决定。开源任何东西的第一步绝不能是改变想法。获得知识产权律师签署的文件,以在项目开源的情况下保护公司。知识产权律师会收取一些费用,并且只需审查你项目的详细信息,声明源代码不包含任何核心知识产权,因此如果发布,风险很小或没有风险。作为公司的股东,你不会希望任何人采取任何可能损害辛勤工作和大量知识产权的激进措施,对吗?
以我的经验,这份文件的制作花费了令人难以置信的来回沟通,向律师解释软件的要点,并纠正文件以显示现实,而不是一些法律虚构。尽管如此,律师知道她在做什么,坚持开源项目与公司的知识产权之间保持清晰的界限,建议在 Eclipse Public License 下发布软件,并修改我们产品的标准软件 EULA 以反映这一点。
建立广泛共识,而不是一致支持。
将法律文件交给选定的一组高管,或请你的副总裁这样做。避免宏伟的结构和宏大的使命宣言。凭借律师的意见,解释这对于你的部门很重要,并寻找会支持(或至少不反对)该倡议的高管。
以我的经验,这最好在关起门来与每个人单独执行。大多数人都很乐意同意任何发生在他们自己组织之外的事情,只要它不会以任何有意义的方式影响他们。
最终决策者应该做出一个简单的选择。
以书面形式向决策者提交一个万无一失的案例。
在我的案例中,这是一封发给 CEO 的简单电子邮件。鉴于大量的准备工作、广泛的高管共识和书面的法律意见,答案很简单“是”。
向聪明人寻求建议。
许多优秀的人默默地为我的故事做出了贡献,并帮助推动了项目的进展。你可以在我的博客上阅读完整的编年史。这当然不是唯一的方法,我们非常想听听你的故事!你从自己的开源倡议中学到了什么教训?
评论已关闭。