对于个人来说,开源的目的可能是找个好工作、为以后找个好工作……;对于一家组织来说,他们考虑开源可能有多种多样的目的:
1. 降低开发、维护成本。由社区来帮助寻找 bug,提出一些观点。
2. 技术影响力招聘
3. 建立技术壁垒。
4. 营造生态。
5. ……
一个好的开源作品,需要连接到上下游,即影响开发者,又影响使用者。慢慢地,它个作品就会成为一个影响行业的存在。尽管会不断有其它的项目冒出来,但是由于稳固的生态建设,将巩固组织在该领域的影响力。
组织需要制定开源策略
从开头的大部分四大难题:一次性开源、按揭开源、KPI 驱动式开源、社区是什么?。我们就会发现:国内大公司的开源策略都是错的。
他们可能,今年发布 Phodal UI,明后发布 Phodal Compiler,后年发布 Phodal OS。然后,中间靠各种公关稿,完成在社区的宣传。
应该是这样的,今年发布 Phodal UI 1.0,年中发布 Phodal UI 2.0,明年发布 Phodal UI 3.0 和 Phodal Compiler 1.0,明年年中 Phodal UI 4.0 Phodal Compiler 2.0。过程中,需要依赖于布道师来进行闭环:
1. 维护开发者关系
2. 在社区进行宣传
3. 对社区进行支持、收集社区反馈
4. 建立连接内部的通道
5. 促进内部进行改进。
这些组织需要建立一个具备可持续性的开源策略:
1. 明确其带来的业务价值(如人才引进 、生态等)
2. 专职的开发人员进行开源支持
3. 开放式的开源团队组织结构
4. 合理、适当地长期 KPI 考核机制
5. 政策和流程支持。如专项鼓励奖金
6. 明确地专利和知识产权机制
开源到开放式组织
领导力变化,当我们在组织中开发一个软件应用时是以职权影响力为核心构建的;而开源方式,则是以非职权影响力构建的。
社区的每个人都可以提出自己的意见,你可以 say No,但是每个人都可以提出意见。就这一点来说,对于大部分的国内公司来说是一种挑战,大部分的领导希望听到统一的声音 —— 论组织内多样性的重要。
简单来说,大家想来就可以来,想走就可以走。所以,开源的一个难点就在于:如何吸引到人来参与开发。
尽管大部分项目都是围绕个人、团队的中心化开放式组织,如 linus 之于 Linux。但是,开源还可能变成一个中心化的组织,如 Node.js 的 IO.js 出走事件。根据开源协议,人们可以很容易派生出一个新的项目。
结论
开源,就是生态。