关于开源很不错的思考,转载的
2014-08-22 17:14
281 查看
【社区专栏】百度刘平川:技术团队为什么要开源
2014-08-22 10:01社区投递
作者 百度刘平川
10
2672
企业开源 社区专栏 百度 FEX团队 刘平川 开源技术
本文来自百度FEX团队的刘平川,他分析了当前BAT三家公司的开源现状,分析了业务团队开源的原因,解释了开源给团队发展带来的好处,如技术收益、人才收益和个人收益等。他认为,开源也是构建开源生态链的必要手段。
![](http://cms.csdnimg.cn/article/201408/22/53f6a44778dba.jpg)
![](http://cms.csdnimg.cn/article/201408/21/53f58dd96b96d_middle.jpg?_=8315)
【关于作者】刘平川,网名 rank;微信公众号:HiNotes,百度 FEX 负责人。原百度有啊资深前端开发工程师,从事过
C2C/垂直电商/O2O/SNS/支付 等业务研发工作,原百度前端用户行为分析系统创始人。[b]关注前端/客户端技术,同时也关注电商及新兴产品。目前在百度FEX,负责全端整体基础技术研发技术及管理方面的工作。FEX 团队中 FIS、UEditor、脑图、GMU以及 WebUploader 等多款开源技术受到业界广泛使用。[/b]
在开发的圈子里,开源渐已成势,无论公司大小都在开源。个人开发者更不必说,GitHub 已是标配。而开源与使用 NodeJS 一样,对待这件事,对个人而言是潮流,而对团队,则是一种技术态度。
对团队在开源这件事如何思考在一定程度上决定了团队的技术氛围。今天我们就来讨论对于一个技术团队,代码为什么要开源?我们的讨论重点不是讨论开源哪些技术,而是开源的逻辑及带来的收益。具体讨论开源哪些技术,则是另一个话题,这篇文章暂先不谈。
BAT 开源现状
开源这件事虽非洪水猛兽,但开了闸,因为开源可能会为一些人转移公司代码提供一种正大光明之理由,对公司造成损失,所以在公司台面上很难说清利弊。但现在避而不谈开源就是掩耳盗铃。做开发者人以群分,各公司使用开源软件越来越多,使得相当一部分技术人员对开源的贡献成为一种技术理想。希望从开源获得成就,捕众粉丝以获崇拜感。所以,有的公司允许开源,有的公司不允许,也有既没说允许也没说不允许的:一般允许开源都会有相应审核机制,对开源的选择权主要取决于每个部门自己的考虑。
就现在的 BAT (编辑注:BAT 指的是百度、阿里巴巴和腾讯等三家中国大型互联网公司)开源情况而言,项目开源都有相应的审核机制。
团队开源的原因
在团队选择开源的原因上,听到最多的可能就是:开源可以增加团队的影响力。对此,我并不完全同意。“影响力”并非是通过开源直接得到,技术影响力源自业务影响力;业务是指在你所在公司做的业务影响力,还包括所属产品线的业务影响力。只有业务做得足够大与好,外界才认为团队有技术影响力。 所以在大多数人眼中,觉得国外的技术比国内好,那是因为写代码用英文,英语世界国家程序开发所在公司影响力比国内好;大公司技术比小公司好,大公司之所以能这么大,同时在线人数这么多,肯定技术好。Google 开源代码大家觉得就是牛,这是为什么呢?潜意识里是因为 Google 业务是全世界的,技术理所应当很牛。
所以,以提升影响力为目的而开源,所在团队业务最好有一定影响力再谈开源更靠谱。
影响力意味着什么
影响力看上去很高大上,但表现出来往往是很虚的事情;如不能实在的看到影响力能为我们团队带来收益,那这件事的动力与持续性就会大打折扣。 在我看来,影响力给团队带来至少以下好处:
1. 技术收益
开源后技术需求的输入会变多,从外部会给内部提供许多技术需求,从而从外部推进内部加快技术产出与技术创新。创新后再回归到开源,构成技术闭环。需求持续输入可让技术像产品一样迭代升级;提升功能单一的技术生命周期;需求多样化提高创新能力,技术更有生命力。
jQuery 就是一个很好的例子,通过开源从原来单纯 lib 到组件,再到新技术,都在技术前沿。类似的,团队开源后,所在公司可最快享受到该技术在得到开源需求迭代后,得到的技术产出福利。
2. 人才收益
在获得影响力之后,简历的收集渠道会扩宽,会有同学主动给你发简历;并且会给现在团队同学带来平台的成就感,也能得外界技术人员对团队同学的认同感。这对于技术人员来说非常重要。
3. 个人收益
试想想,你在原公司里使用某工具,但出公司后要么是不能使用,要么只能使用某 Release 版本,那是一件很崩溃的事,如果开源后问题就可得以解决。
短期看是个人受益,长期实际上是整体受益,因为这批人里有部分工程师愿意再到开源社区里去给该工具提需求与贡献代码。
从这几点来看,开源是构建“开源生态链/技术闭环”的必要方法。
总结
最后我们把问题收敛,简化成一张图,更好的表达我认为开源是构建“开源生态链/技术闭环”的必要手段。 ![](http://cms.csdnimg.cn/article/201408/21/53f5874292b41_middle.jpg?_=44292)
如上图,“绿色”是技术收益,“蓝色”是人才收益,“黄色”是个人收益。
而目前来看,我们 FEX 团队的开源项目有一些已经得到了开源之后,外部技术人员给予我们部分解决方案的好现象,已经可以起到回源作用。稍后,我也将与大家分享“如何选择开源协议”这一话题,欢迎关注。如有问题,欢迎留言讨论。
相关文章推荐
- [转载]关于创办软件公司的几点思考
- 给南开大学礼鹤同学的回信----关于开源的思考
- 转载:关于web应用程序安全的思考(修改版)
- 转载:你适合做一个项目经理吗 - 关于项目经理的终极思考
- 技术转载:关于集合框架的思考
- 关于C的变长参数的思考心得(转载)
- 对一道面试题的总结与扩展思考(关于一笔画问题的数学分析)(转载)
- (转)看了一些ASP.NET MVC开源项目后的一些想法,关于ASP.NET MVC+Repository+Service架构的一些思考
- 关于开源项目在实践应用中的思考
- (转载)关于having 1=1 和group by 爆表的思考和总结
- 关于三种主流WEB架构的思考 (转载来源:http://blog.csdn.net/haohappy2004)
- 关于构建自己的知识体系架构的一点个人思考(转载)
- 关于80后这一代人就业的一点理性思考[转载]
- 关于linux图形界面编程基本知识 - 技术文档 - 程序开发 Linux时代 - 开源、... (转载)
- 《实践与思考》系列连载(5)——问答Hprose,以及关于技术与开源的思考
- 给南开大学礼鹤同学的回信----关于开源的思考
- 关于Safari的思考(转载)
- 转载: 关于开源无线路由器的资料
- 转载-关于加班的思考
- 关于OGR开源库的一些思考