InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

从普通程序员到三百人技术团队 CTO,技术人成长的易与不易

  • 2017-01-16
  • 本文字数:4857 字

    阅读完需:约 16 分钟

引言:

成功学者们总是在灌着各种鸡汤,好像按他们说的做就能走上人生巅峰。普通程序员们也经常幻想着成长可以一蹴而就,三五年做到架构师、CTO 好像触手可及。平凡的人总是相似,不凡的人各有各的不凡。这次不灌鸡汤,只有最朴实的文字与回答。本文不一定能马上帮到你,但起码可以带给你一些思考与方向。

编者按:

起初,他也曾是一名普通小程序员,循规蹈矩地上班下班;后来,他突然意识到这不是自己想要的生活,于是从阿里辞职,跳槽有赞;现在,他是三百人技术团队的 CTO。

与崔玉松先生的相识,源于 2016 年 12 月中国技术开放日美国站的活动中。和许多程序员一样,有赞CTO 崔玉松自爆也曾不善言语、不喜与人沟通。曾经的梦想是做一名优秀的架构师,带领一个不超过10 个人的精英架构师团队。如今,他侃侃而谈,做事沉稳干练,并管理有超过300 人的研发团队。InfoQ 为此专访了崔玉松,希望他能够为大家分享一下,在不进则退的技术人生里,如何仰望星空、脚踏实地。

采访嘉宾

崔玉松,有赞联合创始人、CTO。前阿里巴巴技术专家,资深码农。

行业巨擘阿里 VS 初创公司有赞,为何选择了后者?

2013 年,他放弃阿里投向有赞,一边是成熟稳定的互联网大公司,一边是充满不确定性的初创小公司,是什么促使他做出了这种决定?有赞哪些地方吸引到了他?

标准的回答应该是为了理想,实际上我也不知道算不算。2012 年底和团队一起基本上做完了淘宝搜索业务端的重构,我在思考下一步做什么。当时得到的信息很碎片,大家都不是很清晰明年搜索业务做点什么,只是说垂直化,个性化。我自己思考了一段时间,搜索业务从诞生以来到当时其实没什么变化。

总的来讲就是一个搜索框,输入一个词看到结果,搜索结果呈现之前有很多很复杂的逻辑和算法。但是这个业务已经到了除非发生革命性变化,否则用户不会有太多感知的地步。我觉得自己的投入和用户感受到的价值不成正比,于是我开始关注外界的机会。

加入有赞是个偶然,2012 年年底我看白鸦的微博在上招人,到 2013 年初还在招人,我就在微博上联系了一下他,最后大家约个时间见面,聊了两三个小时,感觉挺靠谱的,其实当时已经决定加入了。保守起见,我回去想了几天,就主动提出来要加入。当时只是觉得团队挺靠谱,事情也值得做,然后主动给白鸦打了一个电话,告诉他我要加入,电话完就写了辞职信。

我记得当时他还没准备好给我的薪资,说商量好告诉我。晚上的时候,他告诉了给我的薪资数值,实际上这个薪资是我当时在阿里的一半都不到。只是我在联系他之前已经考虑到了这个问题,所以就算没有工资我也想去试一下,对于我而言做点自己认可的事情比任何其他额外因素都重要。

程序员到 CTO,如何快速成长?

从一个普通程序员,到 team leader,再到管理 300 多人的 CTO,管理上是如何做到快速提升与成长的?有无特别的经验可供分享?

有赞现在有超过 300 个工程师的研发团队,从一个工程师到一个 leader 的阶段是非常简单的,很多人都可以很快做到。leader 就是很多匹拉车的马中,走在最前面,带头做榜样和控制方向的那匹马。通常来讲,团队的成员不超过 20 个人时,整个管理成本很低,基本上不会有太多的管理动作。只要细心一些,人员招募到位,做事情的时候身先士卒,日子基本上都会很好过。

但是,当研发团队规模达到 100 多人的时候,leader 所起的作用就比较弱了,之前作为 leader 的各种本能的管理手段都失效了。当团队大到无法感知你的能量,这个时候就要考虑更多不一样的策略了,比如把团队分层。当然这个也取决于在团队治理的时候选择什么样的策略。

有赞选择了高度扁平化的策略。所以在团队规模达到 100 人的时候我们都没有正式的 manager 角色,我们只是把团队按照角色和职责做一些简单的划分,确认核心人员能够在各个战线上充当 leader,能够身先士卒,勇于担当,自我激励往前走。如果你的团队有 20 个这样的人,基本上 100 人的团队还是不用太多的管理手段介入。

当团队规模超过 200 人,这个时候就真的需要真正的 manager 了,因为这个时候会遇到很多噪音,需要大量的时间纠偏。团队可能有一半人甚至更多对最高技术管理者根本不了解,甚至没有那么强的信任感,因为大家每天接触的时间实在太有限。大部分人可能一年说不上几句话,让人家信任你是不太可能的,所以我们在这个节点上正式组建了 team leader 的团队。我只负责 team leader 团队和少数需要攻坚的直属团队。

新晋的 leader 至少你是充分信任的。虽然他们肯定也会犯很多的错,而且绝大部分还是我之前曾经犯过的错误。但是人就是这样,你和他讲的时候他不以为然,非要自己犯一次才会觉得你说的是对的。不过,在我看来这就是一种成本,从公司层面看是一种必须付出的成本。即使你招的是一个成熟的管理者,也要适应你的公司独特的需要,他也是要做很多调频和“犯错”。

组建管理团队我觉得重要的地方是在于信任和放权,道理大家都懂,但绝大多数从底层成长起来的技术负责人都做不到。我刚开始也不适应,因为事情不是你亲自分配下去的,执行的人是谁也不清楚,每件事情都想要问一下结果,总会担心事情发展是不是会走偏,是不是有隐患,等等。这确实需要一段时间的适应和练习。

核心团队的组建与管理

核心团队是如何组建的?日常是如何进行团队管理的?

我们经过三年的时间才逐步沉淀了一些有做 team leader 潜力的人,定向挖过来的也有,非常少。

日常我过问的比较少,一般只参与少数重点项目,少数重点的人转正或者谈话我一般会参加。对于团队,我还是把很多时间放在找人和招人上,特别是重要岗位的人。2016 年上半年,我 70% 以上时间都是在招聘,下半年各个 leader 逐渐成熟了,大家招人的理念和评判的标准逐渐一致之后,日常招聘的工作也都放出去了。

我只负责一些重要岗位重要人员的面试,这个时候我可以把更多的时间投入到每个团队我熟悉的人或者重点人员的沟通上,一有时间就聊几句。在沟通过程中,不但能发现很多存在的问题,同时也维持了和最前线同学的感情。

一个优秀的工程师团队非常重要,如何组建这样的团队,有赞是如何做到的?鼓励做什么,不鼓励做什么?

组建任何一个优秀团队都是不容易的,这是一个漫长的寂寞的过程。大部分公司在寂寞的过程里放松了对于候选人的要求,很多时候会把完成业务看的更重要。有赞在过去四年里坚持的了该坚持的东西,甚至在早期使用了非常极端的手段。

比如,把试用期的薪资做的非常低,故意让周六上班。实际上,在转正的时候我们会加很高的比例,周六也大多以分享和团建活动为主,并非是真的在工。这样就能把一些对于短期利益非常非常看重的人过滤掉,因为一开始我们核心团队的共识就是我们要做一个事业,并非短期的生意。公司可以挂了,事情可以做不成,但绝不能违背内心的追求。

不过,这个策略实际上也拒绝了一些真的不错的人,他们觉得自己的价值被低估了,不愿意加入团队。我们也怀疑过这个策略是不是对的,不过最终还是坚持了。任何规则都是有利有弊,我们需要的是更齐心的团队,所谓人心齐,泰山移。后面随着有赞业务和团队的规模化,步入到一个新阶段后,我们也及时调整了我们的策略。

有赞招人的三个最核心的特质:聪明、要性、皮实,缺一不可,有赞现在 600 人团队,技术超过 300 人,实际上全职的 manager 角色在公司没有超过 10 个人,我也算是其中的一个。高度扁平化的组织要求大家更多的是自我驱动,自我运转,对于信息的传递效率要求非常的高,对于噪音的忍耐限度很低。

我们非常鼓励大家相互补位,有问题及时寻找资源,及时获取有效的信息,鼓励大家面对面把事情说清楚,所以我们专门给所有人配备笔记本。我们杜绝一切办公室政治,杜绝人前一套人后一套,也杜绝没事捕风捉影,造谣生事。

技术、管理、领导力的权衡

技术能力、管理能力、领导力哪个更重要?如何权衡?

很难讲哪个更重要,我也希望我是个完美的人,技术能力、管理能力、领导力都很强,可惜我做不到。我觉得正确的认识自己是很重要的技能,这个是我经历了很多事情之后开始想明白的。如果像有赞这种成长方式,团队从开始几个人然后发展到上百人,我觉得前期技术能力是非常重要的。

因为早期业务发展非常迅速,根本没有时间做架构重构,对于技术管理者而言,做最有利的架构才能驱动公司的业务。毕竟一个团队可能除了技术管理者之外大家能力都很平均,如果连技术管理者也不懂或者能力很一般,那基本上业务会受损很大。评判这个的标准是 CEO 对于技术团队的关注次数乘以批评数量。

管理能力和领导力,我觉得领导力可能更重要,没有领导力基本上连核心管理层都建不起来或者管理不好。管理能力差可以通过核心管理层帮助你去做很多事情,甚至 HRBP 也可以帮助做很多事情。这个也和我的经历有关,我就是典型的管理能力不怎么样的人,全靠我们优秀的 Team Leader 团队。

进阶管理后,遇坑怎么填?

进入有赞后,管理或者技术上遇到过哪些特别的坑?最后是怎么解决的?

管理上没什么好说的,就是要正确认识自己的管理能力,扬长避短,摆正自己的角色和位置。不该说的要坚决忍住,该说的要仔细想想是不是应该 leader 去说,给他们解决问题和定位角色的机会。

技术上有赞走过的路和大多数从小到大的创业公司差不多,都是前期专注于解决业务问题,最后架构问题在某个时间点集中爆发,导致很多的不稳定。这一点不管是阿里也好,京东也罢,还是最近交流的一些其他公司,基本上都是一样的,只是大家问题的严重程度和解决问题的速度不一样。有赞的解决方法和大家也没什么太大区别,就是组建一流底层核心架构和核心运维团队,这个团队必须得好,不然解决问题的速度非常非常慢,每天都可能宕机,会严重影响公司业务及效益。

初创公司做大后,内心有无膨胀与彷徨?

作为公司的创始人及 CTO,当看到公司规模做来越大,发展越来越好,内心有没有膨胀过、彷徨过?内心想法是?

我是一个相对保守和冷静的人,以前看过很多关于死亡和哲学的书,所以从来没有膨胀过,反而会经常思考更多的危机和问题。不过,这个也有不好的地方,就是很少表扬团队,因为我看到的都是问题和危机。

彷徨倒是有过一段时间,可能差不多有三四个月。我从未想过我有一天要带几百人的团队或者将来要带上千人甚至更多人的团队,从我在大学里决定开始玩编程的时候,我的理想就是做一个优秀的架构师,绝大部分问题能在我这里能得到解决。我希望我带领的是一个不超过 10 个人的非常精英的架构师团队。

我自认为自己不是一个很好的管理者,一个优秀的管理者要去触及人性的各个方面,而这个是我之前觉得我干不了的事情。我退缩过,但是最后还是得站出来,职责所在,责任所在,我的角色必须去承担这样的事情,遇到的困难和痛苦都必须我自己解决和承受。想明白这些事情之后就突然觉得释放了,那就重新给自己一个新的定位和目标,去打造中国最好的技术团队。也许没有几个人像我这样幸运,有这样的机会,在创业中杀出一条路。所以,我很知足。

创业维艰,最大收获是什么?

好像很难讲具体的收获是什么,将心比心吧。看很多事情的时候变得更多面了。现在看以前的自己,就是个愤青,不过现在也会喷。比如前几天的大雾霾,但是喷之前大多先做很多的细致研究,从数据上,各种观点上,还有从很多其他方面查漏补缺,最终再形成一个结论。

除此之外,可能最大的收获就是见识了很多没有见识过的东西,认识了很多跟自己趣味相投的人,感觉自己的人生变得更加丰满更加真实了。还有,以前我是一个不怎么说话的人,现在能够和三五个人坐在酒吧里就一个话题聊十几个小时。

还有很多很多的变化,我也不知道哪个是最大的收获,创业对我来讲就是完成一件我想完成的事情,就是一个经历,无所谓好坏。我只是选择了这样的生活方式,和很多人选择了朝九晚五并没有什么大的区别。不同的人有不同的生活方式,但每种方式遗憾和快乐都会并存,想清楚什么是自己想要的就好。

InfoQ:非常感谢崔玉松先生,期待您在 2017 年 4 月 QCon 大会上的“工程团队建设”专题中的分享!


感谢 Ryan 对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2017-01-16 18:006158

评论

发布
暂无评论
发现更多内容

华为全球技术服务引领行业数智创新,共赢未来

阿里Redis最全面试全攻略,读完这个就可以和阿里面试官好好聊聊

Java 程序员 后端

鸿蒙轻内核源码分析:虚拟内存

华为云开发者联盟

鸿蒙 内存 虚拟内存 OpenHarmony 轻内核

阿里一面,给了几条SQL,问需要执行几次树搜索操作?

Java 程序员 后端

用JavaScript访问SAP云平台上的服务遇到跨域问题该怎么办

Jerry Wang

JavaScript SAP 11月日更 SAP微信集成

阿里P6程序员的Java之路-或许起点不高,但我从未停止我的脚步

Java 程序员 后端

阿里P8大佬终于把自己珍藏多年581页JavaJDK9学习笔记分享出来了

Java 程序员 后端

阿里P8架构师汇总了史上101个最牛逼的Java技术点

Java 程序员 后端

阿里三面:CAP和BASE理论了解么?可以结合实际案例说下?

Java 程序员 后端

阿里又一个“逆天”容器框架!这本Kubernetes进阶手册简直太全了

Java 程序员 后端

阿里P8大牛整理的300页图解网络知识+计算机底层操作系统

Java 程序员 后端

阿里P8大牛透出,入职阿里必备12套Java面试题,适合从校招到社招

Java 程序员 后端

技术为本,中科柏诚致力于打造高效供应链金融平台

联营汇聚

阿里P8直接甩我一份Java笔记、面试宝典,当我看到目录的一瞬间,简直怀疑人生!

Java 程序员 后端

阿里P8面试官梳理的2020年999道大厂高频Java面试题(附答案)

Java 程序员 后端

阿里二面被问16道 volatile 问题,玩命补充jvm、多线程、高并发

Java 程序员 后端

一周信创舆情观察(11.1~11.7)

统小信uos

阿里五面(4轮技术+HR)成功逆袭,面经分享

Java 程序员 后端

阿里内部绝密Java面试笔记(珠峰版),冒着被开的风险免费分享

Java 程序员 后端

阿里P7告诉你SpringBoot如何防止重复提交?

Java 程序员 后端

阿里P8十年摸爬滚打,告诉你上古程序猿为何反对使用Redis?

Java 程序员 后端

安装企业级的dokuwiki文档系统

小鲍侃java

11月日更

使用Eclipse连接SAP云平台上的HANA数据库实例

Jerry Wang

数据库 Cloud SAP 11月日更

阿里亿级长连网关的云原生演进之路

Java 程序员 后端

阿里-美团-字节面试官必问的Mysql锁机制,你真的明白吗

Java 程序员 后端

阿里2020首发一百多道Java高级岗面试题(含答案)

Java 程序员 后端

阿里P8级大神经验分享,怎样成为一个优秀的架构师?(1)

Java 程序员 后端

阿里一面就凉了:MySQL+多线程+Redis+算法

Java 程序员 后端

阿里三面面试题:分布式服务注册中心该如何选型?我快哭了

Java 程序员 后端

阿里Java架构师春招面试高频600题:集合+JVM+Redis+并发

Java 程序员 后端

阿里内部疯传的分布式架构手册,轻松吊打小日子过的不错的面试官

Java 程序员 后端

  • 扫码添加小助手
    领取最新资料包
从普通程序员到三百人技术团队CTO,技术人成长的易与不易_语言 & 开发_朱昊冰_InfoQ精选文章