张雪峰对话_07_06_拆解CTOCTO的岗位职责
雪峰老师您好,今天想聊一聊你对CTO岗位职责的理解。
我特别好奇,从你的视角来看,CTO的职责是怎么样的呀?不同阶段CTO的职责都不一样啊,这个要注意,经常也会有其他公司的技术同学来问我这问题,我说我只能和你分享我的经验啊,具体你的场景是怎么样的啊,等你来判断。
几年前info q采访我啊,我当时说了五个点,那分别是找到合适人才,组建合理团队,稳定交付产品,极致运营产品和激发团队。
现在我想了想啊,还是有一些认知变化吧。
Cto本身有一些共性的,我先不讲了啊,哪怕三个人的公司啊,也要考虑一些技术前瞻选型、搭建团队等等啊,这些都是需要的。
不可能说招一个CTO啊,但是他不搭团队啊,那就不应该叫CTO了,应该叫全站工程师。
这些前提之下呢,我认为CTO的职责啊主要取决于业务业务的成长,包括业务规模啊,也包括它不同的边界方向,还有其他一些杂七杂八的事情啊,CTU都要看。
或者我从三个阶段来讲啊,第一个阶段啊,以我自己的经历感觉,如果公司就是线性增长的话,那一个成熟的CTO,他的职责应该没有大的变化。
比如说我们从一百万单啊单量增长到五百万啊,一千万那一个成熟的CTO,他的职责应该没有大的变化。
什么是线性增长呢?我解释一下啊,有两种,一种是规模化啊,一种是你做的业务差不多,只是尝试性的延伸啊,比如抖音现在做了无数尝试,上面小业务很多,但抖音啊一直没变。
这个我认为啊也不会有技术层面的大变化。
那商业层面呢他可能要去思考,比如做抖音教育啊和做飞书,那可能是不一样的啊,所以这还取决于你的业务。
第二个阶段啊,就是另外一种情况,你要做的是一个全新的创新的,甚至大家都没做过的东西,或者说是一个你自己也吃不准的业务。
那这个阶段啊,我认为CTO的职责啊可能会有一些变化啊,重点啊就不在技术选型那些东西了。
而是你要为三年后考虑考虑一个新业务的发展。
这两个阶段的区别是啊,前一个是有迹可循的,但第二个阶段就是无迹可循的。
到了第三阶段啊,就是CT变CEO啊,因为CTO下一步就是CEO,很少有CTO去做其他决策。
创业不算啊,所以我只讲两个阶段啊,我没经历过第三个阶段,不好讲。
第二阶段呢,我以王坚博士做阿里云为例啊,这件事是对他产生挑战的,因为他要说服马云,同时马云也得相信他做阿里云,对他来说就是一个全新的职责。
阿里到今天为止啊,给本地生活啊给的时间还是稍微长一点,给了超过三年时间。
剩下可能只有对阿里云啊是给了超过一年时间去做探索。
以前我记得的或者我知道的啊,基本业务一年没达标的话,那要么换人,要么砍业务,砍业务啊,可能是有时候为了面子再撑一撑,但人是一定要换掉的。
不管你是什么级别,到合伙人也要换掉的。
所以阿里经常组织架构调整多岗轮换之类的啊,就是这个原因,那就是换人吧。
因为阿里有这个底气可以去试错啊,是试人的错,不是试业务的错。
所以对于王坚博士来说,这是很罕见的啊,这对他的考验是第一,他自己要坚信云计算一定是未来啊,这时候考验CTO的眼光绝对不是什么技术选型这种。
那大家说CTO还有一个词嘛,叫技术战略啊,我认为是跟业务相关,你是要决定公司生死的。
你现在是o那所有的o都是决定公司生死存亡的,否则你就是一个执行者。
我认为我在这一点上啊只做到了一部分啊,没有完全达到我所说的这个层面。
我理解的技术战略啊,就是技术跟业务相结合的。
与云计算表面是一个技术,其实内核是个业务,因为有商业价值。
那这个不是大家说的那种纯纯技术战略。
比如说选一一三层架架啊,还是微微服务,选一个放置各种设备都能用的一套代码啊,这样的技术战略还是比较窄,纯粹的技术商业价值有限啊,最多它的价值是是节流,节省成本。
但它不会开源,我说的商业价值啊一定是开源,要能给公司啊带来商业上的收益。
包括像饿了么这么烧钱的公司,我们一直也对节流不敏感啊。
如果一家公司要对节流敏感,要么就是出了问题啊,要么就是他已经很稳定的啊,要做一些精细化或者人员的裁汰。
我前面说的总结一下啊,就是第一阶段是大家普遍认为啊CTO要做技术,战略团队组织,包括把团队的热情啊给激发出来啊,技术啊按时按质量交付,保证稳定性。
第二阶段呢你要思考几年后,这个技术怎么快速的去帮业务实现商业化,去突破啊,技术啊,要去坚定的相信这个业务,或者说支持这个业务做好。
到了第三个阶段呢,就是CTO变成CEO.嗯,那如果从从业视角来看,比如说某个人他要去应聘某个公司的CTO岗位,那要往他身上去安几个职责,比如说三个或者是四个职责之类,可以这样分嘛。
就像刚才你其实也有说过呃,由对组织的建设,有文化的建设之类的。
嗯,这个要看公司那时候的瓶颈啊,不同阶段和不同公司啊,找你去做CTO的瓶颈啊,可能不一样的。
饿了么当时团队啊更需要一个mental啊,还有那时候老是宕机嘛,要你去解决问题。
那当然不是每个人都要解决这么多事情的,可能有的公司就是技术影响力不够啊,想找个人装个门面啊,或者要上市了,那找个CTO啊,这是不同的几种阶段。
假设啊抛开这些不同阶段的考虑,那我把职责不分优先级的列一下。
啊,第一个职责呢是建设组织啊,甭管三个人还是三十个人,你一定要去build.这个build呢可能是rebuild啊,也可能是merge,有可能是水乳交融啊,这个是建立组织的层面啊,这里当然包括人才的吸引啊,因为组织涵盖人才,我认为饿了么已经接近水乳交融,百度外卖除外啊,因为在我离开的时候和百度外卖还没有完全水乳交融。
我指的是原来饿了么老的团队啊,和我进去之后的团队,这个水乳交融的状态。
第二个职责呢是做所谓的技术战略啊,说的细一点呢叫做技术选型。
比如大到云计算啊,这样惊天动地的抉择,小到语言啊你都要做决定,其实语言也不小啊,但我假设是从CEO的视角出发来看技术团队的各种选择的。
啊,比如语言,其实对CEO来说是很不敏感啊,或者说很难理解的。
但做异地多活这件事啊,对CEO是敏感的。
因为要花大钱嘛,要停三个月业务。
所以目前啊我认为可以用一个方法来看技术战略的大小价值。
那就是站在CEO的角度去看CTO应该要怎么做建组织和做技术战略啊,这两个职责可能最终以饿了么为例啊,在第一阶段我要解决当时团队头疼的组织问题。
另外呢就是解决稳定性的问题。
当然这其实只是技术层面的一小块任务了。
而我总结啊要解决跟纯技术相关的那主要就是几件事情,安全稳定性、能可扩展、可管理。
那关于可管理啊,说人话呢,就是无论代码层面,还是产品层面,要让你的接班人读得懂玩得转。
你这个系统啊就是可管理的,而不是说动一动啊,就要靠某一个人某一个英雄去搞定啊,而且是可以传承的。
另外呢大家提到CTO的职责啊,肯定要包括稳定性啊,因为稳定性太突出了,尤其对规模化来说啊,稳定性可能超过了安全性。
但我个人认为安全性是超过稳定性的。
在饿了么以前没有太多安全性方面的考量。
我接到这个任务啊,是因为要解决稳定性的问题。
但我进去之后啊,其实安全方面是花了我同等的心血,这些东西是常规的本质的工作。
我和团队经常说一句话,没有安全性,你连宕期的机会都没有。
另外啊关于组织也涉及到一堆事情啊,我刚没展开。
比如说要提升团队的活力啊,或者叫激情。
那么让他们能够喜欢自己的这个岗位,包括喜欢你的角色啊,喜欢你做的事业。
那这个事啊还看两个层面,你是喜欢这个过程还是喜欢结果啊?我个人更倾向于喜欢过程。
因为你只有热爱了这个事情之后,你才能大概率的得到一个好的结果。
嗯,所以总结一下,就是一个是组织,一个是技术战略。
对,其实就是技术的本质和组织的本质啊,你要做好,因为你是CTO嘛,这三个字母拆开来看t就相当于是在技术层面啊,不是说你写代码最强啊,至少技术视野是没问题的。
啊,你要做自己做过这些东西,或者至少探索过这个t你一定要有c就是组织层面啊,你是技术组织里最重要的一号位,那相当于出了事你要直接担责的,你要去更多的激发人。
但也不是说每个技术方面或者领域都非常过硬,啊,必须最强。
但至少啊你自己不能不懂,不能太外行。
那回到本质呢就是c和t这两块o其实是CTO的第二阶段公司的命运。
公司的新业务是跟你呃休戚相关的,你并不是说只是执行,但o比较难。
O基本就是公司的决策层。
那我认为所有的o啊至少在几个因素当中啊,它的权重要做到不能忽略不计那种。
换句话说,你的团队和结果是要在公司的财务报表里面能够体现,或者说影响公司的重大决策的。
啊,有很多团队和结果是根本连上财务报表后,影响公司重大决策的资格都没有。
嗯,你刚刚还说到要让团队保证激情,喜欢自己做的事儿,那你怎么能保证大家都喜欢过程,或者说结果呢?我刚说更倾向于让大家享受过程吧,前提是你把它安在合适的岗位啊不满足的时候呢,只能去调配组织架构调整。
只是最后一招啊,是组织临近腐化甚至癌变的被迫手段啊,能不组织架构调整了就不调整啊,当然也不可能人人都满意了啊。
以前跟团队说啊,第一你要尽可能喜欢你做的事啊,当喜欢这件事啊,你来找我啊,真的是这么说的。
我还跟大家说啊,如果你感觉在饿了么做技术和在其他公司做技术没啥大差别啊,哪怕业务相似度高达百分之九十以上的美团外卖,那你真要考虑换个公司啊,当然了也可能是我和你的leader做的不到位。
嗯,我很好奇,在CTO的所有工作中,你觉得什么事情是最耗费你的时间和精力的协调啊?其实最耗费时间的可能是开会啊,但是耗费精力耗费脑力或者最让我头疼的还是协调是什么样的协调工作。
我说的协调可能包括大家发牢骚啊,有些是个人的原因,有些是团队之间的矛盾,包括还有技术跟业务团队之间的协调啊,当然和业务团队有矛盾的,我是可以顶在前面的。
但是有时候啊是业务团队去投诉,跟他对口的那个技术团队,那这种情况我就很难办了。
有一次业务团队说啊,雪峰啊,我这边缺人啊,你看你们中间线团队已经很稳定了,异地多活都搞了,还要那么多人干嘛?后来其实我也有点被他们绑架了,我就强行跟蓝金刚说啊,我没法完全照顾你们的感受啊,你们要出人去做业务。
后来警方被我逼着去调人啊,剑方也是比较强势啊,但是他不会不征求意见啊,尤其是涉及到调人这种事,征求意见的时候,大家都不愿意去做业务。
后来勉勉强强是有个团队去做业务了,最后证明啊这次试验不成功,业务部门也不满意,被征掉的同学更不满意啊。
他说我这辈子绝对不再做业务了,不管离不离职,因为他们有技术洁癖嘛,但业务那边催的急,他想做的好很难的,就觉得都是些什么狗屁需求,追求代码洁癖有错吗?啊,质量不过关,宁可推迟上线啊啊,反正就是各种不爽。
这种抱怨如果有失偏颇了,你会怎么处理呢?我更倾向于相信他。
但是他说的这句话,如果让做业务的同学听到别人可能会觉得很不舒服。
站在业务的角度这样想是对的啊,但是我很难去强扭,强迫他接受做业务更有价值。
当然业务有同等价值啊,做业务很有意思,只是每个人想法不同罢了。
中心建团队建立的最扎实的地基,但是他们最讨厌装修,尤其讨厌什么呢?装修也就算了,你让我做中国式的装修啊,每家都要推翻前面的房东,这个他绝对受不了。
如果让他统一样式啊,精装像美国那种房子,他也能装啊,因为一行代码就可以搞定。
但是他天天搞这种又不是完全重复啊。
但是思想呢又是重复的东西,他就觉得很无聊啊,就感觉这是对他技术的侮辱。
我面对的是这种场景啊,所以我也不抢你我也不能说因为他做这个不成功啊,就惩罚他。
因为他毕竟也是勉勉强强来做支援,他也没有说不负责任,还是把这事情干了的,只是说这辈子啊再也不做业务了。
除非面临的问题啊,是公司的业务技术团队全部离职啊,必须你中间件团队冲上去的啊,那没什么悬念的,你不做就走人啊。
但没到这个程度啊,因为组织大了还是有一定的弹性的。
我还是尽可能的尊重。
个人选择在技术跟业务中间,我可以理解你其实是一个缓冲区嘛,因为一般的业务它总是会要求快,对吧?对,但我也不是缓冲区啊,我就是顶包。
这可能是我自认稍微帮兄弟们搬起来的一个点啊,包括出大的部长让我自己扛啊,或者技术跟业务有矛盾的时候,那当然我自己团队内部不存在顶不顶包的问题啊,我肯定要协调他们啊,不可能所有的事情都我来担啊,也没必要。
总之老大自己担子啊也是有问题的,你不能走到另一个极端,对吧?什么都老大担,那小弟就会觉得反正犯错也没有成本嘛,就更不注意饿了么。
早年这样是ok的啊,那时候大家比较单纯,而且大家责任心非常强。
但是当你团队扩大规模之后啊,一个是平均的素质下降,二是责任心也会下降啊,这是正常的啊,这是人的本性。
因为地盘就这么多嘛,一千八百人做那么多模块,那肯定是利益分配不均的。
其实程序员啊就关心我做的东西啊,能不能啊跟同学去吹牛。
今天你做了一个不成功的东西,和一个天天可以跟同学啊或老婆吹牛啊,说这功能是我开发的这两个事情。
对于人的成就感,肯定是不一样的我,不可能让所有人都去做那种天天可以跟同学跟老婆吹牛的事情,那总要有人去地里浇水的,去收割的,毕竟少嘛。
好的,对CTU的职责解读。
我们今天就先聊到这里,感谢老师的回答,也感谢你的收听。
如果你觉得这篇文章对你有帮助的话,欢迎把它分享给更多的朋友,我们下次再见。