image.png

之前的文章XXX中提到几种开源协议。开源软件笔者在十多年前就接触过,当时就被深深的吸引了,当一个人写了一个软件后,无私的公开,让大家一块去学习,而不是去封闭卖钱,只是为了让这个软件能够更大的发展,吸引全球的协助者一块去维护开发debug,如果心里有大爱,或许这就是一个很有意义值得去做的事情吧。只是进入社会工作后,一边经历社会毒打,为了衣食住行发愁,一边只是从开源软件里面取水,编程能力有限也没能力回馈。总结来说就是还停留在“拿来主义”上面。

最近看小米澎湃OS的白皮书感觉简直是程序员划不走系列,里面罗列了以手机为中心的各种电子产品的软件架构。对比华为鸿蒙只有一个应用开发白皮书,公开度跟小米差远了。为什么小米就敢掀桌子,坚持开源,这时一个名人小米副总裁“崔宝秋”进入了我的视线,才慢慢了解了什么是老外的开源软件和真正的开源精神。明白了一点开源软件到底该怎么玩。 image.png 关于小米技术委员会主席,首席架构师崔宝秋,讲的开源可以先看一个视频: https://www.bilibili.com/video/BV1uM4y1575b?p=1&vd_source=24f15138cd77cd78acffd875530f4069

1. 崔宝秋《小米开源战略与实践》

image.png

先来看下崔宝秋在启智开源大会上的演讲《小米开源战略与实践》 :https://openi.org.cn/html/2020/openi-o_0309/402.html

我个人从1995年去美国读书就马上变成了自由软件的爱好者,到信仰者,到后面开源软件的推动者、项目制定管理者,到小米的开源战略,关于开源算起来差不多二十四五年时间,特别热爱。今天分享的不仅是小米的开源战略与实践,更多是我认为业界应该怎么优化开源、怎么打开源这一仗。今天由于中美关系和各个企业之间的竞争让开源有了国界,开源有了企业界,公司之间有了界限,我觉得都不应该。

自由软件,我认为一个标志事件是1983年发起GNU这个项目,是开源版本的Unix,后面Linux1991年才出现,我看到这个代码的时候,90%或者80%几以上都来自GNU。这个人1985年成立了自由软件基金会,这都是早年我特别喜欢的。1998年2月份他创造了一个新词叫Open Source。这是过去几年的里程碑事件。

Linux操作系统的内核,从计算机操作系统开始,到后面随着谷歌搜索引擎的开始,才出现云计算,用上万台、几十万台服务器做大量信息存储、计算、搜索,到后面的数据科学、数据科学家、数据驱动、数据挖掘、数据智能,这一条线下来,都离不开自由软件和开源软件。几年前在小米就采用了自由软件或者开源软件,现在小米用的软件更多了。

1995年我到美国接触到了linux等等,对我个人来讲,读这些开源代码是一种享受,我认为开源代码是人类的财富。今天开源代码应该成为全球人类的财富,而且应该是无国界的。
从一个企业的角度,我们为什么要拥抱开源?这是过去几年我总结的,今天我觉得还不会过时。第一,站在巨人的肩膀上,已经有很多人写了大量优质的软件,大家没有必要再去重造文字。开源软件不管是在C、B还是A的时代都非常成熟,有很多已经成为事实的标准,比如Hadoop、tensorflow。利用开源软件有助于打造良好的公司文化,真正做技术的公司,大家都喜欢开源,这些代码很漂亮,无数眼光在不断优化和迭代这些开源软件,提升大家互相学习和技术水平的一个文化,好处是大家的代码水平和技术水平会提高。大家使用一些比较有名的、已经成为事实标准的开源软件,会让你的企业一下发现大量人才,比如Hadoop,你用自己的一套东西在市面上找不到人才,拥抱开源软件,让更多喜欢和热爱开源的人才加入你们。
第二,开源的精神。拥抱开源是小米的工程文化,开放与共享是小米的价值观,这也是两个关键词。今天上午的演讲中,大家可能听过无数遍的开放和共享,这是开源精神的两个非常重要的关键词。
2000年左右,我看到Linux兴起,到2012年我回到中国跟很多CTO交流,我发现不是很多人对开源真正了解,而且几乎所有公司几乎都在犯一些错误,这是我总结的几个大家常犯的错误,包括一些国外的巨头也在犯,因为巨头中也有人的认识是不一样的,这些错误是每家公司或者很多团队一次一次会重复犯的一些错误。第一个比较常见的是“拿来主义”,很早以前中国采纳Linux的时候,中国有红旗Linux等等,大家都在拿来,没有反馈和回馈社区,那时候大家不真正懂开源,不懂自由软件。
这些年好了一些,到了云计算和大数据时代,大家开始懂了开源,但是缺乏共享。有一种是大家不知道共享,我为什么要共享呢?不理解。有的人是知道应该共享,有一定的共享精神,但是因为各种原因而不愿意,这是我的宝贝、这是我公司的财富,我不愿意拿出去。有些人懂得共享,也愿意共享,但是懒得共享。我花了一个星期、两个月写了一些软件,我还要再花一些时间再写测试用例、写文档,给别人证明我的代码是好的、是有用和通用的,太麻烦了。
小米在HBase的贡献是我们两个星期搞定,我们提升了性能的5倍,这个速度很多社区的人不相信,我们花了几个月接近半年时间证明我们社区中的老大讲的提升5倍数据是真实的,这个努力远超过写软件改进的时间,所以很多人懂得共享、愿意共享,但是懒得共享。如果有的企业懂得共享、愿意共享、愿意花时间共享,但是社区有可能不接受他的共享,这认识你呢?你算老几呢?你的代码到底有什么用呢?没有可信度,这就是我们缺乏的一些东西。
第三,很多企业不够真正开放。有的人为了开源而开源,说我开源了多少个项目数字,开源之后再也没有维护国,没有社区、没有互动、没有迭代,只是开源了一个项目,然后再来一个,开源的东西可能也没有多大价值。有的公司不愿意长期投入,不愿意在开源上花功夫投入人力,不愿意回馈社区。
还有一些团队不愿意打造社区,不知道怎么打造社区,最后开源效果可能慢慢变成一个无源之水,慢慢干涸了。
刚才改的问题,总结成一个是缺乏共享、不愿意共享或者共享不被接受,不管什么原因,经常会有这么两个模式的对比。左边的图是和社区主干、社区分支不断融合在一起的健康模式;右边的图中红色的是大家不管愿意共享还是不愿意共享、懒惰共享或者是开源不被社区接受,最终形成一个本地版本,公司的分支和社区分支渐行渐远,被社区无情的抛弃。左边的是健康模式,右边是短见的模式。左边有点像拿来主义,右边是用着一次爽,长期享用,是一个红利模式。
7年多前我来小米就讲了,我们要站在巨人肩膀上还要为巨人指方向,要赢得话语权,让他知道小米的贡献是好的,小米的贡献应该被接受,小米是无私共享和开源的。让开源的巨人慢慢听从小米的指挥。

基于这些,我定义了小米开源战略的五大原则,今天看来还没有过时。

  • 第一,快。快速选型、快速定位、快速上线、快速推出产品,这跟小米的互联网七字诀非常像。
  • 第二,绝不重造轮子。很多经验是我个人开发,在以前的学校和公司、与人合作过程中发现的,大家很容易找出现有系统和别人的东西步态好的理由,这个轮子太大了,我需要一个小轮子,这个轮子太小了、我需要一个大轮子,或者这个轮子颜色不好,我要黑色的轮子,有的轮子太圆了,我要椭圆的轮子,由于各种原因要重造轮子,我们要坚决反对重造轮子。
  • 第三,不用则已,要用则精。我当时跟王健博士有过一次沟通,王健博士说阿里云要自建,他说用hadoop,一个线上的bug有问题以后,社区有一个pach(音),谁敢担保有决心按下ok把这个部署下去?他讲的有一定的道理,阿里云很多是自己写的代码。他讲这些话反映一个问题,就是他没有真正掌握,如果你用了hadoop,如果有一个pach过来都不敢上去,我觉得这不能掌握开源,不能驾驭开源系统。小米不用则已,要用则精,要真正掌握,不能拿轮子跑起来就行了。
  • 第四,坚持开放与共享,这是开源精神。
  • 第五,极力推出自己的Committer,小米这么小的公司,为什么要推出这个?我就是要为巨人指方向,就是想让巨人接受我的共享、我的提交。

小米从2012年开始做了一些事情,在C、B、A的时代都开源了一些东西,这方面就不讲了。

下面分享四个简单的案例,讲一下不同侧面、不同维度小米在开源过程中的打法。这里有几个系统的案例,可能覆盖了C、B、A,也覆盖了使用开源的开源资源项目等等案例。

第一个案例我认为是非常经典的案例,完美地实现了我七年前制定的开源战略的体现,那就是Hbase选型、使用和我们的贡献。当年快速选型,选了几个版本和系统,我力推hbs(音),后来建了团队,到今天推出9个Committer,3个MC项目成员。这间接表明了我们赢得了话语权。小米在hbs的贡献去年占了23%,今年前段时间估计占了33%,这个比重在不断增加。

最后,讲一下开源的未来。
我如何看未来的未来?我讲开源是软件的未来,开源是AI的未来,我觉得开源的未来非常辉煌。在AI时代,我想呼吁广义的开源,除了代码的开源、模型的开源,我们也要注意注重数据的开源、数据的共享。今天的AI还是大数据AI,有多少数据就有多少智能,但是在未来的小数据AI道理之前,我们还需要共享更多的数据,当然,除了隐私数据之外,我们能共享的还是要共享一下,尤其是知识图谱。今天的小爱同学和其他所有的智能助理有多聪明、多么伶俐、知识面多广,就来自于有多少知识,知识图谱是一种比较特殊的运用数据。

一两年前,我积极推动OpenBase这个项目的产生,小米成为最大的赞助商,我们希望打造最大的中文知识图谱。

另外,我想讲一个更加开放的开源。今天上午几位演讲嘉宾讲到完全的开源、完全的开放,其实我想表达的是更加开放的开源。今天有一个倾向,就是把开源和开放混为一体,开源叫开放平台就行了,那是弱化了开源,我想讲的是更加开放、更加极致、更加跨企业、跨国界的开源,我们要避免开源领域形成的寡头垄断。有一些公司通过自己强大的生态优势,慢慢控制了一些本来开源的一些项目和生态,慢慢变得不是那么开放的生态、不是那么的开源,我这里呼吁的是开放、共享、平等、全球化。大公司不要欺负小公司,西方不要欺负东方,中国不要欺负其他。要真正做到开源全球化,最终让开源没有国界。

2. 崔宝秋的故事

2.1 武大

image.png 幼时的崔宝秋喜欢画画,梦想当个画家。他总爱拿着粉笔在地上、墙上画来画去,照着小画册临摹《西游记》和《三国演义》里的各种人物,成果时常得到大人的赞扬。

父亲在高中教数学,对他影响很大,到了学龄阶段,宝秋的爱好也慢慢转向了数学。在老家的阁楼里见到父亲读大学时的大部头数学书,他非常崇拜,开始仰慕数学专业,可父亲对他说:“今后考大学时,这个专业可以不考虑,重复性的事太多,很难有创造性。”

转眼间到了高中,他在订阅的《中学生》杂志上看到了Basic语言写的程序,觉得很新奇,“但也不知道是干什么用的。”县城里没有计算机,这个新事物对他来说有点奇妙。

1987年高考,出于对数学的热爱和对计算机的好奇,他选了武汉大学计算机科学系。

大学之前崔宝秋键盘都没摸过,但是大学机房里他第一次见到了摩托罗拉68000处理器,一个显示器,一个终端陪他开启了专业之路。崔宝秋很享受敲键盘的声音,且爱上了编程,凡是有写程序的专业课都很喜欢。操作之后打印出简单的程序,“那就是我的创造性成果”,“你可以让计算机做很多东西”。

大二,崔宝秋和雷军分到同一个宿舍,两人上下铺,经常交流专业知识,“雷军在计算机领域的认知和探索,当时远远超过了我们这些同龄人。”大二结束,雷军修完了大学所有学分,去北京中关村电子一条街闯江湖。一次回来,他在宿舍跟崔宝秋说:“宝秋,我在做加密软件‘黄玫瑰’,你帮我设计一个Logo吧。”

然后宝秋用做了一个画图软件,使用矢量字体,在《计算机世界》杂志上发表了文章《将AutoCAD矢量字体转换为BGI矢量字体》,最后还做了一个编辑图片、图形,能兼容很多绘图软件《绘星》。

本科论文可以做武汉音乐学院一个计算机自动作曲项目,他用最短路径破解了苹果电脑上音乐软件的乐曲编码,知道了五线谱音乐是如何存放的,“这样我就可以写东西了”,“给我两小节五线谱,讨论各种逻辑算法后,就可以自动产生若干节音乐。”让旋律不断重复,而且能有些规律性的变化。

1991年,崔宝秋被保送读本校的研究生,师从黄俊杰和张焕国两位老师,研究计算机安全和公开密钥密码体制,

2.2 读博

崔宝秋本考虑研究生毕业后直接出国留学,可研二的暑期发现GRE考试准备晚了,来不及申请,只好暂时放弃。

此时他们做的加密软件在加密卡上用得很广,崔宝秋要经常跑武汉三镇推销加密卡,酷暑难耐,而舍友在考博,经常泡图书馆,他很羡慕,就跟张老师说自己也想读博,张老师建议他报考中科院计算所,师从魏道政老师,并帮他写了推荐信。魏老师对崔宝秋的硕士研究内容以及曾经获得过全国挑战杯一等奖的经历非常感兴趣,很快就答应收他读博,还全免了博士入学考试。

1994年研究生毕业,崔宝秋开始了在计算所的博士生涯。在计算所学习期间,崔宝秋一直放不下留学的事,就跟魏老师说:“我还是想出国。”魏老师的儿子跟他碰巧是同龄人,在美国读书,所以魏老师非常理解和支持崔宝秋的想法,就批准了。

经过一番细心地准备和努力,崔宝秋收到了几所美国大学的全额奖学金,权衡之后,他选择了纽约州立大学石溪分校(现石溪大学),“计算机专业在美国排名不错,关键是杨振宁教授在这里任教,我们都很熟悉这所学校。”这一年系里共招了两位中国留学生,崔宝秋拿的助教(TA)奖学金,做操作系统这门课的助教,授课老师是 Eugene Stark教授,号称MIT神童,也是FreeBSD的贡献者,“据说20多岁就从MIT拿到计算机博士学位,一直在这里任教。”

教授让学生都用GNU Emacs做家庭作业和OS项目,崔宝秋很快被开源的GNU Emacs深深吸引。他在这里最先接触了GNU,也很喜欢里面的GCC 和GDB。

开源的代码量非常大,里面有操作系统内核、编译器、数据库、网络、图形等各方面的资源共享,还有免费的经典教材可以看。

“相比之下,国内的计算机教育和软件资源太封闭了”,崔宝秋就像个穷苦的孩子,突然搬进一个辉煌的宫殿,所有东西都有源代码,代码质量也非常高,有了这些,他再也不用去做各种逆向工程了。他感到幸福而富有,在里面读大量的优质代码,“这些代码水平远超一般人。”

五年的博士生涯走得很顺利,崔宝秋的博士论文研究了当时的人工智能领域的一个方面,主题叫A System for Tabled Constraint Logic Programming(《列表的约束逻辑程序设计系统》),他的研究成果也都用开源代码的形式集成到了他们实验室开源的增强版Prolog系统里,名字叫XSB。

2.3 结识开源

image.png

1995 年到美国留学正式接触开源,自由软件的忠实信徒,对于开源软件的参与会让他上瘾,产生“被传教”一般的兴奋,以至于这种兴奋劲儿不但让他有了一种无时无刻都想着要去敲几行代码的冲动。

开源是一场运动,而在这一项最初由美国主导发起的运动当中,崔宝秋一开始接触就不可自拔的沉迷了,甚至于做好了退休之后全身心投入开源事业的准备。

1995 年,在中科院计算所拿到纽约州立大学石溪分校通知书的崔宝秋获得了到美国留学的机会。纽约州立大学石溪分校的计算机系排名不算靠前,最好的时候排到全球 15 名,但由于当时杨振宁在此任教的原因,这所学校很受中国学生青睐,崔宝秋也从四份博士全奖通知书中选择了这所学校。

在到美国之后的第一年里,崔宝秋便深刻地体会到了中美两国之间计算机科学系教学领域的差距。

在国内,崔宝秋是同学里的编程高手,还没有 Windows95 的时代,他便已经开始用 DOS 系统编程写作。但是到了美国之后,当成为助教的他收到写一个 Unix 脚本来协助教学的时候,却发现自己不懂什么是 Unix 脚本,这让他有了“原来我之前一直是土老帽”的心理落差。

然而,正是因为有了这种心理落差的存在,也才让崔宝秋有了一定要认真研究开源的冲劲。“开源的力量会让人上瘾。”在崔宝秋的描述中,当买了电脑并给自己配置了 Linux 系统,成为具有 root 权限的超级用户后,崔宝秋觉得自己仿佛获取到了某种可以改变操作系统任何部分的神奇力量。

“作为一名软件开发者,当你能够根据自己的爱好自定义自己正在使用的软件交互体验,配置自己想要的各种炫酷功能的时候,这种感觉是非常奇妙的。”在崔宝秋的介绍中,因为自己身边厉害的人都在用 Emacs、GNU、Linux、FreeBSD 等开源软件开发个性化的交互,并且配置自己想要的任意产品功能,这让他产生了某种“被传教”般的兴奋。

我在学校的几个老师也在开源上对我有很大的启发作用。之后我的四年研究成果,五年博士四年我都在做XSB,简单来讲就是增强版的Prolog语言。当时我基于GPL把它开源,再到后来很多工业界也在用这个编程语言。从1995年开始到2010年,这中间我参与了很多Emacs社区讨论,也直接贡献了一些代码。在LinkedIn我们也开放了一个搜索系统SenseiDB,后来小米也把它用到了搜索技术里。

于是,从博士到 IBM 工作的期间,崔宝秋每天都在跟进 Emacs 等开源工具的进展,参与社区讨论,深深的陶醉在开源世界中,以至于当雷军出差到美国的时候,崔宝秋还兴奋地向他演示了 Emacs 的高级功能之后,并建议他把这些功能放进 WPS 当中。

2.4 关于开源

image.png

在我看来在开源史上,在开源界这几个人是至关重要的:第一个是,Richard,他创建了自由软件基金,为后来的Linux发芽等等奠定了扎实的基础。第二个,Linus,Linux的创造者。最后一个是Eric,最开始我不太喜欢,因为我认为他是机会主义者或者实用主义者,但是后期我觉得开源这个词是他和另外几个人创造的,并且主要是他的功劳。我觉得如果没有Eric,只凭着自由软件,开源做不到今天。这三个人在开源史上未来都很难有人取代的。

image.png

image.png

image.png

2008年有了GitHub出现,它所管理的开源项目数量就不是线性增长,早期可能有点线性,但是后来的曲线可能更加陡峭一些。

image.png

开源有三种力量,这是我总结的。

  • 第一,属于个人爱好者。这些人是狂热的技术爱好者。我很早以前,我的一个目标,就是等我财务自由以后,我去分享代码,享受那个成就感,为大家创造价值的成就感,这代表了一大帮技术爱好者,宅男。其中我合作过的一个作者,他是一位天文学的教授,有一天他写了一个非常好的文本管理器,可以帮你管理时间,记事等。他每天的工作几乎在上下班两个小时的地铁上或者轻轨上完成的。我看代码写的不太优雅,算法性能不够好,我以为他是很高的计算机高手,后来我发现他是学天文学的,后来我就理解了。但是他的一些算法不是特别美妙,但是对事情的推进还是有贡献的。
  • 第二种我叫无开源模式,这里包括组织和学校,这些是以互联网服务或者以某种东西来盈利的,它不是通过开源的软件,或者解决方案来赚钱的。
  • 第三种是有开源商业模式组织,包括IBM,也中国的华为,它们有一种商业模式在后面,利用网络硬件,设备,开源,有一整套的解决方案,对大的企业,通过整套的东西来盈利。所以三种的贡献者,三种的力量,对开源看法不同,贡献不同,投入也不同

image.png

image.png

2.5 工作经历

2000年,第一份工作IBM,IBM正要组建一个新一代数据库技术的研究团队,需要一些博士,可崔宝秋加入不久后这个新的团队就被调整,被要求深度参与产品开发,崔宝秋开始负责 DB2 数据库优化和内核等核心模块的研发。

IBM非常闭源,崔宝秋经常用开源工具,他切身地感受到,在IBM用开源是一种包袱,“我喜欢开源的技术,喜欢互联网的技术,做这种传统的数据库,越来越没意思。”

2005年,他有了一种压力,觉得身在硅谷,如果不去互联网公司,就太可惜了。一年后,一个偶然的机会,他离开IBM加入了雅虎。

2006年,从IBM跳槽到雅虎,崔宝秋摩拳擦掌,准备大干一场。雅虎已深度拥抱了自由软件,成立了开源项目Hadoop,搜索引擎技术也是崔宝秋非常喜欢的领域,加入雅虎让他有了如鱼得水的感觉,在开源的利用上更加自如。

遗憾的是,雅虎已经慢了一步。谷歌储备了大量科学家,专门从事研究工作,从来不涉及产品也没关系。这样的文化吸引着更多工程师,更多人才的加入,反哺着谷歌的工程师文化。当三篇论文出现在世人面前,雅虎的所有行为都必然成为“刻舟求剑”。

2007年,硅谷DoubleTree酒店,金山即将赴港上市,雷军在美路演,在这期间,与崔宝秋进行了彻夜长谈。“宝秋,你将来想干吗?”雷军突然问他。崔宝秋没多想:“退休以后最想静下心来写自由软件……”,于他而言,写自由软件和开源软件,都有机会让自己写的代码跑在每个人的电脑上,尤其是在雅虎见证了Hadoop的成长之后。

LinkedIn纯粹的开源文化,孕育了多个开源产品。2010年,带着未能开源热点搜索缓存技术的遗憾,崔宝秋离开了雅虎,加入了LinkedIn。在硅谷,人人为我,我为人人,已经成为一种普遍现象。“Facebook有些人在为Hadoop做贡献,LinkedIn的Kafka,Voldemort和Azkaban都是开源的。”

从2010年到2012年,这种方式影响着崔宝秋,坚信开源无国界的他,从此有了一个念头——这样纯粹的开源,若能影响更多的中国工程师就好了。

2.6 小米创业

“任何一家创业公司,如果不拥抱开源,就直接输在了起跑线上。”在创立小米之初,拥有技术背景的雷军便对开源表现出了高度浓厚的兴趣,而在小米内部,推动小米开源文化以及策略落地的,正是崔宝秋。

2012 年 6 月,崔宝秋辞去了美国 LinkedIn 总部的工作,回国加入小米,他不但基于开源软件亲自搭建了小米第一个真正意义上的机器学习平台,并且还在 2014 年组织成立了小米开源技术委员会,并进一步推动小米“CBA”(云计算 - 大数据 - 人工智能)技术路线的发展成型。在有限的人力的情况下,如何站在开源巨人肩膀上快速推出一些云存储计算和大数据处理能力。重回北京,他除了想在小米干出一番事业外,脑海里还萌生了一个想法——让纯粹的开源在中国落地。

在迈过了企业发展初期对于开源软件的单方面使用后,小米开始积极的参与到国际开源项目当中,进入了从使用开源软件到反哺开源社区的全新阶段。

相关数据介绍,截止目前,小米一共为开源社区培养出了 9 名 Committer,其中包括三位 PMC 成员。去年 7 月,小米工程师张铎被 Apache 软件基金会任命为 HBase 项目主席。同样也是在去年 11 月,雷军在微博正式宣布语音识别技术领域知名学者、开源工具 Kaldi 创始者和主要维护者 Daniel Povey 加入小米……

小米在开源社区的努力与贡献,在一定程度上取得了行业内的认可。

但事实上,在取得这一系列成绩的背后,在开源社区推出 Committer 和 PMC 的计划,崔宝秋从 2012 年加入小米之初就已经开始筹划;而张铎成为 HBase 项目主席,与崔宝秋从 2012 年就开始让工程师到 HBase 社区探路打下的基础不无关系;同样是在 Daniel 加入小米的背后,崔宝秋一开始就是整个事件的幕后推动者……

在这些开源方法论的指引之下,崔宝秋在 2012 年加入小米的时候,就特别从团队中选出了两名工程师,将他们屏蔽在业务压力之外,只让他们到 HBase 开源社区去熟悉代码,解决社区提问者的问题。此外,崔宝秋还通过美国朋友的关系,与当时的 HBase 社区主席取得联系,表明了长期参与共建的决心。

在长期持续不断的付出之后,小米在开源社区的努力,也取得了相应的回报。

去年 7 月,小米工程师张铎被 Apache 软件基金会任命为 HBase 项目主席。而在此之前,小米内部的工程人员已经有 9 位成为了开源社区的 Committer,其中包括三位 PMC 成员。同样也是在去年 11 月,语音识别技术领域知名学者、开源工具 Kaldi 创始者和主要维护者 Daniel 在放弃了知名高校以及著名互联网公司邀请加入的机会后,主动选择加入了小米…..

在崔宝秋看来,优秀的互联网公司不能仅仅凭借技术的领先性来保持公司的持续领先性,商业模式的领先往往才是决定一家企业是否优秀的关键。因此,在小米特殊的商业模式驱动之下,小米依然能够更加积极的拥抱开源,敢于共享自己的代码,这让小米在开源社区做出的贡献能够更加快速的被接受和认可,并且保证自身参与开源的中立性。

在崔宝秋看来,在加速推动开源力量形成的过程当中,各种开源组织联盟和企业的管理者们同样应该保持不断沟通和交流学习的态度。

“只有交流多了,才会有更多的方法论以及理念被提出,也会有更多的软件会被抛出并被使用,然后开源的巨人才会迎来越来越多的关注者以及参与者,巨人也会跑得越来越快,进而催生越来越多的机会。”崔宝秋表示。

2014年,崔宝秋带着谢良、冯宏华两位工程师第一次去硅谷参加HBaseCon大会——此时,谢良刚刚成为小米在HBase的第一位Committer。驾车行驶在101公路上,崔宝秋不忘回头和他们调侃:“做了Committer,以后你们在社区有名了,其他公司可能要用高薪来挖你们了。”

在重大项目上极力推出自己的Committer,是崔宝秋制定的开源战略,主要目的是要赢得一定的话语权、让团队更好地融入并回馈社区,即使这些Committer被竞争对手挖走崔宝秋也不焦虑:“人才是水库,流水不腐。”继续坚持开源的打法,维持好的技术氛围,给团队成长空间,他相信会有更多的工程师源源不断地加入小米。如果小米能成为中国开源界的黄埔军校,他也乐见其成。

2.7 引入NuttX,赢得Daniel Povey

image.png

2019年10月12日,北京,崔宝秋正与实时操作系统NuttX的创造者 Gregory Nutt探讨着NuttX和小米生态深度融合的方式与空间,近两个小时后,积极声音传出,双方达成共识,从此,开启了Xiaomi Vela的诞生之路。

在语音识别技术领域,Daniel Povey 的名字几乎无人不晓,他是著名语音识别开源工具 Kaldi 的创始者和主要维护者,论文被引用超过 2 万次。2019 年 6 月,因被动介入学生抗议活动,在约翰·霍普金斯大学任副教授的 Daniel 被校方解雇。之后,其动向就一直备受学界和业界关注。

8 月中旬,Daniel 表示将可能选择一家中国企业或高校作为职业生涯的下一站。他与清华、北大等院校保持着深入接触,更有消息传出,Daniel 已经提前收到了某位副校长的 offer。国内头部互联网公司如美团、滴滴、快手等更是蜂拥而上,希望将这位世界首屈一指的语音识别专家招致麾下,近两年以小爱同学作为 AIoT 战略核心的小米自然也在积极争取的队列中。

崔宝秋亲自统筹了负责接洽的人力资源团队,并直接与Daniel的中国猎头Joy沟通,希望通过Joy传达小米的能力与诚意。“和中国公司一起打造健康的社区,走向世界。”这是崔宝秋一直向Daniel重点表达的开源愿景。

崔宝秋和Daniel之前有过简单的邮件沟通,在收到小米的基础信息并感受到其诚意后,Daniel便主动提出希望通过电话更深入地讨论。8月下旬,崔宝秋第一次拨通西雅图的电话。

在这通午夜电话里,崔宝秋向Daniel介绍了小米,更主要的是自己从2012年加入小米后就一直力推的开源战略,听到Daniel下月将在中国停留两个星期的计划后,崔宝秋马上向其发出参观小米公司的邀请。

来京第二天,Daniel突然更改行程,要先来西二旗小米新园区看看,小米集团技术委员会给予了最高规格的接待:崔宝秋和技术委员会成员依次向Daniel介绍了小米的“手机+AIoT”双引擎战略和生态、公司的开源工程、AI实验室、以小爱同学为中心的语音技术。

Daniel还仔细看了小米的工作环境,包括编程环境,GPU使用率的高低等。他的到访给了崔宝秋更多信心。不过,随后几天,Daniel又在上海、深圳陆续拜访了多个高校和互联网企业,这又给志在必得的崔宝秋增加了些不确定性。

Joy告诉崔宝秋,Daniel对高校工作更感兴趣,崔宝秋听后有些灰心,但仍尽力争取机会,他立即通过Joy给Daniel发去自己过去几年对外讲过的3份有关小米开源的英文PPT和3篇外媒报道,告诉Daniel,小米希望和他一起把中国的开源力量推向世界。

9月11日,崔宝秋觉得时机有些成熟了,就给Daniel直接打去了电话,意料之外的是,电话接通没几分钟,Daniel便告知,小米已是自己的首选(top choice)。

国内高校的做事程序相对繁琐,互联网公司对优秀工程师明显有着更强的吸引力,而这之中小米在开源上的努力和成绩又尤为突出,更重要的是,管理小米工程师团队又一直把开源作为战略核心的崔宝秋,对公司的开源策略和技术布局有直接决策权,可为Daniel提供更有力的工作支持。

Daniel想要崔宝秋保证Kaldi系统百分之百开源,崔宝秋说:“这条要求对我来说根本不是个问题。”

接下来几天,Daniel在以色列、欧洲辗转时,小米向Daniel发出了Offer——Offer最后的修改仍由崔宝秋直接参与。

11月18日,Daniel正式加入小米。

image.png

开源战略不仅是为小米赢得Daniel的重要砝码之一,也是崔宝秋加入小米之初力推的战略。“我们要感谢开源,认可开源。”他不断向外发出声音,并成为中国技术领域一位重要的开源推动者。

2.8 小米开源五大原则

image.png 崔宝秋还将自己长期投身开源方面的经验总结输出,提出了小米开源五大原则,真正有效地推动了雷军提出的开源策略在小米内部执行。

第一,是“快”。企业要能够快速的拥抱开源,从企业角度来看,开源是用最小的代价获取最大的利益,在有限的人力情况下,如何借助开源巨人的力量,快速的形成公司自己的技术体系并且打造产品,这几乎成为了每一家互联网公司的共识。

第二,“绝不重复造轮子”。在过去参与开源的二十多年间,崔宝秋在学校、企业、社区等场所见过太多重复造轮子的故事,很多工程师看不上已有的东西,总想做新的东西来证明自己的实力,并且会找到各种各样的理由来支撑自己的行动,但结果往往都不太如意。开源本质就是为了减少重复造轮子的问题,这样的问题在企业内一开始就不该发生。

第三,“不用则已,要用则精”。企业对于开源技术的采用,一定要用到炉火纯青的地步。对于开源系统,尤其是一些大型的系统,很多企业没有真正吃透,只是停留在搭起一个演示或测试的集群,一旦用到了产品线上,出了问题无法搞定。

第四,“坚持开放与共享”。运用开源代码的企业要更加的懂得开放共享,许多企业只懂拿来主义,不愿意主动分享,时间久了反而导致自己采用的开源软件缺乏维护,最终被社区抛弃。在崔宝秋看来,开源是人类技术进步的最佳的平台和模式,而开源社区人人为我、我为人人的自由软件精神,也应该由每一家参与其中的企业来共同维护,只有这样,一个开源社区才能走得更加长远。

第五,“在重大项目上极力推出自己的 Committer”。推出 committer 是企业让自己的代码被社区接受的前提,而在另一方面,社区内的 committer 对于开源软件的发展也能够看得更加的清晰,这会让企业对开源社区技术发展的趋势和风向更加的敏锐,时刻保持与开源社区同步。

3. 开源新玩法

image.png

3.1 开源大牛不需要钱

从2.7章节引入NuttX,赢得Daniel Povey中,可以看到国外的开源大牛在选择工作的时候,并不是看钱的,是有一种程序员改变世界的精神,虽然在国内穷人看来挺可笑,但是在国外发达国家不愁吃喝的情况下,特别是学者工程师的确有很大的理想:为人类谋福祉。分享一段话:

一个国家领先于时代,需要拥有一种制度:

  1. 让弱者生存下去,不会为了衣食住行而发愁
  2. 让强者心甘情愿的奉献出自己的所有天赋,乃至于生命

所以拥抱开源,必须把自己做的东西公开开源,为更多人的利益考虑,才能赢得大牛的青睐。

3.2 怎么利用开源巨人

从最开始的拿来主义,我们在不断的抄,突然有一天发现我们能抄的都抄了,我们的科技水平达到了一定程度,我们必须去创造了,有很多的开源项目都是半成品,但是很先进,我们也想用,怎么办?

这时候我们必须参与进去,用先进的跟国际接轨人才扑上去,至少要为巨人指明方向,对自己有利的方向,这样才能更好的理由开源巨人。

3.3 开源无国界

就像基督教虽然不是中国本土的,但是也在中国传教一样,都是人类,互联网虽然有些地方被隔离,但是整体上大家还是可以互通交流的,而开源软件的发起者更是有:我为人人,人人为我的思想,是不会局限到某国某地的,甚至很多开源牛人不是美国人,只是后来牛了去美国的。美国可能是顾忌自身的利益,但是这些开源牛人是无国界的。

3.4 Committer很重要

在有开源文化的公司Committer就是免面试的通行证,最有说服力的证明,技术实力的象征。

3.5 商业公司的核心竞争力

首先快速的迭代技术是需要借助开源的力量,但是开源可能对手也能学会,所以比拼的还是研发人员的实力,这样大公司可能干什么都会更好,小公司研发人员有限就越来越难,特别是一个行业中,头部只能剩几家,不过目前的互联网趋势下,人类交流的成本变小,本来就是只有很少强者可以生存的。

然后就是产品力和服务,光有技术还不行,做用户喜爱的产品,并有好的商业模式和服务才能得到用户的认可。

参考:

  1. 小米开源战略与实践
  2. 从硅谷到小米,崔宝秋的25年开源人生
  3. 我看开源这些年
  4. 崔宝秋国际开源经验在小米开花
  5. 小米崔宝秋:开源是软件的未来,中国 AI 的未来

后记:

崔宝秋对于中国开源运动是个践行者,特别是在小米这种大型商用公司里面,非常的难得。崔宝秋目前已经从小米离职,估计可能回美国搞搞开源隐姓埋名了。文章比较长,copy的内容也比较多,只是希望大家多了解开源,也了解了解这个人物。

results matching ""

    No results matching ""