内源不是什么鬼,可能是一剂药,这剂药不适合个人开发者,主要是针对公司,但并不是对每个公司都有效。
最最权威的关于 InnerSource 内源的解释来自程序员非常熟悉的 O'Reilly 的创始人蒂姆·奥莱利(Tim O'Reilly)在2000年创造的,其具体的解释是:
InnerSource is the use of open source software development best practices and the establishment of an open source-like culture within organizations. The organization may still develop proprietary software, but internally opens up its development.
大白话就是在公司内部全面或者部分采用开源的、社区的方法论来管理内部的开发工作。
内源要解决什么问题呢?简单总结有这么几点:
● 加速知识共享,提升人员能力
● 提高软件复用,提高软件水平
● 打破部门墙,促进内部合作
● 激励创新
下面就一些常见的疑问做简单不那么全面的答疑:
一. 内源和开源两者是一种什么关系?
内源 = 内部开源,两者间的关系一目了然。内源是在企业内落地开源的方法论。内源更多讲究的是方法、治理,对合规方面的要求没有那么多,例如开源许可证之类的约束。
有不少公司规定,公司要开源的所有项目,必须先内源,就是先在内部开源一段时间成熟后,才能对外开源。
二. 内源意味着在公司内部开放源码,那怎么避免代码泄露?
首先代码泄露问题就算没有采用内源,也是客观存在的。但是内源看似让代码泄露这个问题变得更加容易了些。怎么防止公司代码泄露不在本文的范畴里,那是一件需要付出高昂成本的事情。
其次,企业应该根据自身实际情况,决定在内部开放哪些代码,而不是选择全部开放。例如可以先开放框架、工具类的代码,这样可以实现统一的技术堆栈,避免重复造车。慢慢的延伸到更多的业务。
三. 内源需要什么样的工具和系统支持呢?
要实施内源的方法,至少组织内部需要有一个统一的代码管理平台,所有部门的代码都汇聚在一起,还需要可以方便的进行内部沟通交流的工具,这些交流的信息必须留存起来,因此 IM 类的工具不适合。
由于每个组织都不可能 100% 的开放所有的代码,因此对代码管理平台要求有非常强的权限管控能力。
工具准备好了,最重要的公司管理上要支持和推动内源的建设,不断的完善制度和文化的建设来推动组织内源的发展。同时也要不断的树立和奖励模范项目、模范贡献者,形成良好示范作用。
关于内源工具的选择,感兴趣的可以体验 Gitee 推出的简单直观的企业内源管理工具。Gitee 同时提供内源贡献者排名和详细内源统计。
内源资料
内源其实已经不是什么新词,但是你会发现这方面的资料并不是特别多。为此我们专门收集整理了一些资料、图书、幻灯片,汇总在 Gitee 的 InnerSource 组织。
我们的建议是:对于内源,不妨从公司内一个小项目开始,尝试一下。