2016年4月23日下午,华为开发者社区携手51CTO在魔都上海启动了“华为开发者汇”的***场沙龙。本次活动共邀请了华为公司、星网信通、优酷土豆的五位讲师做了分享。其中来自华为社交化开发平台Code Club架构师胡智勇,他给大家带来的是《自下而上打造公司级研发平台》。其中有个论点是“用开源的方式来做内部研发工具”,业界有很多开源组织都习惯用github来托管代码,但出于隐私和安全的角度来考虑,这对闭源的商业公司来说并不是好主意。那能不能用开源的方式来做公司内部的开发平台呢?不满是向上的车轮,哪怕要在泥泞中前行。胡智勇把自己的平台构建心得给大家做了一回深入的分享。
现场实录如下:
胡智勇:大家下午好。林旅强之前让我做这次演讲,这是我***次在外面做演讲,所以还是有一些紧张,希望大家也包涵。我在讲之前,稍微介绍一下,我在写这个PPT的时候,写着写着不自觉的就会把我的工号写上去,后来我在想,因为我这个是在外面去讲,我干嘛写我的工号呢?所以我就把它删掉了。因为我在华为待了有八年了,可能有一些意思,一些做法,就不自觉的带着一些公司的色彩,带着华为的一些色彩在里面。包括我待会儿去讲的一些话,可能会有一些华为的术语,华为的名词在里面。如果你不是华为的人,你可能可能听不懂,但是如果有这样的情况,欢迎大家举手打断,我来解释一下。
比如说我们在华为里面,管PPT叫胶片,外面可能不会这样讲,但是我们里面一般都是说胶片,大家听胶片什么东西,不知道,但是它就是代表PPT。所以类似这种名词,如果我再说出来,有些大家听得不清楚的话,可以随时举手。
另外一个,刚才林旅强也说了,我们华为现在有17万的员工,我只是这17万分之一,所以我讲的一些东西包括我这个里面写的一些仅仅代表我个人的一些观点。包括我说的一些公司现象或者问题,也仅仅是从我这个角度看到的一些问题,不代表其他同事,不代表华为,不代表我自己部门的一些看法。
先说一下,我讲的是自上而下打造公司级的研发平台,刚才研发平台林旅强也说了就是code club研发平台。我先介绍一下我自己。
我是这个平台的创始人,平时写写代码、写写博客,但是实际上这一年来写博客时间比较少了,特别写代码的时间也比较少了。我是04年毕业,之后在宝信软件工作过一段时间,之后就进了华为,08年到现在刚好是八年。我做过的软件开发,也做过敏捷,现在主要是做工具架构规划方面,也在做内源。那边是我自己的一些联系方式,基本上在一些社交网络,用糊涂事(音)都能搜到我。然后如果是华为的同事的话,可以到code club上找我到。
***页这个标题是力出一孔、利出一孔。最近因为华为曝光率有点高,有些华为的名词,就蹦现在一些媒体平台上,特别是这个词。什么意思呢?就是我们公司在做一些事情的时候,往往做一些特别重大变革的时候,我们倾向的是集中力量去做一件事情。那集中这个力量是怎么做呢?一般的是自上而下的,领导一发话,我们应该干什么,开始干,然后各个部门全体起来支持,我们把这件事情支持。所以我们一般历史上的一些变革,包括IPD、CMN、敏捷、开源等等基本上是一种自上而下的推动方式来做的。因为这种自上而下有很多优势,有很强的执行力。因为华为有一个非常,就是在业界解读来看,就是它有一个成功的因素,就是一个非常强的执行力,只要上面的政策下来的时候,下面基本上都会按照这个政策的方向去执行。然后资源。资源就是说,你各个方面的资源,你的资金,你的人员,各个部门的配合情况,这些都是非常好的一些优势,能够帮助一些变革、一些政策,自上而下的落实下去。我在这里面认为理想总是美好的,后面这几句话是我们内部一些人总结出来的东西。比如说在推CMM的时候,说CMM好、CMM妙、CMM呱呱叫。一开始的时候,因为可能是04年之前,说没有规范,我们要建立一套软件的规范,来推行CMM。领导说好,我们去做。做的时候,在下面各个执行的时候,我们就要说这个东西很好,你搞了CMM之后,大家可以很轻松了,就不用加班了,因为外面的公司都在做CMM,如果你不做的话,你就被淘汰了,可能世界500强95%的公司都在做CMM ,包括像西点军校的墙上都贴着12条军规其中一条就是一定要搞CMM。
然后再过几年,到08年,我们开始做敏捷。领导说敏捷好,我们要做敏捷。好,那推行的时候,大家也说敏捷好,我们都在盼着这个敏捷,所有的开发人员都在等着敏捷,因为敏捷来了之后我们就不用加班了。就是说世界500强里面有95%的公司都在做敏捷,西点军校12条军规,其中有一条写的就是说一定要做敏捷。再过了几年,现在又到了开源时代,领导说看了外面公司都在做开源,开源是挺好的,我们华为也能不能也做啊?马上也要推行下去。夸开源好,开源特别好,因为全世界的码农都认为开源是我们共同的理想。就是世界500强95%的公司都已经开始开源了,西北军校12条军规其中有一条也是要用开源。就是这种,每次这种变革,或者说这种东西,都是很相似、很相似。务因为你一旦新的东西来了,我们会会想到以前好像特别苦,我们是不是要改换一种方式啊?都是在盼着新东西,来推翻一些旧的制度,因为我们里面华为内部有一些社区,大家在上面畅所欲言的有一些讨论,还是非常开放的,有一些言词也是非常大胆的,至少比我说的话还要大胆。
然后大家也在反思这些问题所在,这些问题到底是什么呢?有些人可能认为,是不是这是一种,就是说自上而下,我们是不是本身的基层的文化还没有改变呢?是不是有可能是这些原因呢?当然我也不能下决定,我也不能说认可或者不认可。我在想,这些是有问题,如果我们换一种思路,换一种角度,以前的一些变革,我都是自上而下,那如果我做一些自下而上的实验,不管它成功与否,做一次实验,看看它的效果是什么。于是,我后面讲的就是我这一个实验的历程。
不满是向上的车轮。我在小学的时候,我其中看了一些作文,其中有一篇范文的名字叫不满是向上的车轮,我印象一直特别深,所以我总是在以后的人生途中,我总是用这句话来激励自己,我会去吐嘈一些我看不惯的东西,或者看着不习惯的东西。尽管有人说,你不要紧紧是吐嘈,你不要紧紧是埋怨,因为你要给出一些建设性的方法、建设性的方案,但我不管,我先去吐嘈,我表达我的不满。那我最早表达的不满是什么呢?我就从公司的研发工具开始,大概应该是08、09年的时候,那个时候我们内部有了一个(09:29英语)社区。我这里稍微介绍一下我们的(09:34英语)社区。就是说,华为有一个比较有名的论坛,它是对外的一个叫新生社区的,有可能有一些朋友知道。上面是一个匿名发贴的,大家有什么话都在上面讲,包括公司的高层,特别是任正非指定说,高层者一定要去看新生社区平台,因为那上面有很多对公司的一些吐嘈。
然后我们在内部,也有一个实名制的论坛。上面有博客功能,还有团队的功能,还有论坛的一些功能。它是实名制,但实际上面的一些有时候抨击公司不好的现象,其实也挺尖锐的,虽然是实名,感觉比新生剖的还很尖锐,特别是在讨论的时候非常非常尖锐。我当时在09年的时候,针对研发工具也写了一篇文章,就叫做某某工具,你得罪了谁?大概的意思就是说,有一款工具,大家用的都不是很爽,但是公司还在强推这种工具,就分析一些原因,是不是我们研发人员都得了斯德哥尔摩综合症?是一直在用很难用的工具,但是又没有办法去选择,***我们被迫去喜欢上这个工具,就做了类似这样的吐嘈。之后,我就在想,是啊也有人提出,你不要光吐嘈,你要给出一些建设性的意见。那我建设性的意见是什么呢?我也是跟那个社区上跟大家一起讨论,我们的研发工具应该怎么做?这些研发工具,好像都有一个宿命是什么呢?开始我有一个款很好的工具,用着用着好像大家都不喜欢了,都开始吐嘈它了。这是为什么呢?这里面要介绍一下公司的产品线设置的情况,因为我是属于无线产品线,主要是做无线的基站、通信这块,还有其他的做固定网络的,做网络的,还有一些做企业通信的,企业网的,还有像现在在做终端手机,有很多这样的产品线,大概有十几个吧。每个产品线里面还有很多的产品部门,是个非常大的研发群体。每个产品线,他们的研发诉求都不一样,所以我们公司在推行一些工具,或者在做一些工具的时候,开始的时候可能他是切合于某个产品或者某个产品线的诉求来做的工具,挺好用的。挺好用了之后,去领导那边一推广,说这个挺好的,是不是全公司都可以去用?全公司都去用,问题就来了,因为其他的产品或者产品线它有它自己的一些诉求,他会跟你提,你能不能把握这个诉求加进去,我觉得这里用的不爽,你帮我改一改好不好。这样的话,就是说你不改吧,你不行,为什么呢?因为我们入职之后都会学一个,就是文化课程,其中有一条就是永远不要和客观争论。因为我们华为有一个核心价值观就叫做“成就客户。”就是说以客户为中心,你要表现出来,表现在你的任何方面,其中有一条就是你不要和客户争论,客户永远是对的。对于研发工具这个部门的客户是谁呢?那就是我们内部的客户,就是我们各个研发产品线的用户。所以说他们就是你的客户,那你的客户提出的诉求,你的客户提出的问题,不管他合理不合理,你都不要和他争论,因为他永远是对的,所以这些工具就会去加这些功能,然后加这些需求,原来他可能是一个非常方便的削苹果的刀,然后你又在上面加一把叉子,你在上面加一个啤酒起子,加一把螺丝刀,***你这个工具就会成为一个四不象,或者一个非常臃肿的东西,大家可以想像那个东西,还怎么去使用。那这个就是这种深层次的原因,我们讨论出来的。
接下来我们就借社区讨论,那既然是有这样的问题,既然我这个没法和客户去争论,我们要支撑公司里面这么多的产品、开发,产品线。那怎么办?有没有什么办法呢?后来我们就想,也有人提出,我们为什么不用这种开源的方式去做研发工具呢?就是说,你如果是一个工具,你做的很好,你把你的工具源代码你在公司内部开放出来,如果其他客户有需求,他自己可以去实现,然后大家也可以评判这些需求合不合理,能够把它加到你这个工具当中来。就想着,我们用这种开源的方式去做研发工具,说不定能够解决这些问题。当时应该是10年的时候,那个时候像github已经用起来了,github应该是08年创办的,它发展确实还是蛮快的,在国内可能是到近几年才变得更火的。12年的时候,基本上在国外的圈子里面还是蛮流行的。这个时候我们也是在社区里面开始讨论git、github这些,那github就是说是一个比较好的开源平台,但是我们公司有防火墙,我们有信息安全的代码,你不能随便的把它放到github上,说我去做开源了,那是不可能的,有这样的问题。其实我们就在想,因为因为我们没法去上外面的开源社区,我可能需要在内部搭建这样的一个开源的平台,于是这样的一个想法,也是在我们的(17:04英语)社区里面,我们大家也是在讨论,去想。但是我们做过很多的尝试,像我们有个同事叫陈仓(音),他最开始就是一个很朴素的一个想法,我们用get把那个共享出来,搞一个共享目录。就是一个get共享目录,你有什么库就往里面扔,在公司内网里面,你随便都可以去科隆,很方便。还有其他的同事,像杨贵龙(音),我们另外同事做了一下,就是利用当时的,也是一个开源的平台,叫gitorlous平台,现在已经被github收购了。我也在尝试,当时用github去搭这样的环境。github应该是11年底出来的,后来我也联系包括原来公司的(18:30英语)CEO,托马斯给我们打了一个(18:35英语)一个环境,不过这是后话。前面的都是一些开源的软件,后面这个不是开源的。所以我在12年5月30日的时候,code club的前三,就是github的一个服务,我就把它搭建起来了。当时我搭建好之后,我就在论坛上面就发了一篇帖子,就去征集用户,当时就起了叫开源。因为我一般写那些这种宣传文章的话,都会去抓一些热点,因为当时有个电影叫南京南京当时是比较有名的,所以我就开源、开源,非常叹号的在文章里面写,邀请公司里面这些用户,去用我的这个平台,到我这个平台上去注册,号召大家把自己的一些,就是说你自己一些好的工具,你写的一些好的代码都放上来,我们在这个社区把它开放出来,去共享等等之类。就是这样的,基本上通过这个方式,召集了***批的种子客户,当时可能也就几十个人,也不是很多。
我这个开始了之后,比较大的问题是什么呢?在当时因为很多产品的主力的配置管理都是SVN,虽然说有很多人,很多同事都了解过git,可能在工作中没有用这个git,另外他可能只是在一些业余的时间去用。其实还有一些人,他可能都没有听过git,也可能有这样的情况。我在向他们去推广,我前面之前的平台的时候,大家都会问这些问题,有人会问你这个git是什么呀。然后你这个东西到底比SVN好在什么地方?都会去问这个问题。所以我就做了很多的像是普及性的工作,就普及这个知识,去安利这个git,我就告诉大家这个是什么,这个什么好,去外面转一些文章进来,像(21:26英语)X,可能是X可能是SVN,可能是HG可能是其他的配置管理工具等等。自己去写一些这样的文章,还有自己去转一些这种文章,就是去推广做一个工作。也是另外号召之前的种子用户,那几十个人让他们也去影响,去写。也算是影响了一批人。另外一个意外的收获,我就这样不停的写,写着写着,就变成了我们内部社区的博客达人。博客排名是比较靠前的,可能进了前一百的,因为我们公司还是有几万人去写博客的,我可能就靠前了。当然这个收获,其实后面也给我带来了包括推广这个平台,也带来了其他的一些好处。然后我把这些人,我们开始组建了一些交流群组,在公司里面,我们就组建交流群组,经常去讨论,git一些相关的问题,还有比如说像(22:51英语)相关的问题,使用的问题等等一些东西。然后也在内部论坛上建了这样的一个俱乐部,这个俱乐部我们相对是一个团队空间,一些资料,大家一些使用心得都会往上面去放。这个开始,可能只有几十个人,后来通过这几十个人的一些扩散、扩展,基本上变成了几百个人,然后现在可能是有几千个人在里面。这些种子用户也是在逐渐的扩大过程中。
所以之前这些地方,就是我之前都是这些个人,因为我是号召这些个人用户他们上来,你上来把你自己的代码拿上来,可能自己写的一些工具代码,可能你是写的一些比较有意思的,或者说你写的一些算法什么的,都拿上来去托管、去开源、去开放,在内部开源。还有就是团队的客户在想怎么样找这样的团队客户来试点,所以这个时候我就加了Eat dog food,是微软的一个实践,如果团队自己开发了一个工具,你自己先用。虽然这不是我们团队开发的工具,但是因为我原来是在团队,我当时是在某个团队做一个SE,就是系统分析师的角色。我就通过这种方式,给团队安利,让我们自己团队先用起来。反正就是说,自己团队用,自己的人好说话,但也有一个问题,什么问题呢?他们有什么问题,他们使用的任何问题,都会来找你,哪怕是一个很小的问题,他自己上上网能够解决的问题,可能他也会来找你,但没办法,因为开始我为了找这些用户,找这些团队的用户,个人的用户,我就说能够提供帮助的,肯定尽量提供帮助,把他们都吸引上来。
基本上开始的阶段,就是我一个人,一个人在搞code club平台,一个人去维护它。其实我做的开发工作比较少,因为主要是做一些跟公司里面的系统对接开发,可能会做一些。然后大部分都是我要去做这样的运维,因为(25:48英语)每个月都会去升级,尤其是每个月有新版本的时候,我都会去升级。因为你升级了一个新版本,有一些新功能,你好有更多的资源去安利别人,让别人来,我又有新功能了,来看看是不是挺好的,都是这样的。基本上从运维再到一些宣传等等,都是一个人在去做这个搭理。而且我就说一个人的团队,因为主管也没有给我安排这项工作,所以说这个事情基本上都是我自己利用自己的时间去做。如果我能抽出工作的时间,我就尽量抽出一点,当然大部分是没有时间,我只能利用一些加班时间来处理处理做这些事情。
后来对我这个平台产生一个,算是个关键性的转折机遇,应该是内源。刚才说的是内部的开源。因为外面开源很火,领导也在想,开源为什么在外面的一些公司能够成功,然后在想开源能不能把它引入到公司里面,用这个开源的方式,我们去开发软件,我们去开发我们内部的软件,我们去适配这样的研发流程。这个时候我们当时在公司上,就是说公司层面成立了这样一个内源的工作组,去推广这样的内源工作。还有另外当时也去买了一个github enterprise这个服务,就是这个企业版的服务。所以我刚才就说自上而下为什么好呢?他有这样的一些资源,一旦说要做什么事情,马上政策就下来了,工作组也成立了,人员也就位了,各个产品线,各个部门立刻就配合它,都打通了。还有资金投入,要成立专门的人去开发,另外去买github enterprise不差钱。github这个企业版挺贵的,一个人每年是250美金,就是他按人算,这样可以算一下,如果是一千个人用,就是25万美金每年,所以说是蛮昂贵的一个平台,但是因为自上而下挺好的,不差钱。不过,在华为有一点,说感觉不差钱,但是其实华为的领导也是蛮扣的。扣什么呢?你这个东西如果要花钱,这个钱一定要是能够用出效果来的,所以说在效果还是看的不明显的时候,他也不会花特别大的成本,所以当时也买了500个isource先试用、试用。但这些对于我这个平台来说,应该说是一个机遇,也是一个挑战。机遇是什么?因为公司如果去导向,去推广这个内源自开发方式,意味着有很多人会去改变这种开发模式,他会选用git,有可能去用这个内源的平台,但是挑战就来了,因为我这个不是一个官方的平台,是一个民间的平台。你肯定被官方的取代掉对不对,摆在我面前的就是到底继续维持下去,还是就被咔碴掉,这是蛮严峻的一个问题。其实我时候就在想,我觉得这个挺好的东西就不能放弃了,还有很多小伙伴在里面呢。怎么办呢?我在想一定要让它能够快速的成长开来,它变成一个体量比较大的平台,尽管他是一个民间的平台,如果它体量比较大,里面的用户比较多,那你官方用户要取代我的时候,成本就比较多了,你要把这些人迁移过去或者等等之类。我要让我的民间平台站住脚跟,怎么办?我就要做一些快速拓展的方式。我写的叫《Growth hacking》,这本书应该是去年比较流行的,就是增加黑客,当然我到现在也没有看过这本书。只不过,我在回顾我当时做的这些事情之后,后来跟庄表伟去讨论,觉得其实我做的那些事情可能就是这个Growth hacking,所以我就这样写了。我当时做了哪些事情呢?其中一个,我当时想的是,华为里面是有防火墙,代码你是不方便传出去的,因为有信息安全,这个是华为历史上有这样的,因为栽跟头,所以在这方面一直防范的比较紧。防范比较紧另外一个不好的后果,不但堵住了大家把代码传出去的路,也把有些东西传进来的路,也给稍微堵住了一点。我们里面如果要上外网,基本上要用一个(31:58英语)这个东西。有时也不是很稳定,有些网站你也访问不了,当时有很多研发人员想去这些开源的库,稍微有一点麻烦。那我就想,既然它比较麻烦,既然我也是一个开源的平台,大家都是用github托管,我把外面的资源,我通过一些办法,每天把有些开源的项目同步进来,让大家直接到我这个平台上去获取,不就好了吗?它既然要到我的平台上获取,他不就成了我的用户了吗?我就做的这样一些东西。而且我也做了这样的一个,内源的项目,让大家基本上是自助的方式,你需要什么开源的项目,你到我上面登记一下,然后每天晚上有一个自动的脚本,像个机器人一样,每天去分析它到底是想要什么样的开源项目,然后把它从外面的仓库,通过(32:56英语)科隆进来,每天再去同步更新一下。用这种方式吸引了一批用户。还有像公司里面的ID,或者说编辑器的插件,因为那些插件也是需要开源库,我也是通过这样的方式去同步。然后吸引这些使用ID的,编辑器的粉丝们。
另外讲一个蘑菇云,蘑菇云是我们内部的一个像pageS系统,它就提供了一个你可以在上面自己创建一个应用,可以跑起来的东西,主要是提供内部用。它是我们公司内部的官方项目,出来之后,我就在想我能不能跟他搭上边呢?当时我偷偷就混到了他们的群组里面去。在群组里面,我就给他们提主意我说你们这个蘑菇云做的还不好,体验还不够好,你应该做到什么呢?用户不要自己再打包一份代码传上来,再把应用跑起来了,你就直接在,我不是说我的,你就在github的平台上开发,你开发完了之后,你把你代码铺上去之后,自动就会出发一个钩子,然后到你的蘑菇云上,把应用更新掉不就好了吗?然后架构师听了挺有道理的,就开始在里面说,挺好对接。后来他们不知道怎么得出什么消息说,好像公司还有一个官方的社区,github社区,到底对接哪一个呢?我说你要对接,肯定要对接用户多的,我们当时大概已经有两千人了,我就说我们大概有两千个用户,我说github有多少,我不知道。另外有其他的用户,他可能就进来,他就清楚,他说github只有500个人,我说那算了,后来他就对接了我这个平台。虽然我当时是个民间的平台,但是他就对接了我这个平台。后来他就利用这个功能特性,也在公司里面做了一些宣传,号召大家有他的蘑菇云,用他的时候,也用了我这个平台,所以这个也是一个在里面的点子,包括后来又找他们,我说里面我们有很多的研发人员想写博客,想借这种模板写博客。你蘑菇云也可以提供这种机子再给我们做对接,就是做这种方式,通过跟一些其他的平台做合作,也拉了一些用户过来,还有就是一些免费广告。这个是什么呢?因为之前也说过,我就在那边写博客,一不小心就写成了一个博客达人。也认识了一些公司里面的所谓的大V,就是写博客排名靠前的,有一些影响力的,有一些关系比较好的,就请他们帮我来写一写贴子来宣传,有几位还是挺给力的,给我做了一些广告。另外,我会抓一些热点事件,拼命的到我们的内部社区上去宣传。比如说这个当然是后面的一些事件了,比如说去年的google code关掉,我就写了一篇文章说google code已死,华为code永生,这个就是非常有吸引力标题,结果我那篇文章点击了将近有一万次。当然有很多人是被这个标题吸引进去的,里面点进去发现根本就不是,我完全是在安利我自己的平台。那不管怎么样,我写了这个东西,当时有一万人点击,反正我当时看我写完这篇文章之后,大概平台里面增加了四五百个用户进来了。后来我就发现,每次做这样的事件,每次做完一件事情之后,我看我后台用户都会有一个用户的增长峰值出来。
还有另外一个,我仅仅不停的去吆喝,去做宣传还不够。另外我要用精益求精的想法,去打造产品。开始的时候,我一个人的时候,因为我能力有限,可能我主要是做一些运维。我坚持就是每个月去升级我们的平台,因为它github每个月都会发版本,我都会去升级,然后让它做的更好。后来我们成立了项目之后,我们自己也会开发很多的功能在里面。我们都会有一种精益求精的想法去打造这个产品,包括里面任何的细节,都希望他做的很好。这个其实也是我写的一篇文章,因为时间有限,就魔鬼存在细节中,我就讲述我们如何去打磨这个产品细节的一些故事,我就不多说了。
通过这样一系列的手段,后来我们首先实现了5000用户的突破,后来我还在公司里面申请注册到了,code.huawei.com的域名,看上去蛮官方的,但是实际上我注册到这个域名的时候,还是一个民间平台。已经是非常很官方的域名了,后来我们趁热打铁,开了一次用户大会,当时开用户大会的时候,有各个产品线的同事都来做这样的分享。
嘉宾:请问一下,不是全职工作?
胡智勇:不,我马上要说了,我马上要转正了,之前都是业余工作在那里,真的是业余工作在那里玩,确实是蛮喜欢这个东西的,也觉得非常好,就是一直业余在搞,马上就谈到转正。因为你确实不可能一直在业余,因为我是12年,如果我一直业余到现在,我估计我可能就被末尾掉了。因为如果你做的事情,老是不在主行业,这个可能不该说。
我说转正,转正因为有这个契机,慢慢就收到了部门的支持和认可。我们领导觉得挺好的,我们就成立一个项目组,全力以赴的去做。我原来是业余时间在搞,后来变成专职在弄,后来加了一个人,然后变成四个人,现在八个人,基本上稳定在这样的一个状态。现在我们大概核心的有八个人,当然其他还有一些人。另外,之前我们是有一些客人用户,还有一些团队的用户。当然基本上大多数都是一些开发内部工具的团队,后来我们拓宽到开发那些政治产品、商用产品的开发团队,他们也进到我们平台上,来进行开发了。因为这样的契机,也得到了我们产品线的认可。产品线领导觉得你这个挺好的,能够帮助大家提升一些效率,也更开放,他也蛮认可。
之后,因为要让这些商用的开发产品,能够用得好这样的平台,除了这些(40:55英语),就是它原生的那些社交特性,开源的特性等等之外,我们还要做什么?我们要支撑产品的研发,我们可能要和公司的系统做对接,比如说一些我们内部的需求平台,缺陷平台,还有一些管理平台等等,生命周期的平台等等。一系列的我们都求支撑,还有一些其他的用户诉求,可能是来自于产品的诉求等等。我们做了这些研发。之后,也是得到了,我们开始在一个产品线,慢慢就突破出去了,就得到了外产品线的团队认可。当时其中的一个产品线,它是我们***个外产品的团队开发、团队用户,它也是一个商用产品,就找到我,我也是挺惊讶的。当然他也蛮信任我的,他找到我,就问了几句话,其中就问到说,你这个会不会一直存在,别到时候开发开发着,这个平台就没了,我说只要我在公司我这个平台肯定有。他说好,整个团队就迁过来了,他们还是蛮大的一个团队,当时有一百多个人,现在有三百多个人在我上面开发。所以通过这样的扩大,也就得到了公司体系的认可,后面我基本上即使不去做google code的动作,他的用户也是基本上稳定态势的增加,现在大概有17000人。刚才林旅强介绍,我们大概有八万的研发用户,软件开发估计有4万人,真正开发代码的估计也就三万来人,所以有这样的一万七千人的用户还是蛮理想化的数字,其中活跃的每天有5000人的。项目仓库大概有1400多个,其中有40%都是内部开源的,他的代码是开放的,有很多产品线开发团队,在我上面去开发。基本上有这样的一个体量。
随之带来的成长烦恼,一旦变大之后,你一旦支撑了很多商用产品交互的项目之后,随之来的烦恼就来了。比如说像配置管理、信息安全,这个我就不细讲了,因为有一些信息安全,你有没有安全隐患等等这些,他会给你做一个(43:47英语)。还有就是说各个团队的需求、需求,无穷无尽的可能会过来。然后我就想到这个屠龙英雄的故事,这个是什么?就是说以前说山里有个恶龙,村里有个少年英雄说,我要把这个龙杀死,后来发现大家都发现,为什么英雄都没有回来?后来有一个胆大的人,就跟着英雄一起去,发现那个英雄把龙杀死了,但是英雄没有回来,为什么呢?他看到那些地上的金子,他留恋了,然后慢慢的他就待在这里,慢慢的自己就长出龙牙来了。我这什么意思呢?原来我可能是一个民间平台,本来想改变这种状况,但是实际上等我状态之后,我发现它又可能像原来的官方平台一样,走那样的一个路线了,因为无穷无尽的需求会过来。如果这些需求,我都接受的话,我也可能会变成非常非常雍容,也会变成我自己所吐嘈的那个对象了。所以为了防止这种现象的出现,我们开始在里面尝试内部开源的方式去运作,这些需求,你都来,但是我们有一个社区PMC。PMC就是由产品团队的用户代表,大家来投票,决定你这个需求,到底该不该接纳,要不要去做,另外我们还会有一个每年用户大会,我们在五月份,现在我也是在紧锣密鼓的组织,筹备今年的用户大会。让用户去决定你这个需求,让用户来决定我这个平台以后的发展方向。
这个由于时间关系,我就大概点一下,因为有很多这样的用户。我们的用户特点是并发作业,比如说我提交代码,都喜欢集中在一个时间点提交,什么时间?一般都是下班前,比如说大概一个小时,拼命的代码都会上来。还有因为我们国内游九地研究所,还有一些海外研究所用户,他们有些研究所就提出说,你这个慢了,因为异地,因为是广域网的原因,就很慢,所以我们也紧急开发了分布式的方案。本来这个方案是在github,是不支持的,但是我们因为要支撑公司的情况,我们就做了这样分布式的部署方案,还有解决git大库的问题等等,性能的问题等等。基本上包括我和我的团队,基本上都是一种创业的心态在做。真的是把他当成一个,自己的一个东西,就是说觉得非常非常用心的去做它,当然这种心态也导致我做的也是蛮累的,就是一种创业的状态,我说的这个创业状态是什么意思呢?确实很累,大家都知道说创业者很苦逼,我看网络上有一些吐嘈,嘲笑创业者。其实我觉得也有点类似,因为我从今年包括过年之后到现在几乎都没有休一个完整的周末,确实是蛮累的。尽管很累,但是我觉得还是能够坚持下来,为什么?因为还是有一些用户给我们一些鼓励,他在我们内部社区上,还包括通过我们内部的通信工具,给我发一些话来,给我一些鼓励,挺好的。我觉得他们这些鼓励,支撑我做一个前行。
***,我想做一个简单的总结。我觉得做这样的事情,就自下而上去打造这样的公司级的平台。其实有点像这样,我刚才说了像创业者的心态和创业的状态去做,也像一个创业项目一样去做。我就总结几点:***个,我认为应该用开源的方式去做,因为开源的成本相对是比较小,我可以用最小的成本,迅速把我这个产品打造起来。第二个,就是这种快速的Growth hacking的技巧,你把用户扩展大,不管你是通过什么手段,因为你的环境不同,手段也不同,因为我们是在公司内部,选用的都是公司内部的一些方式,我去发展。然后社区,这个社区也是蛮重要,不管你是小社区还是一个大社区,你小社区也会慢慢变大、变成一个大社区,你找一些种子,这些种子生根发芽,慢慢会影响到身边的人,逐渐的会影响更多的人。这也是最健康的方式,一个成长的方式。还有就是确实是坚持。至少在前两年,我基本上都是在业余时间做,但是也是一种坚持让我带着团队,取得了这样的一个成绩。
***,我引用一个华为的流行语,叫烧不死的鸟是凤凰,因为我们可能是一个民间平台。由于时间关系,我有很多的这里面发生的一些典故,也不好一一细说,但是我想说的结果到现在我们还是活下来了,活下来的可能就是凤凰。***我再文艺一点,再另外加一句话,就是《马太辅音》上的一句话,我也蛮喜欢的,就是引到永生,那门是窄的,路是小的,找着的人也少。有些路确实很艰难,很难去走,但是如果一路能够真正走下来,可能也是一个通向成功的一条路。
***,这是我们code club的登陆界面,里面的内容由于信息安全的关系,我就不给大家看了,这是我们的一个截图,我当时选了一些比较好的图片,作为这个背景图片,像这一个。我就希望我们华为内部的研发者提供这样一个精致的社区,让大家能够用好工具。
***再打一点广告,如果在座有华为人的话,可以到我们的code club平台上来。如果不是华为用户,也欢迎大家加入华为,你进来之后可以来找我。