你好,我是葛俊,曾在 Facebook内部工具组工作,与两个同事共同负责软件研发工具套件Phabricator 的开发和开源,是Phabricator的主要作者之一。
最近这十年,国内互联网产业的发展速度不亚于硅谷,在商业模式创新方面甚至已经完成超越,但是我们在研发效能方面始终比较落后。今年年初爆发的996大讨论,让国内的加班问题,吸引了国内外开发者的关注。我们很难予以否认,在互联网行业繁荣发展的背景下,国内很多公司采用了“拼工时”的做法,却忽略了最最应该关注的研发效能。
现在,我想请你回忆下,你是否也曾为下面这些问题感到困扰呢?
这其实就是团队的研发效率,也就是研发效能出现了问题。那么,研发效能到底是什么呢?
一提到研发效能,很多人的第一反应可能都是开发的速率,也就是研发团队能否快速发布产品。但在我看来,速率只是效能的三大支柱之一。
除了快,产品开发更重要的是方向正确,因为不能给用户和公司真正提供价值的产品,做了也是白做。另外,高效能还需要有可持续性,否则短期的高产出可能会严重伤害长期的产出。比如,连续熬夜加班带来的身体问题,会导致后续工作效率低下,得不偿失。
因此,研发效能的完整定义应该是:团队能够持续地为用户产生有效价值的效率,包括有效性(Effectiveness)、效率(Efficiency)和可持续性(Sustainability)三个方面。简单来说,就是能否长期、高效地开发出有价值的产品。
可喜的是,国内越来越多的公司开始在研发流程、工具、文化等方面下功夫,很多百人研发人员规模的公司开始组建了专门的效能团队,来提高整个公司的研发效能。
这是一个很好的现象和趋势。但,很多公司在推进研发效能的时候,常常不知道从何下手,或者是花了精力、加大了投入却看不到效果,产出抵不上投入。比如,我在一些公司做内训和顾问工作的时候,经常会遇到下面这样的案例:
这些问题的根源都在于,软件开发的灵活性决定了研发效能提升的困难性:可以关注的点太多,可以使用的方法也很多,但如果只是简单照搬业界研发实践的话,效果往往不好,有时甚至会造成负面效果。
而与国内公司形成鲜明对比的是,硅谷的互联网公司在推进研发效能方面做得要好得多。在2000年互联网泡沫之后,美国的互联网产业从疯狂增长进入到了“精耕细作”的阶段,需要通过比拼效能在竞争中取得优势,并在此过程中积累了很多经验。
在这其中,Facebook的研发效能非常高,更是硅谷公司中的一个典范。比如,早在2012年Facebook月活达到10亿的时候,后端服务及前端网站的部署,采用的是每周一次全量代码部署、每天一次增量代码部署,以及每天不定次数的热修复部署,但部署人员就只有三个,达到平均每个部署人员支撑3.3亿用户的惊人效率。
又比如,社交网络出现Bug的时候,调测起来非常麻烦。因为要复现Bug场景中错综复杂的社交网络数据,困难并且耗时。但在Facebook,它采用开发环境跟生产环境共享一套数据的方法。这就使得开发人员可以非常方便地在自己的机器上复现这个Bug,进行调测。当然,这样的数据共享机制背后有着强大的技术和管理支撑来规避风险。
2010到2013年之间,我在Facebook基础平台团队的内部工具组,作为核心成员,研发并开源了研发工具套件Phabricator。2013到2015年,我又作为效能工具的使用者,参与了Facebook对外产品的研发。也正因为这几年的工作,我对Facebook如何提高研发效能有了越来越清晰的理解,认识到研发效能的提高,需要整个公司在研发流程、工程方法、个人效能和文化管理等方面进行精心设计。
离开Facebook之后,我在硅谷的Stand Technologies公司、国内的创业公司以及华为担任过技术总负责人、CTO、技术专家和团队主管等角色,带领百人技术团队进行研发。
比如,2017年到2018年,我在华为开发工具部主导下一代集成开发工具环境,为软件开发工程师提供全栈的端云一体工具平台,服务于2万多开发者,致力于提高公司整体的研发效能。同时,我也尝试将研发效能的工程实践引入华为。比如,我在团队进行了几次黑客松(Hackathon),每次活动,平均10个开发者就产生一个项目,每10个项目中就有1.5个成功落地。
工作15年来,我在研发效能团队工作过,也在产品团队中推动过研发效能,这其中包括硅谷和国内的公司,也包括大型企业和创业公司。对怎样在一个公司或者团队引入效能实践,有比较丰富的经验。
所以,当极客时间团队邀请我写一个与研发效能相关的专栏时,我毫不犹豫地就答应了,希望能够借此把之前的经验、教训做一次系统地梳理,帮助到同样对效能有期待同时又有困惑的同行者,另外对自己也是一次温故知新的机会。
在这个专栏中,我会从4个方面,分5个模块与你讲清楚如何做到研发的高效能。
研发效能和软件开发一样,都具有很大的灵活性,提高研发效能也不是照搬照套就能做好的。所以在写作专栏的过程中,我会着重讲解Why,带你深入了解效能实践背后的原理,然后才给出How,也就是具体的实践。因为只有深刻理解原理,才能灵活运用。
同时,我会与你分享尽量多的案例,带你一起了解国内外一些公司的优秀做法,分析它们成功的经验,当然,我也会分享失败的案例,以及背后的原因。不过更重要的是,我希望你能够跟着我一起分析,通过对比思考,找到真正适合团队和自身的实践。而这,是我写作这个专栏的真正初衷。
这是研发效能专栏的第一篇文章,如果可以的话,欢迎你在留言区做个自我介绍,和我聊聊你或者你的团队在研发效能方面的实践以及遇到的问题,增进我们彼此的了解。而且,我也希望你看过这个专栏后,能够再回头来看看最初留下的内容,相信届时你已经对研发效能有了新的理解和思考。
评论