口述 | 毛剑
整理 | 王强
2021 年 5 月 21-22 日,极客邦旗下科技领导者高端社区 TGO 鲲鹏会主办的 GTLC 全球技术领导力峰会全球总站 在上海成功举办,吸引全国各地 600 多位 CTO、技术 VP 等科技领导者参与。会上,bilibili 数据平台负责人,goim、bfs、Kratos等知名开源项目作者毛剑分享了主题为《业务高速变化,如何做好技术管理和架构设计》的演讲,基于自身经历分享了演讲者带领团队应对业务变化过程中的一些经历、困难、问题和反思。我们将演讲内容整理如下,以飨读者。
大家好,首先自我介绍一下,我差不多有 12 年的工作经历,在 B 站待了有接近 6 年了。我也是从一线的技术人员慢慢成长成为管理者的。早期在业务团队做后端研发、中间件等方向,到中途还做了像平台架构师这样偏虚的一个职位,到现在带 B 站的数据平台。现在团队人也不少,大概有将近两百人,下面是我个人和团队开源的一些作品。
我整个大纲分为三块,2015 年的时候从北京来到上海加入 B 站,当时的 B 站 ACG 的内容占大多数,但是现在随着用户和内容的增长,B 站有了更多多元化的内容。我一共待过两家创业公司,运气比较好我加入的时候还很早,加入 B 站的时候大概 200 多人,后来两家公司都上市了,所以我是一名福将了。
加入创业公司
熟悉用户、熟悉业务
加入一个你完全不熟悉的行业有几个点很重要,首先,你面对的是完全陌生的环境,我早期不是 B 站用户,平时也不怎么看这方面内容,当加入你完全不了解的行业时,你自己就要成为用户去深入了解产品。我当时就开始经常看 B 站,随着对产品的熟悉,对内容越来越了解,逐渐就打开了新世界,对内容行业也开始有所了解。
第二点,公司其实有很多内容的老司机对内容理解很深入,像我们公司很多会议室名称跟大家平常会议室不太一样,我们公司的会议室名称类似于“前方高能”,“前方高能”这个词的意思就打比方,在 B 站看恐怖片或者一个片段,B 站用户会用弹幕刷“前方高能”、“核能预警”之类,我们就知道有很恐怖画面即将出来,恐怖画面出现的时候有弹幕护体把恐怖的画面用弹幕完全盖掉,你看不到就没有那么恐怖了。
我接手整个主站代码的时候,原有的代码有个外号叫 B 站全家桶,过去创业的时候,技术实现都是怎么快怎么来没有严谨的设计,代码写起来考虑工程化的事情比较少,所以整个代码组织很混乱。对我来说,在业务很多技术债务的情况下,最后选择 Go 语言其实主要还是看好其发展以及熟悉程度。当时老板对这个很支持,因为他感觉 Go 比较新可以吸引有技术追求的人才,其实现在 Go 在整个生态发展得不错,可以看到很多头部的公司在大规模使用 Go。
创业公司的招人、养人方法
之前有人问我为什么要做重构,其实这是为了业务迭代效率最大化。当时 B 站的整个技术体系、技术团队并不是那么成熟。我们团队早期每次跟候选人交流,我说我是 B 站的面试官,对方首先问是什么 B 站?你们是什么公司?我只能跟他解释说我们是什么样的公司,其实很尴尬。所以早期招人很困难,BAT 大厂的优秀人才加入很困难。我当时人脉熟悉的人大都在北京,来到上海以后很多人都不认识,异地的门槛也比较高,所以我会优先找自己熟悉人。雷军雷总说过一句话,他投资的时候找自己最熟悉的人,也推荐大家在搭建一线团队的时候找熟悉的人、熟悉的团队。
公司比较小的时候要吸引非常优秀的技术人才非常困难,我的策略是新手培养,因为在团队规模比较小的时候,我带头干,身先士卒是一个比较好的方式。在这个过程当中,2015 年 - 2017 年遇到很多困难踩了很多坑。所有技术不错的管理者都很容易犯的错误是很多技术细节要插一脚,甚至技术天赋越高的人这个问题犯得越多。我早期属于技术、技能点很多管理技能少的人,不太重视团队建设,刚才说在重构过程中遇到很多技术事故,对我来说当时解决方案更多是通过技术手段而非管理手段解决问题。
当时非常喜欢谷歌的 SRE 方法论,面向失败来进行设计,这些思想最终体现在业务框架、业务的基础库里面。但是线上无小事,线上一定要如履薄冰,而大部分的事故都是人为变更导致,这些人为变更通常是非 SOP、非标准化的一些操作导致的。出现问题时只从技术角度来解决,缺少管理手段的介入,某种意义这种非 SOP 或者责任事故一定要重罚,一定是红线。
另外,因为 B 站在高速的增长,会遇到很多技术挑战还有困难,虽然团队的人也在成长,但大部分是按照我的技术规划、战略想法做了一些落地,导致他们没有很快速地成长为优秀组长、经理甚至总监。
最后,我当时跟运营团队更多谈的是技术思维还有技术迭代,从业务战略和产品规划上跟他们联动比较少,这也是做的不好的一点。
总结来说那段时间还是很有收获的。第一,B 站处于相对比较早期阶段,会非常简单做到技术的统一,其实很多大厂内部零散重复建设很多,解决问题要付出的代价会随着时间越来越大。
第二,无论是我还是团队都积累了一些架构以及设计经验。我个人积攒了很多技术影响力,这个期间对外输出了很多技术 PPT,其实到了 2017 年我个人是非常痛苦的,一直觉得团队在快速增长,业务在高度增长,自己精力消耗很多在日常事务里,也觉得自己处于瓶颈期。所以,当时我就决定加入架构师团队,突然跳出来一个人不管,一个光杆司令要做架构师,要协助做全公司级的技术统一包括语言层面的统一。我为什么出来?一方面给自己释放一些精力,因为之前日常工作非常忙留给自己独立思考时间比较少。另外,我当时还监管工程效率团队偏向测试开发,我之前测试方向积累相对弱一些,这对我也是一个挑战。
挑战自我
到一线重新开始成长
挑战自我这个时间点总结下来是放下管理和偶像包袱。因为之前在团队里面一两百个人,还是非常幸运的,我的很多技术想法有他们帮忙落地。但是自己单枪匹马出来以后,要协助其他事业部解决问题,还要说服他们用一样的技术、一样的组件其实是非常困难的。我觉得如果要做公司级有技术影响力的人,一定要深入一线解决一线的技术问题。所以,当时我先驻扎到 B 站的直播技术团队,去跟很多一线员工讨论技术方案、技术架构,只有在一线同事里有影响力,才是真正的有技术影响力。另外从主站协调了一些优秀的人去帮助他们团队进行技术演进,慢慢地双方有了更多交流,更容易促进合作。
技术平台好坏尤其靠其他业务团队口碑,之前自己做业务的时候要孵化很多中间件,沾沾自喜感觉做得不错,可是当我驻扎到其他团队,在对接的时候才发现那些平台有多难使用,所以要换位思考,平台做得怎么样以及哪里还需要改进。
在这一段时间内,我获得的成就感的方式从技术成就感开始转变为解决问题的成就感。具体来说,先要解决业务的问题,不仅仅是关注这个技术方案很厉害很牛要去落地。所有技术团队都觉得你既能到一线去解决困难,同时也可以带着团队打,这个非常重要。
给自己思考的时间
当我们觉得很繁忙遇到瓶颈的时候,一定要留出很多时间进行独立思考,这不是空话。在你比较冷静空闲的时候,留出时间去想当前团队有什么困难,有什么问题值得改进,这样的独立思考是非常非常重要的。
最后一点是业务优先于技术规划,我们先做一小部分业务,满足公司对你或者对这个团队的一个要求,让别人觉得你这个团队可靠并且能产出,同时你要留出一部分人力来做技术规划还有长远的事情。
到 2018 年底,架构师团队、工程效率团队做到一定程度后,我跟老板聊了很多次探讨接下来做什么。当时有一个机会,B 站跟网易漫画的业务合并,派我去杭州出差做这个业务的整合。大家知道做这种业务整合主要是数据迁移,整体技术来说比较枯燥,但是那个时候从计划方案、实施、落地迁移,我都是义不容辞去解决问题,从结果来说也还做的不错。
战神归来
进入第三个阶段,完成了漫画迁移工作以后我思考总结了几点经验:
跳出舒适区
第一,一定要不断跳出舒适区。因为我在第二阶段的时候其实已经比较舒适了,事情不太忙,也有不错的产出,绩效也还不错。但到底是职位给你带来的业绩,还是你个人去哪个地方都可以获得成绩,这个很关键。所以,一定要不断反问自己,分析了公司可能接下来在技术上面对的一些瓶颈。当时发现 AI+ 大数据,底层的技术基础设施可能会成为下一个瓶颈,所以跟老板商量以后加入了数据平台团队。我之前没有做过跟大数据相关的事情,也不熟悉不擅长,所以是很大的挑战。我刚加入的时候没那么有信心,有一点点害怕,毕竟大数据其实是非常复杂的体系,我自己个人积累不在这,如果你加入一个新团队,要思考如何快速吃透、掌握它。
持续学习
我们知道大数据有很多的论文,这个方向的一些论文要快速阅读,大概掌握整体技术方向是什么样的。第二,一定要多请教比你厉害的下属,因为他们在大数据领域耕耘了多年,当然这也是我的工作习惯。为什么我在第一个阶段甚至第二个阶段花这么多时间来培养新人,是要让校招和实习生体验到团队对他们的重视。另外,的确可以从很多优秀的年轻人身上学到很多东西,包括代码、学习方法等等。
寻找最优秀人才
还有一点是寻找行业最优秀的人才,身为业务负责人很多时间都要花在寻找头部人才上,行业的人才 mapping 很重要。时不时要跟行业优秀的人才吃饭聊一聊,聊一些技术规划、细节,像猎头一样持续关注他,要认真的用心做朋友,放长线认识行业的人才。
我们招聘的时候,级别到一定程度的人才通常看几个点,首先是公司的发展,所以要聊很多公司业务上的规划还有战略,告诉我们在这个行业里面的优势是什么,以及加入团队对你的竞争力、公司对这个团队投入程度是什么样的。除了钱、福利、文化以外的东西。还有很重要一点是作为一把手跟他聊技术规划,他就知道你技术团队是什么风格。前一段时间跟候选人在聊整个大数据存储方向的演进,刚好最近脸书有一个对象存储的论文,所以会跟他说脸书的技术细节是什么,对应我们的规划又是怎么样的,对方就知道你在管两百多人团队还可以知道那么多技术细节,就会很倾向向往加入这样团队,这很重要。
技术团队不仅仅是靠威严来管理,大家对你的认知要是很优秀的懂技术的管理者。大家可能会问日常管理怎么办?其实,随着公司越来越成熟,最终管理一定是看靠管理制度来保障,所以也会听 HRBP 一些意见,结合公司管理工具覆盖掉、承担掉一些管理上的事情。
总结和反思
我在 B 站从 2015 年到 2017 年,其实经历很多起起伏伏。一开始我是起点比较高,当时管的团队非常多,但有一段时间老板可能觉得我某一方面做的不够好,不是很优秀的管理者,所以我到了一线做技术架构师。的确,到这一阶段摔下去的人大部分起不来,为什么?他可能抱怨管理制度抱怨公司,抱怨空降来了这么多人等等一系列细节,没有反思找问题思考到底你跟他们相比短板是什么。所以,你跟他们的差距是什么?要怎么解决短板?我们发展到一定程度,发展到一定高度可能就是公司的短板,要招更好的人这是非常正常的。
第二是我们要终身学习,事业下坡期或者短时间的失意并不关键,这一段时间要持续关注或者成长反思一些事情,想一想哪些需要改进,还有在你很忙的时候管理工作通常都出问题,真正好的管理者一定是有自己的空余时间,思考整个团队战略规划跟公司同步,跟行业去做技术 mapping,这个很关键。
还有管理要收放自如,每天一根弦紧绷的状态不够好,真正优秀的管理者能收放自如,休闲时候去拍照还有旅游什么的,长期紧绷对身体不好,状态也不是最佳的,经常看到很优秀的管理者一直谈笑风生,该严肃的时候非常严肃。
这就是我今天的分享,感谢大家。
演讲嘉宾介绍:
毛剑,bilibili 数据平台负责人,goim、bfs、Kratos 等知名开源项目作者,有近十年的服务端研发经验,擅长高性能、高可用的服务端研发,熟悉 Go 语言。参与了大型互联网公司的巨石架构到微服务的完整转型,包括微服务治理、微服务可用性设计、微服务数据一致性设计、微服务中间件、微服务监控、微服务日志收集、微服务负载均衡和微服务 RPC 框架开发等。
评论