first commit

This commit is contained in:
张乾
2024-10-16 11:00:45 +08:00
parent b67b8755e1
commit 303bec0039
343 changed files with 56873 additions and 0 deletions

View File

@ -0,0 +1,237 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
01 小厂项目:做程序员不难,难的是做职业程序员
你好,我是叶芊。-
 -
欢迎来到访谈现场,今天我们会从毕玄进阿里之前的经历聊起,他的这段经历少有人知道,却格外有趣,又格外现实。-
 -
2002年从江西南昌大学毕业的他在大学因为兴趣从学盲打到玩组机到写网站早已练成了网站编程老手但毕竟是生物学毕业第一份工作他是怎么找的能顺利转成程序员吗-
 -
我们正式开始对谈。
 
极客时间:你大学生物系毕业之后就想转去做程序员,虽然背景是非计算机专业的,但大学做了很多商业性的项目,这种条件你也还是非专业吗?你第一份工作怎么找的?
毕玄:是非专业。我当时不想在江西呆,觉得还是应该去大城市,就想去北上广深,第一选择是北京。但北京真的太难了。
极客时间:那会在北京你是怎么选择目标企业的?
毕玄那个时候哪能选择目标企业。我大学的背景又不好尽管南昌大学号称是211但可能就江西有名声在外面大家基本都没听过北京就更不用说了。另外我学的还是生物系要找的还是计算机系的工作哇这个太难了。
我在北京逛了一圈,那个时候还必须去人才市场。我去人才市场逛了一圈就知道北京肯定没戏,所以觉得我还是不要在北京了,北京太难了,以后可以去,现在就算了。
后来我去了深圳,因为我有个朋友认识某家公司的人,就推荐了一下,我被推过去之后,别人觉得我不是学计算机的,但是我从大二开始就在外面的公司写商业的网站,有很多经历,这是拿出来很硬的,就跟现在找工作一样,至少我的项目比较实际,所以他们觉得也可以,就说那你来试试吧。
这算是彻底转变了,因为你想你的第一份工作是计算机,就进圈子了,后面其实没有人会关注你大学学的什么,已经无所谓了,也不会因为大学不好就刷掉你,不会,他更关注你的工作经历。但第一份确实挺难的我觉得,尤其跨专业,非常难。
极客时间:深圳那个公司是什么业务?你是做什么的?
毕玄:那个时候有一家做手机的上市公司叫科健,我们是科健旗下专门做政府软件的子公司,都属于科健集团,背景说起来很挺好的,但这家公司知道的人很少。
为什么说跨专业难,我招进去的时候其实都不是程序员,我是负责做实施的,公司做了一套软件卖给了政府以后,要有人去现场安装、教人用啊各种,现在叫交付,以前叫实施。
我刚进去的时候他们其实让我干的这个,原因是我真的写不了程序。虽然我在大学确实写过一些网站,但是完全不一样,第一次进那家公司,到现在我都印象非常深刻。
当时项目组正在做佛山市政府的OA系统去了一看所有的人电脑上打开的因为他们不是写ASP的他们做OA都用的VBVisual BasicVB我完全不懂当时我就看到一帮人打开VB在那“哇哇哇”写代码写得可熟练了我真的惊呆了就很仰慕。
但我觉得这活我是真干不了。因为开始我也不想做实施我想写代码后来我去看了一眼之后觉得确实自己干不了这个我还是先做实施。然后就被派去佛山的一些政府部门帮他们装上OA解答一些问题陪他们聊天。当时政府部门虽然能讲普通话但习惯讲粤语我跟他们混了半年听粤语的水平就是那个时候训练出来的虽然我不能说听没有什么问题。
 
 
极客时间:总搞实施,个人发展应该比较受限,那你后来是怎么开始写程序的?
毕玄:半年后,当时我直属的老板,他决定给全部新人一次机会,我记得,印象很深刻。
当时我们有些人对写程序很感兴趣加上又都跟项目组的人住一起所以做实施的时候我们会跟人家学一下VB怎么用怎么写程序、搭系统等等。
然后经理他可能也觉得需要更多人写程序,因为说白了实施的人很容易找,但写程序的人有点难,尤其写软件相对还是有要求。后来半年左右,他想看看能不能从这批做实施的新人里面,挑几个人来写代码,就给我们出了一道题。那道题是要在他们现有的程序里改一个功能,限定所有人三天改完,并且交付出来。
刚好在第三天的时候,我终于找到了要改哪里,其实就一行,那个需求只用改一行代码,关键它可能有上万行代码,你要从这上万行代码里找出到底要改哪一行,但因为不是他们(写的人),我们不懂,也不大熟。反正刚好在第三天,我找到了然后改好了这行代码,我的角色从此就变了,变成了一个专职程序员了。
极客时间:这个直属老板你觉得,当时对你是什么样的影响?
毕玄:这就是机会问题,说白了没有这个机会,你其实走不进这个行当的。非专业的人最大的挑战,一你的学校不够好,二你是非专业的,真的想进入一个行当,你的门槛会比别人高很多。
如果你是个名校生,还是学计算机的,程序员的工作随便找,还肯定是大公司,这就像很多人说的我工作很多年以后,才有资格跟你一起坐在那喝咖啡,但人一起步就是那样,我觉得这是事实,必须得承认。所以我跟他说还好当年有了这一次机会,让我正式开始做这个行当。
 
极客时间:这次通过了考验,你也抓住了机会,成专职程序员之后有比较顺利吗?慢慢通过做项目提升自己的技术水平?
毕玄:那没有。
我的主职变成写代码之后,就跟着他们做佛山的项目,项目做完一年以后就调回深圳,开始做整个深圳市的电子公文交换系统。
比如说我这个政府要和另外一个政府部门联合办公就要发红头文件之前是纸质的。但广东的电子化非常早深圳是2003年开始建电子公文交换系统各家就可以直接发电子公文我们公司就承担了深圳市的那个项目。但那个项目我参与的很少。
极客时间:为什么没有参与进去?应该是个大项目。
毕玄因为那个项目主力成员是写Java的就这原因。
但我的背景对吧以前学校做网站用的ASP到佛山之后跟着项目学会了VB、Delphi因为我们有些是用Delphi写的有些用VB写的这两个我慢慢也比较熟。然后深圳比较缺人嘛把我调回深圳一看Java我又傻眼了我说这啥好不容易VB和Delphi我已经用得特别熟了因为真的也特别好用然后一切到Java我就觉得这玩意简直烂到极致。
因为Java那个时候的IDE说实话跟VB、Delphi比即使到今天这俩还是神器当时Java哇塞连IDE都找不到Eclipse是后来的事情最早Java我们都用记事本写的哇那效率简直低到离谱后来才有了一个简单的IDE去学Java。
所以我就从那个时候开始学习Java学这玩意到底该怎么弄因为我确实外行不懂所以在深圳那个项目里我就没进入多少公司有非常主力的Java成员去负责然后那个项目做成了。其实深圳这段经历让我很难忘。
极客时间:难忘的是什么,因为工作需求自己紧张学习新语言?还是说当时自己不太做的上事,心态上可能比较挫败?
毕玄:因为不像我在佛山,说实话佛山一年我已经混的很熟了,而且已经是那个团队里比较主力的程序员,像公司在顺德这些地方的项目就是我自己去搞的,我一个人,面对需求方,直接改代码,然后交付给他们,可以全部自己干完,所以在佛山过得挺爽的。
结果调回深圳后,直接就啥也干不了,全部是别人干,你是一个啥也不懂的人,所以挺不爽的,那段时间本来我想走的,找另外的。但是发现也很难,那个时候我找到华为。
极客时间:你去面试了?结果怎么样?
毕玄:那肯定,那个时候深圳最好的是华为,互联网公司像腾讯我们都看不上的,因为我们这种人在大学多数是做过网站的,会觉得不就做一个网站,能有多难,我几天就可以做一个,腾讯这样的公司,在我们这都是玩烂了的,互联网公司?我们觉得那都是做不了软件的人才去的公司,做政府软件还是要求挺高的。后来我们都后悔了。
极客时间:没有早进去(笑)。
毕玄:因为我以前的公司就在现在腾讯深圳南山区总部的隔壁,那个时候,园区是没有互联网公司的,全部都是软件企业,至少在圈子里,大家会觉得软件企业的程序员肯定比互联网公司的程序员更厉害。
当然这是因为我们这群做软件的人,根本不懂互联网的人面临了什么问题,后来我们了解了之后,才知道,哇还是你们牛。
 
 
毕玄:当时本来我想如果能离开,就去深圳最好的公司华为,我去华为面试了一下,然后面试不上,那我还是继续在现在公司待着。
而且我在那家公司刚好有了一个新机会,因为深圳项目快收尾,我第一任老板他也从佛山回来了,他那个时候已经是软件部的副经理,回来以后被任命了一个新项目,中山市的网上审批系统,非常类似现在浙江做的“最多跑一次”。
极客时间:材料网上审批这么早,那个时候是几几年?
毕玄所以说广东非常领先那个时候是2004年当时中山市就决定做。你要去政府办的所有事情可以在网站上一次提交所有材料提交完了就到政府内部去流转流转完了之后你最后去现场把所有资料拿走就可以了几乎也只用跑一次。
当时我们公司中标了中山的这个项目,我之前的老板就跟我说,要么你别做深圳项目了,跟我做中山项目去。
极客时间:你有做过什么考虑吗?还是说很果断就直接过去了?
毕玄当然我们这么熟的人我当然跟他走。于是我就跟他去了中山这个项目在当时是非常大的纯软件项目我们中标的金额应该在1000多万。
但去的时候我们就3个人。
很多同事当时是不大想去的,因为我们老是做项目要到处跑,很漂泊,虽然我号称在深圳工作,但你看我在深圳的时间非常短,第一年根本没在深圳,我都在佛山。
所以就我们3个人要去做一个1000多万的纯软件项目而且我们都不知道是个什么东西什么都不懂去了以后就发现有很多问题。比如说我们当时面对了中山市的市长、市委书记和秘书长这是秘书长亲自牵头的一个重要项目但当时正逢换届做的挺不容易的。但也不是坏事所以后来我们也明白政府项目真的太难做了。
极客时间:这个项目可以具体聊聊吗,你当时负责什么?
毕玄:这个项目金额大,公司给的支持还是很够的,允许招更多的人,但因为我们仨去的最早是绝对主力。我老板本来就负责这种项目很多年了,人脉很广,所以他主要对外搞定各方,另外一个同事负责写更上面一点的东西,我负责写网上审批系统整个大的基础,那个时候我已经偏向写框架了,很类似现在很多公司做的低代码框架。
因为我们做的东西是这样中山市的项目要上线1000多个流程如果你写代码上线那做10年也做不完对不对所以你必须要让别人很容易直接把这个流程配出来这就需要在下面抽象一个东西。
极客时间:需求这么急,项目又很大,当时你们有考虑买个商用的自己改吗?
毕玄:最早我们当然也准备买商用的,后来觉得不大好用,所以决定自己写一套流程引擎、表单引擎等等所有东西,我就写这个。那个时候我还有一段神奇的闭关体验。
因为我们判断这套流程引擎和表单引擎对这个项目至关重要决定了这个项目到底能不能在2、3年收尾掉而不是说要很多程序员去堆最好的方案是一套框架加上大量的实施工程师、配置工程师。所以我们发现了这是核心。
然后我的老板就问我,多久能搞完?我说我一个人就行了,给我半个月。于是我就享有了整个项目组最高的待遇,我就圈了一间会议室,那个会议室就我一个人,闭关写了半个月代码,半个月后有了一套雏形,后来很多人就基于这个东西配流程上去。
极客时间:就你自己一个人半个月搞定了?
毕玄:对呀,我就在那里面,吃喝什么的都有人送过来,全无打扰的环境,过的很爽(笑),写完了之后,反正也基本能用,他们后来就边用边改,撑住了系统后来的整个实施过程。
 
 
极客时间:但是当时写的时候,没有遇到什么难点吗?毕竟这应该是你第一次做这么大的项目。
毕玄:其实还好,因为工程说实话没那么难,很多只是抽象的问题,写计算机程序其实是个逻辑过程。
极客时间:写代码是逻辑过程我大概能明白,怎么理解是工程?是抽象问题?
毕玄:就是数学。我现在特别理解写程序的人有两项技能特别重要。一是英语,这没办法,因为你看的大部分资料是英文,你写的代码也是英文;第二个是数学,写程序其实就是一个数学过程。
数学是一个什么过程呢?是我有一个问题要求解。程序也一样,程序是我有个问题,然后求解,所以程序的整个代码就是解问题,就像以前数学题我们写第一个字“解”之后的所有部分,那就是个逻辑。
对数学特别好的人来说数学题可能会变但他能从变化中找到一个规律抽象成一个函数变成一个公式核心问题是举一反三。为什么高斯特别牛从1加到100首先他找到了一个规律解答了1加到100等于多少但在这个基础上他还能把1加到N变成一个公式等于N+1*N/2。这就叫抽象能力他可以把一个问题抽象成一个公式然后这个公式可以运用在所有场景里。
其实写程序就是这个过程。不好的程序员是有一个问题就解了,解完了以后问题稍微变一下,这个代码就得重写;但写的好的是看到这个问题,我可以做一个抽象,之后不管上面怎么变,我可能只需要换换参数之类的,但代码是不用改的,就能完成所有需求。
极客时间:所以像你当时在那个项目里负责写框架,就会更需要抽象一些?
毕玄:对,我们写底层框架的说白了就是这个过程,底层框架为什么相对更难,是因为它对抽象能力的要求比上层代码的要求更高,上层是我面对一个需求,做到就可以。
所以做一个程序员不难做一个职业程序员其实很难。程序员就是我有一个需求然后翻译成代码而已嘛这个东西小朋友确实能干所以现在少儿编程很多。我就跟我家小朋友说你们学的那些东西只能是写着玩想拿这个当饭碗少儿编程学100年也不会变成职业程序员因为职业程序员学的东西在那个阶段你是根本体会不了的。
但是如果你数学很好,你写代码的逻辑性、抽象能力会非常好,其实后面自然能领会,因为你想,写代码我们就是写一个方法,方法是什么?方法不就是个函数,一个典型的数学函数。
当然也不一定就能成为,毕竟你后面还有很多挑战,但至少有一个基础在,离成为职业程序员更近。但数学不好的人,说实话我们觉得是不合适做程序员这一行的,因为你逻辑性不够,抽象能力不够,就导致你写的代码经常要改。
 
极客时间:最开始我们聊的时候提到非科班的程序员和科班程序员的区别,我记得你之前还特地写过一篇文章讲业余程序员和专业程序员的区别。这两种区别,是一样的吗?
毕玄:不是,我是非专业的系,但我应该是职业的,就像现在大家都觉得好像是个人都能写程序,这我不否认,每个人都能写程序没错,多数人只是把这个问题翻译成了代码而已。
但是这段代码要变成能稳定执行的商业性的代码这是职业程序员才能干的。说实话这我完全不相信任何人都能干所以我最讨厌说什么人人都是程序员太鄙视这个行当的专业度了其实每个行业都有专业度有人觉得到最后AI可以替代所有但那个真正的专业度我觉得还是有一定难度替代的。
所以做中山市项目那段时间写偏基础的东西,对我自己还是有锻炼的,没有碰到太大的困难,可能因为我的数学比较好。一直以来我只有两门好,一门是英语,一门是数学,语文和物理、化学都非常糟糕。
极客时间:根据你的理论,那你可能注定走上程序员这条路(笑),有一点好奇,你数学好,为什么物理没有那么好?
毕玄:我也很好奇。大家都认为数学好,物理一定好。我后来想因为物理是解释现实世界规律的,数学不是,数学其实是个工具,所以很多物理学家同时是数学学家。但物理我就很难理解,我的物理和化学都在及格线上徘徊,但数学就是在满分线上徘徊。
不过说实话我认为跟老师也有很大关系,因为后来我们在阿里听过一次北大前校长讲物理学,他是物理系出身的,讲完之后大家都觉得哇物理太有意思了,我说以前自己要是遇到这样的老师,物理至少应该不会那么差。
其实生物也一样的,最近我在看很多生物的东西,就觉得很有意思,一些非常知名的教授讲生物研究是要去解决人类的什么什么问题,你就会觉得,哇如果我真的能研究出这种问题,那在人类历史上,跟计算机系的人根本不是一个档次的。我就跟我家小朋友说,如果我以前看到的是这些,我应该不会去做计算机这行。
因为说实话我现在会觉得计算机只是个工程,你可以认为计算机是个工具,但对人类不会有根本性的变化。但生物、物理,可能会给人类带来非常巨大的改变,而且它有很多问题要解决,但计算机说实话对那些人类问题没有任何帮助,可能是个好工具可以帮我来让那些问题解决掉,但它只是个工具而已。
 
水友讨论区
今天的对谈就暂时结束了,针对毕玄大学毕业之后找工作的经历,我们林林总总聊了很多,不知道有没有引发你对他之后经历的兴趣。
虽然是生物系毕业,但大学四年他基本都在玩计算机做了很多商业项目,也能算一名准程序员了,即使这样,找第一份工作也非常难,哪怕找到了,想正式成为程序员也是抓住了稍纵即逝的机会。想想大佬起步居然也这么难,突然有点安慰了:)
“啥也干不了”的艰难开局后,让我印象最深刻的是聊编程、计算机和职业程序员的部分,毕玄说职业程序员是需要专业度的,但计算机只是个工程,是个工具。
不知道你最感兴趣的是什么,这里我列了几个话题,欢迎自由讨论:
“非专业的人最大的挑战,一学校不够好,二你是非专业的,真的想进入一个行当,门槛会比别人难很多,是个机会问题”,你的第一份工作是怎么找的?是非专业吗?
有人说人人都是程序员,毕玄说写计算机程序是个逻辑抽象过程,但职业程序员是需要专业度的,你怎么理解“职业程序员”?
毕玄现在觉得计算机只是个工程,是个工具,关于计算机在人类社会的作用,你的想法是什么呢?
如果你有其他更有发言欲的话题,欢迎交流,期待和你在留言区碰面。
下一讲我们接着毕玄在小厂做项目的波折经历聊,下讲见。
拓展阅读
1. 毕玄很早就开始写博客了,考古挖到了他工作三年写的复盘:程序人生(工作三年的回想)
2. 如果你对业余程序员和职业程序员的不同感兴趣,可以看毕玄后来写的一篇文章:从小朋友的一道数学题聊聊职业程序员

View File

@ -0,0 +1,200 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
02 小厂创业:做出一个产品,卖给所有人
你好,我是叶芊。-
 -
上一讲我们聊到毕玄艰难的非专业找工作经历,这个大学不怎么样的生物系青年是怎么毕业后成为一名程序员的,今天接着他在小厂做政府项目的经历聊。-
 -
因为剧情太过跌宕,忍不住简单剧透一点点,在好不容易接了个千万级的大项目之后,他又想跳槽了,这次连简历都没写居然跳槽成功,之后又开始了一段神奇的创业之旅,但创业一年后,他却表示:太没意思了,不如回去打工算了。-
 -
到底发生了什么?我们开始今天的对谈。
 
极客时间做了佛山、顺德这些地方熟悉了VB但是深圳项目又要从0开始学Java所以你本来想走结果峰回路转有了做中山1000万大项目的机会做完了之后呢
毕玄:中山做了两年多我还是想走了,因为我一直漂泊,很不爽。
我们公司的项目就是这样,除非做深圳项目就在深圳,其他地方的一定在外面。当时,我们公司在广东的电子政府领域比较有话语权,因为做了深圳、佛山、中山,除了广州,这基本就是广东经济最好的三大城市。所以公司当时更希望继续拓展广东的其他城市,那就意味着我八成继续在外面。
极客时间:你说的“拓展其他的”会有点重复做的意思吗?这样你的个人发展可能不是太好?
毕玄:会。一我觉得不想做项目,因为做项目太漂泊,二我觉得项目这个东西太不规模化了,我们每做一个项目都是重来。
尽管我们当时也希望像很多软件公司比如做了A政府做完以后沉淀成一个产品卖给B但是说实话我当年做过以后就知道这条路是走不通的绝对不可能今天也是这样。
因为说白了是不能复用A做了这个东西取得了一定的成绩B想的并不是拷贝这套他一定会改想要在这个基础上创造一个新的东西否则的话请问你的创新在哪所以现在做项目讲这个故事的人只能说应该还是做得太少。
极客时间这是做政府的那做公司的是不是也一样都是ToB的大思路
毕玄办公这种系统有点不同但如果是涉及它业务的也差不多。你卖给我A公司一个业务经营的软件如果跟卖给B一样请问我跟B怎么竞争我要你做的就是不一样。所以最后你就变成了一个大型交付公司。我觉得这是突破不了的不可能改变。
中国做很大的像东软,你想东软难道没想过这个问题,肯定想过对不对,大家谁也不傻,他们难道想一个项目一个项目做吗?肯定不想的,他们当年肯定想过怎么把这个东西变成一个产品,或者说至少变成相对标准化的,去另外一个可以很快交付掉的。
这类公司中国有非常多我相信他们一定探索过。因为他有这么多项目理论上大家会觉得以前为什么做不成是因为项目太少所以抽象不够如果有100个项目我一定能抽象出一个东西。
极客时间:但是这个说法,大家好像都在这么说,也都这么认为。
毕玄这基本不成立的后来最多做到OA这玩意可以标准化的卖但实施难度也很大。前期大家讲故事的时候说要不断做项目最后可以有个抽象但后面很难。
所以你看做这些软件企业有很多家,从我们当年到今天,这些公司很多都还存在,但说实话没有多少是发展非常好的,东软比较大,然后泛微,就这几家,东软那么多的人,你说他有收入吗,他当然有,但你说他有多赚钱、体量能做到多大,就没有。就他其实没有成为非常好的行业。
极客时间:这是结合你当年经历的总结,我们看现在这种类型的创业,你觉得还是这样吗?
毕玄:现在尤其很多技术人,出来创业先做政府项目,一开始这一点他们是完全没有搞明白的。我们做的多了就知道一上来,一定要先摸清楚项目需求到底是什么情况?为什么要做这个项目?
除了诉求,你还得搞清楚各方的利益关系。因为一般项目时间很长,你还有周期,但凡不是一两个月能交付完的,跨年了甚至半年以上,还会有人员变动,那你就相当于有另外一个人再过来接你这事,他俩如果目标不一致,重新来一遍,需求重新提。
极客时间:噢就是要想清楚做产品的出发点。所以像现在很多人会纠结,为什么我的产品这么好,但客户不用,是不是没太想清楚的一种表现?
毕玄:这就是诉求没搞清楚,因为客户的诉求可能跟你想的完全不一样,你是去解决他的问题,如果没有搞明白他的诉求,你瞎搞,客户反而很烦。
以前听别人聊说有些客户的需求会非常奇怪他对项目的效果没有任何诉求目的其实是想跟你联合做个PR他认为给你了比如1000万只是买个广告费而已反正投放一个广告也要这么多钱。我们听到这个逻辑都震惊了。
但是你如果再想一步就很明白了,因为有些企业的行业竞争非常激烈,他们会觉得如果能跟你合作一把,可以塑造成我是科技典范、先进企业,我上下游的其他企业就会这么认为,然后我的订单量就增加了。所以他们其实根本不在乎这个项目,因为他获得的订单远比这个数量要大很多。
那如果你是这个项目的PM是不是很爽因为客户对项目没有要求所以你正常流程做验收完就收到了钱。难道不应该感谢这种客户难道你们一定要做一个多牛的东西
所以乔布斯以前才说绝对不要做to B他只要做ToCToC反正就是自己说的算。
 
极客时间:好,我们聊回你的经历,当时你决定不做项目了,去面试了什么新公司新岗位吗?
毕玄:当时我最想找的是做产品,不是做产品经理,我想做一个写产品代码的。所以我的诉求就是找一家能做产品的公司,但是没有面试,也很神奇。
当时大概是2004年我想换工作开始找机会我2003年就写Blog了那个时候写博客最火我以前写了挺多的正好有一个人看了然后那个人是上海一家公司的软件部经理他看了之后觉得要不聊聊就这样我去了上海。
那家是上海电力集团下属的一家生产企业,理论上是专门给电力做软件的,但它有点特殊,它除了给电力做,还希望拓展到非电力的行业,所以希望做一个产品能够覆盖其他的行业,叫协同办公,类似钉钉。办公这个行当其实很多年了,因为办公是刚需。
极客时间:在办公领域,当年和现在只是解决方案不一样?
毕玄只是解决方案在不断地进化越来越好用了因为以前都是PC现在是移动。所以那家公司决定做这个产品就说让我去并且让我做整个产品的架构师那我觉得这个位置太好了是我梦寐以求的又满足了做产品还能做架构师太好了所以我就去了。
极客时间:那很好啊,你没面试,进去还是核心岗。
毕玄:但第一天简直就是悲剧(笑),我现在都记得。
因为去了之后,我周五报道的,报道完老板跟我讲,要我下周一出这个产品的架构设计思路,我想架构设计思路?啥玩意?我都不知道这个东西是什么,然后我就开始瞎编。
压力很大但反正最后也给了一个什么东西乱七八糟的。然后我就开始负责这个系统的架构以及核心的代码都是Java的从中山项目以后我就已经走向Java体系。
但产品真的太难做了,一家公司能下定决心做一个产品是非常难的。他们投入一段时候之后,觉得做了半年好像也没有出啥东西,所以他们反思还是做项目比较好,于是我们又接了一个项目,东风汽车的项目,在武汉,不在上海,我又带着几个人在东风驻场做了接近一年,唉我实在是抗不住了。
极客时间:所以你本来想摆脱做项目,才选择到新公司做产品,结果阴差阳错又回来了(笑)。
毕玄:尽管我变成了整个项目的负责人,面对的关系更综合一点,角色比以前更高,但做项目这种经历我真的太受不了了。
极客时间:那你当时又准备走了?
毕玄:当时也很巧,我做了半年多,我的第一任老板决定出来创业。
极客时间:就是那个给你机会的经理吗?
毕玄:对,他就跟我说一起创业吧,我就去了。
我本来就想换工作东风项目快收尾了我觉得也没什么意思因为这样下去看来公司也不大可能继续做产品可以理解公司尽管有电力的背景但还是会考核一年的营收毕竟也是投入嘛。但如果你要专注投一个产品真的要投挺久的2年多很正常投几十个人算下来钱也不少。很多公司就是这样现在也一样很多真正有壁垒的产品是它投入了很多年外面的人想抄就要投很多的钱这是壁垒。
所以,我就觉得既然他想创业,我们关系又很好,正好我干的也不爽,干脆就回去跟他创业去了。
 
极客时间:当时你们创业是想做什么?
毕玄:创业我们的目标就是继续做政府软件,因为我们之前做佛山、中山、深圳,我老板其实一直是最重要的负责人,跟政府各方都很熟,所以我们觉得应该可以做吧。这就是第一次创业的人,啥也不懂。
开始我们有3个人我写代码他各种都干另外还有一个专门做商务的人本来我们认为佛山、中山应该有些机会但后来发现政府招标对资质有很多要求但创业公司最难的就是资质短时间也很难有。我们仨搞了将近一年觉得太难了。
后来就去找了以前的朋友,他们是中国做公安非常大的一家,就给了我们一些项目,都很神奇。
极客时间:公安的项目?那是做什么的?
毕玄:当时刚好是中国做二代证系统,我们负责做公安系统,就是把一代证的信息转移到二代证上的中间系统。这个可搞笑了,出了很多问题。
因为我们的代码能力尽管是有,但说实话,还是不大行的(笑)。基本一出问题,我就得在公安局呆着,因为我们公司也没几个人,就是我飞到各处,现场改代码处理各种问题,所以那段时间我更惨了,全国跑,在内蒙古最冷的时候我去做了呼和浩特的系统,然后甘肃、兰州也待了几个月,还有云南、昆明,我全部去的这些地方。
就那一年我们做了一些相对偏远地区的公安系统。最终我们3个人都觉得这玩意没戏做不成因为那个时候我们的梦想其实也是做出一个产品卖给所有人。
所以现在我跟所有在行业软件这个行当这和通用性的软件例如CRM等不一样创业的人都说我真的不相信能成除非软件有很革命性的进步如果没有你们做的方法跟我们当年其实没有太大区别那为什么当年做不成你们现在就能做成了呢。
别幻想这些故事, 不过因为这个故事是所有人的梦想,换一帮人,这个梦想还是可以讲下去的,但你没有真正做过这个行当的话,是不知道它背后很多东西的,你会觉得它好像是成立的。
 
 
极客时间:这么看感觉做不下去了,后来呢?你们就散伙了?
毕玄我们3个人做了接近一年觉得这活肯定干不下去也不可能做大那有啥意思不如大家回去打工算了。就在我们在要回去打工的时候突然接到了一个神奇的机会那个机会就是互联网公司500彩票网。
500网当时是中国最大的彩票网站准备冲刺上市他们觉得原来的那套系统技术不大行就希望有一个全新的团队来写一套全新的系统彻底替换掉原来的那套。
他们的负责人刚好跟我老板比较熟,就说要不你们也来,当时我们创业反正也觉得干不下去了,我们觉得行,可以干,就去了。
就因为干这个项目我才懂了互联网非常有技术含量。因为那个时候团队里有些是腾讯出来的就跟我们讲为什么腾讯QQ是难做的并不是大家想象得那么没有技术含量讲当规模上来的以后你会碰到什么问题讲腾讯是怎么解决的我们听完觉得那确实挺牛的。
所以我就去了但这个项目因为主要是腾讯的人而腾讯的主力语言是C。
极客时间啊第一份工作被迫学VB后来到Java现在你又要学C了。
毕玄我又悲剧了但因为我Java已经做了那多年不想再换语言了那在这个团队里我到底能干啥呢所以后来我就干了一个非常神奇的角色做了这个项目里的DBA。
极客时间但之前你也遇到相似情况了VB和Java都学了为什么当时就不想再学C了
毕玄一是我不想换语言另外这个团队里C背景的人也够多了都是腾讯出身的技能非常好他们相当职业而且这伙人见过当时中国最大规模的网站我临时学一下能跟他们比这个难度有点大。加上项目时间要求非常短可能只有几个月所以要的是大家尽量快。
我想了下,没有别的能干,就数据库没人干,好吧那我就干数据库,因为完全不懂,那个时候就开始每天学数据库。
极客时间:那之后呢?
毕玄做了几个月本来这家公司上市的流程都快走完了在美国IPO几乎没有什么问题了但在就要上市的前一个月中国颁布了一个规定不允许在互联网上买彩票。
说实话我们本来打算冲刺上市,获得一笔钱然后走的,没准备在这家公司待太久。这样一来觉得上市没有希望了,大部分人当然就撤了,我也在其中。
我走的原因很简单一我也不想做数据库这显然不是我的长远方向说实话本来就是一个短期的活第二我肯定想回到做Java的工作然后也开始觉得互联网是一个很好、很有技术含量的公司所以我希望找一个做Java的互联网公司。这就是2007年了我年底加入的淘宝。
-
 
水友讨论区
到这里对谈就暂时结束了,今天我们主要聊的是毕玄正式成为程序员之后做项目的故事,不知道有没有引发你的思考。
从毕玄写千万项目的底层框架开始,我就隐约有了大佬崛起的感觉,毕竟他说写程序其实没什么难的,就是工程,是抽象问题,果然老做项目的他觉得成长不好,开始找新工作了。虽然找新工作非常不顺利(又有一丝安慰;)),但是从曲折的经历中,他也深刻地明白了做项目和做产品的区别。
不知道你对今天的对谈最感兴趣的是什么,我列了几个话题:
有人说客户需求是个哲学问题而不是与客户沟通的问题不是客户提到的就是需求。你做过ToG/ToB的项目交付吗感受如何
对于“抽象成产品,卖给所有人”的梦想,你的看法是什么?你觉得未来会向什么方向发展呢?
毕玄的语言使用经历是大学做网站的ASP -> 做项目学的VB/Delphi -> 第一眼觉得简直烂到极致Java -> 彩票网站被迫用的C不同的语言你在工作中学习/使用过哪些呢?换语言的体验如何呢?
欢迎在留言区参与讨论一起交流。下一讲我们会接着毕玄进淘宝的经历聊,下一讲见。
拓展阅读
如果对毕玄当年能吸引到offer的博客感兴趣你可以看看这几篇-
1. 项目杂感-
2. 做家中间件厂商到底有多难-
3. 产品规划-
4. 质量和快速决定了软件架构

View File

@ -0,0 +1,228 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
03 淘宝HSF能让淘宝出重大故障的就那批人
你好,我是叶芊。-
 -
上一讲我们聊到毕玄加入互联网公司的经历为冲刺上市的彩票网站写新系统因为自己不会C语言也比不过腾讯那拨人迫不得己成为了一名DBA。但因为突然的规定上市无望他也走了。-
 -
后面发生的事情,说实话我只能说“很神奇”。-
 -
就他准备找新工作的时候,在没写简历没主动面试的情况下,居然又有一根橄榄枝神奇地伸了过来,然后在一场很神奇的面试后,他进了淘宝,结果第一个项目就神奇地差点把淘宝搞挂了……-
 -
到底发生了什么?我们马上开聊。
 -
极客时间2007年底你就去阿里了当时你是怎么进去的
毕玄也是博客我到上海工作是因为写博客换到阿里很大原因也是这个当时我在网上写了OSGi那份文档OpenDoc那个时候可流行开放性的文档。
极客时间:这篇文档影响力很大,你写了多久?
毕玄:一点点积累的,前前后后可能有半年多。
极客时间:半年?这么久?
毕玄就写了那篇东西写了之后技术圈的关注确实比较大最早我们觉得产品化的基础可能是基于OSGi做因为Eclipse那个时候已经是Java的垄断IDE了而Eclipse的底层是OSGi。
当时Eclipse把OSGi把插件化的整个体系讲得你如果听一下思想都会觉得太完美了而且有Eclipse展示相当于有了落地还不光是一个概念所以大家都觉得哇这是革命性的基于这个抽象有可能做成产品只是后来论证了一些东西不是这样。所以当时OSGi在国内的关注度非常大加上又没有文章我写了第一个很多人可能就因为这个知道了我。
极客时间:那个思想是什么,可以具体讲讲吗?
毕玄从业务上讲以前做整套系统想做成产品产品化的核心思路是复用但你不大可能把所有东西都做了那最好的方式肯定是插件A、B如果有不同的需求我做个插件插在原来的上面做扩展就好了。
而Eclipse是完全基于插件体系的在里面如果一个功能没有你装一个插件就有了然后插件还可以扩展你想跟别人的不一样改一下代码就可以还只用改部分。我们觉得这是一个完美的思路把很复杂的东西抽象掉做插件、做扩展。
其实到今天为止所有的扩展型系统仍然是这么构建的。只不过OSGi可能太复杂了但它的思想其实被用在了所有系统上现在想产品化的公司面对复杂系统还是插件、扩展点的套路。
我们当时觉得这个方向是有可能的Eclipse也给我们展现了一个完美实践所以我们说应该研究下来然后我也比较感兴趣也觉得这个东西应该就是灵丹妙药。中国又没资料就开始自己研究了加上我确实比较喜欢写文章写上瘾了就有了那篇非常长的文章。
极客时间:所以你写出影响力之后,你是怎么去淘宝的?像以前一样有人看到你的文档被联系过去的?
毕玄写完之后有个人叫曹晓钢他做了一个网站叫满江红以前很多人会用包括我们搞Java那帮人那篇文档放在了网站上可能中国学习OSGi的人都看过了所以我跟晓钢就非常熟了。
当时比较凑巧,刚好我准备找工作的时候,晓钢就问我要不要考虑下淘宝。因为那个时候他的一个朋友刚刚加入淘宝,那个朋友就是菲青。因为菲青中国朋友比较少,很幸运晓钢就是他的其中一个,菲青刚刚加入淘宝在招人,也找不到别人,就问晓刚能不能推荐几个,就这样我被推荐给了淘宝。
然后我就到杭州面试说实话那个时候我们不觉得淘宝名声很大虽然有一定名声因为它刚刚打败eBay听肯定都听过但觉得好像也没啥。出名的是老马。因为马云在前一年上了创业的节目在那个节目里风格非常犀利圈粉无数那我觉得很好啊就到淘宝面试。
 
极客时间:你被推荐过去之后,然后就顺利进去了?
毕玄:没有,进淘宝很狗血的。当时晓钢还问我面的咋样,我说我觉得不咋样。
面我的第一个是黄裳,淘宝比较老的一个工程师现在蘑菇街的联合创始人,黄裳第一轮,菲青第二轮,第三轮是马钰。
那个时候黄裳问我很多问题,我都不知道,菲青问我,我也很多都不知道,马钰问的时候我就更懵,因为他是带搜索团队的,问很多算法,算法我不懂,他让我做道题,也没做出来。后来我就说你们到底是怎么让我通过面试的(笑)。
但是最后很神奇的是,等面试结束的时候,马钰居然问我要不要考虑一下加入他的团队,我都震惊了,我是来面菲青的团队,然后马钰说你要不要来我们这。当时我想,啊?我题都没做出来,你们为什么让我加入?这什么团队。所以很搞笑的。
最后当时淘宝整个软件技术部的老大空闻面我空闻说你前一年不是在做数据库吗现在为什么面的是Java工程师空闻简直震惊了。反正很神奇的我就这么加入了淘宝。
极客时间:所以你到底是怎么通过面试的?时机原因吗?
毕玄:后来我们一帮当时加入的人都开玩笑说,当时的淘宝估计是你只要投简历,就会招你,根本就没什么面试流程,就是个形式。这可能真的就是运气,但很多公司都这样。
因为07年愿意来淘宝的人非常少包括我们去校招淘宝绝对是阿里集团里最后一个被选择的。到后来我们才有了很多的要求淘宝是09年经历的大规模发展整个架构做了演进就会有很多要求比如希望你做过大型系统。
这像我们07年进来的这批人就废了应该是进不了淘宝的会被碾压做过大型系统没见过并发量上十万的都没见过更不用说其他非常非常多的要求了。阿里后来招的人实践经验简直能亮瞎眼本科就已经非常厉害了不用说像硕士、博士但这是阿里很正常。
极客时间除了你说的运气应该也有你写OSGi文章的原因吧
毕玄应该有后来我跟黄裳他们都说你们招我八成是因为OSGi吧。因为他们面试问的很多跟淘宝当时用的整个技术体系相关淘宝当时又要做服务化他们觉得这些你是不懂OSGi你懂啊。但是问那个他们就不知道我回答的怎么样因为说实话我答的对还是不对他们也不知道只是觉得你有一个点是非常专业的所以也可以招进来。但肯定不是因为我对淘宝多了解。
 
极客时间我们接着你进淘宝之后的经历聊你是一进去淘宝就开始做HSF了
毕玄因为OSGi是一个偏服务化的东西淘宝当年最重要的策略就是做服务化的架构演进只有我是有这个背景的所以进来之后我就很自然地负责做这个东西。
但问题是,其实我也没做过,而且我们那帮人都没做过大规模的系统。我当时面临的第一个问题是技术选型,但我们根本不懂大型系统的技术选型挑战是非常大的。
以前我做政府,说实话随便选好了,更多的是看功能,但互联网更多的是看性能,功能对互联网来讲一点都不重要,越少越好,但性能是核心。所以我进来做的第一个技术选型后面就是一个巨大问题。
极客时间:当时你做的选型可以多讲下吗?
毕玄我们做HSF第一个要选的是通信框架淘宝最早是WebLogic菲青进来以后再换成了Jboss我进来之后因为菲青用JBoss就决定也选Jboss的通信框架把Jboss的老版本升级成新版本顺带把通信也基于Jboss来做。这就是我们以前的选型所以后来我们会不断地教育新人不要瞎来有非常严格的规定。但以前互联网可能大家都不懂。
所以我们就选了做了第一个版本上线这是我面对的第一个大规模系统日均访问量是200万。我以前做的10万不到一下直接200万。那个时候所有人都会告诉你做一个网站访问量10万、100万、1000万、1个亿、10个亿是不一样的但没有人告诉你到底哪里不一样。
因为当时中国没有圈子就很窄。但国外就有很多QCon以前在国外的大会有很多互联网公司讲他们的技术非常适合中国做互联网的那帮人这点必须说QCon是真的打开了中国交流的圈子所以我们以前都是看国外的东西。
极客时间:所以你上线就出问题了?
毕玄:没有,我当时上线以后很正常,所以突然间我就觉得,完全感受不到你们吹嘘的到底有多难嘛,你们是不是在忽悠我啊。我就信心爆棚了,决定不要上这种不那么重要的系统,因为当时上的系统是给阿里的客服小二用的,出问题相对还好。
我们就决定直接上阿里最重要的系统交易系统。当时交易系统日均访问量大概是1个亿左右相当于从200万到1个亿的跨越。结果上线的当天就出问题了。
当时发布的时候大家都去千岛湖Outing了就留下我和黄裳俩人因为大家觉得应该也不会有什么问题所以你们俩就留下发布吧那个时候发系统都是半夜不是白天。我们俩半夜开始发系统发完了以后回去睡觉了。
一大早我就接到监控的电话,说整个淘宝现在很诡异,也说不出来哪里诡异,好像比平时慢一点,就是这个描述。
 
极客时间:接到监控的电话,你们就赶紧去公司查问题了?查了多久?
毕玄:当年不像现在处理故障有一套专业的流程,而且要求响应非常非常快。当时我们觉得都无所谓,我和黄裳就去公司查,从早上查到晚上。所以后来我们在内部分享的时候都说,按我们当年处理故障的状态,都被阿里开除无数次了(笑),因为现在你必须立刻回滚掉,但当时我们俩觉得,不要回滚,先让我们查一下问题再说。
关键是我们从早上查到晚上都没查出问题在哪但晚上的时候已经非常严重了淘宝已经快打不开了支付宝那边已经快挂了。我们俩也抗不住了猜想八成就是HSF虽然业务代码也改了但换的核心就是这里所以我们就把HSF回滚掉了换成了原来的方式一切恢复了。
然后我就悲剧了这不用说压力就非常大了那个时候我入职4个月刚过试用期。
极客时间:有没有转正?
毕玄:已经转正了,但也压力很大,毕竟出了很严重的问题,而且就我一个人做这个系统。我就下来开始仔细回顾整个系统,慢慢查,但因为已经回滚了,也不纠结啥了。后来我们就发现了只是一行代码。
极客时间:查了多久?
毕玄:可能查了一两个星期。
极客时间:两星期?不会很焦虑吗?
毕玄:心态都还好,我可能觉得不管怎么样,反正先查出问题,其他的后面再说,而且不至于说我出了这个故障就被开掉了,这菲青肯定还会给我机会。但下一次压力可能就真的很大了,因为下一次说实话是不能出问题的,再出问题我觉得我自己也不好意思呆下去了(笑)。
极客时间:刚转正就出现了这么大的故障,可能你属于比较冷静的。
毕玄:我觉得看得开就好了。
因为我们后来发现有些人会想太多,比如做一件事情,就想着我要通过这个事获得什么,那八成是会做的乱七八糟,出了故障就想会不会被处罚,对晋升、奖金有没有影响,老想这些,那肯定没法做了。如果你什么都不想,先搞定它,剩下的事情等搞定再想也不迟。关键是,你现在想也没有用,你想不会改变任何东西,先安心干好你的活不就好了。
极客时间:面对重大事件,你的这种心态,你觉得和之前自己做项目的各种坎坷经历有关吗?
毕玄:那我可能高中就是,高中考大学不就是重大挫折嘛。因为我们高中是全省能排前几的,尤其我那个班,可以认为是超级重点班,只要能进那个班,基本都能上重点大学。当时我们每届都有奥赛金牌之类的,上一届还有省状元。
但我觉得这是个接受问题因为我中考进我们班的时候是正数第8但高中第一次考试我就已经二十几名了。
极客时间:二十几名之后你是选择接受,不是说“不行,我得整回去”?
毕玄:你当然会努力,但努力一两次之后,你就会发现你得接受。因为我的几个好朋友,成绩非常非常好,但他们一点都不努力的,根本不读书,上课听一下,下课从来都在玩游戏,但考试每次都能考前几名。所以我说这是接受,很多人可能接受不了,觉得好像很怎么样。
就像我的好朋友,他高中一直考第一名,高考的时候全校都在看他有没有机会得省状元,最后他稍微有点失常,但应该是全省前十,就去清华了,后来我去清华找他聊天,他就说他终于懂了,我们高中的时候是多么痛苦。
极客时间:他也像你们高中一样,发现自己学不过别人?
毕玄因为他进清华第一次考试就是班上最后10名他一看别人成绩这么好就变得非常努力每天早上7点就去图书馆学习一直学到晚上。但即使这样他一直都在后20名。
极客时间:可能他也需要适当接受。
毕玄:对,他就接受了,因为他看到前几名也是那样,跟他高中一样,也不怎么读书(笑)。
所以是心态,以前我们总说“但行好事,莫问前程”,当然面对重大问题的时候另外有抗压性的问题。
但抗压很难训练,我总不能给你造个故障,这对公司影响太大了,到底怎么训练面对这种重大问题,一个人的反应是什么。当然阿里后来有很多故障演练,你也不知道那个故障是真的还是假的,会故意出现一些,真假混合,就看你的反应。我们确实会发现不是所有人都适合的。
极客时间:面对故障,不是所有人都适合抗压,那有没有人因为这个离开了?
毕玄:也会有的,但不多。因为说实话,真正要面对这种压力的人。
极客时间:人都是很少?如果能让你去做这么大的系统,他一定是经过检验的。
毕玄:对就是少,你说对了。真的让淘宝整个网站出严重故障的人,说实话也就那批人。
那批人,很多都能接受是因为觉得就算出故障然后被开掉了,那又怎么样,我还是能找到一个工作,而且不会差,就会觉得无所谓了,有啥好纠结的。说实话,很多人担心还是因为不够自信,害怕如果被开掉,可能就怎么样了。但是不害怕的都是那批,大不了就开掉,这就是最差的结果,这我都能接受,那我还怕什么。
极客时间:这是当年,有点好奇现在呢,能让淘宝出重大故障的人?
毕玄:现在就不好说了。因为公司大了,出故障的影响面不一样,你现在出故障可能是真的会受到一些处罚。但以前没有处罚,以前尽管号称有,但也不会多严重,因为我们也确实被处罚过,包括绩效等等会受影响,反正大家看得开。
 
水友讨论区
今天我们主要聊的是毕玄进淘宝,以及做第一段专业领域的系统设计的故事,不知道有没有引发你的一点思考。
之前在知乎搜毕玄,在一个不那么正经的帖下面找到了他相当正经的一段发言:
当时我还将信将疑但在今天了解了他07年的淘宝面试经历后疑虑打消了可能当年那波公司都有一段这样尴尬的时间之后应该也会有。
进淘宝之后毕玄做的HSF上第一个系统大获成功于是这名热血青年信心满满上了1亿日均访问量的交易系统结果被故障狠狠教训了一把差点达成进厂就被裁的成就但他表示稳住心态先安心干好活没有什么好纠结的。
不知道你对今天的对谈最感兴趣的是什么,照例是自由讨论环节:
OSGi的插件化思路你是怎么理解的在哪些系统里感受到这种设计思路吗
工作中你出现过严重的故障吗?影响如何?当时自己怎么处理的呢?
欢迎留言参与讨论,留言区是匿名的,所以欢迎自爆,也欢迎马赛克人名爆别人的料,毕竟独乐乐不如众乐乐,让大家一起围观引以为戒:)
我们下一讲会继续毕玄在淘宝的经历聊,下一讲见。
拓展阅读
1. 这是一扇传送门关于毕玄做HSF的复盘我们后面单独有一讲聊一聊他对这次故障的深刻反思以及之后怎么才能顺利做成事的参考经验。
2. 如果你对阿里的技术演进感兴趣,可以看《淘宝技术这十年》。
3. 满江红网站还在首页也能看到OSGi那篇文章毕玄网名Bluedavy但链接失效了如果感兴趣可以看看毕玄博客里的这篇说说OSGi。
4. 如果你对用OSGi做服务框架的思路感兴趣当年毕玄也写了一系列思考-
服务框架的要素的blog-
基于OSGi实现服务框架的分析-
基于OSGi实现分布式服务框架历程(一)-
基于OSGi实现分布式服务框架历程(二)-
基于OSGi实现分布式服务框架历程(三)-
基于OSGi实现分布式服务框架历程(四)-
分析分布式服务框架

View File

@ -0,0 +1,243 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
04 淘宝消防队:真正最优秀的程序员不应该是英雄
你好,我是叶芊。-
 -
上一讲我们简单聊到毕玄进淘宝后做HSF的经历以前他做网站访问量10万不到上来一下到200万再直接跳到1亿他的心情也从“信心爆棚”直接跳到了“上线爆雷”毕竟刚转正就让公司出了严重故障他表示压力山大但是自己心态还行。-
 -
今天我们接着他的经历聊,当时在淘宝他还有一段相当有趣的经历——淘宝消防队,在这里他锻炼了自己的解决问题能力,也结识了阿里的知名大神多隆,但是在采访中他却说这种机会对公司来说其实是个恶性循环。-
 -
为什么他会有这个看法?淘宝消防队的经历对他来说究竟意味着什么?我们开始今天的对谈。
 -
极客时间看你的经历HSF做完你就去淘宝消防队了
毕玄不是淘宝消防队是一个插曲就它是个民间组织。因为09年淘宝经常出问题出问题以后当时的最大问题是没有人去解决。
以前我们就一个系统如果出了问题大家都会去看看是不是跟自己相关但是我们在09年以后有100多个系统大家都觉得如果出问题了肯定不是我的问题所以就没有人查问题导致那段时间很糟糕客服感觉明明有很多用户在投诉但技术这边反馈很慢都不大去解决就很混乱。
后来我们运维线有一个人很不爽,就拉了个群,这个群的名字叫“消防队”,群里拉了一些我们觉得愿意去解决问题的人,后来只要出问题,这个群里的人就会去解决。
极客时间:噢没有组织上的约束,那这些人确实没有责任必须要处理问题。
毕玄:没有。只是这帮人觉得问题老没有人解不好,当然还有一个原因是这帮人比较喜欢解问题,有这个爱好,以前你想解也没有问题,现在你一进这个群简直了,只要想解,问题一直有。然后我们就有一帮人进了这个消防队。
这个群以前有个默认规则是不允许M线的人进来。阿里是P线、M线M偏管理。后来有一个副总裁不小心被拉进来但很快就被踢出去了然后他就问为什么要把我踢掉我们说因为解决故障的时候不需要你解决故障的时候需要P线的人而不是M线的人。他也很无语。
极客时间:副总都能直接踢吗?这个操作挺勇的。
毕玄这个群慢慢大家都知道了因为大家发现只要反馈给这个群问题是会被解决的就形成了效应加上又没有官方组织。可能半年多的时候不知道为什么群被更多的高层知道了因为我们最早说一不允许M线二要低调最好没有人知道这个群的存在尤其高层。因为我们要操作生产环境理论上肯定是有点违规性质的权限会过大所以我们也不想太高调。
但被知道了以后,在淘宝年会上,公司临时决定要给这个虚拟组织颁奖,好像是总裁特别奖之类的。我们就突然被通知你们的群得了个奖,颁的时候我们印象都很深刻,因为是临时的来不及订奖品,就从现场,当时在黄龙体育中心,找了一个灭火器,颁给了这个消防队,然后颁奖的时候还跟我们说,等会儿下来,记得把这个灭火器还回去。
极客时间:所以是给了虚拟团队一个虚拟奖。
毕玄:就是给一个荣誉,我们都笑死了。
后来公司知道了,觉得不能靠虚拟组织,这个事情还得官方化,所以成立了官方的消防群,那就不一样了,进群的责任有一条就是处理问题。但尽管有官方了,我们有少数几个人被列在了某个名单里,那个名单里的人被特批拥有全部权限。但这是因为我们过去做了很多事情。
反正当时对我来讲挺好的,借机学了很多怎么解决问题,而且多隆也在里面,我跟多隆就是那样熟起来的。以前我只知道他很神,但不知道哪里神,但在消防队我充分感觉到了为什么,很多问题很难被解决,但多隆基本都能解决,而且几乎横跨所有领域,这太夸张了。
极客时间:这种解问题也是非常锻炼人的机会吧?因为我看你写自己的技术成长过程,总会提到在淘宝消防队的这段。
毕玄:因为这是个训练。我后来跟多隆总结出来就是“卖油翁,唯手熟尔”,你越被喂就越熟练,越熟练就越被喂,就像打游戏一样。但这是个什么循环?你可以认为是个良性,也是恶性。
对个人就是良性循环,比如说你解多了,公司很多人都觉得你解问题不错,所以大家有问题都找你,你被训练得越来越惊艳。但恶性就是公司其他人没有机会了,因为处理问题通常都是很紧急的,大家一定会第一时间想,谁能最快解决,就找谁。
 
 
极客时间:你淘宝消防队的这段经历,是不是给自己赢得了很多信任,也为你后面的很多机会做了铺垫?因为像你这种刚开始出于兴趣去做,后来被问题训练得越来越强,这种人,在技术的人眼里应该会相当受认可吧。
毕玄通常来讲技术圈里每家公司大家觉得最牛的那个人多数是解决问题能力特别强的公司的很多危机时刻是他出来把问题解了鲁肃当年就是这种。很神奇阿里有多隆Google有Jeff Dean百度据说也有个这样的腾讯也有好像每家公司都会有一个神一样的存在大家觉得没有什么问题是他解不了的。
后来我们说还有另外一种,但这种不显眼。因为解决问题就很像英雄,出了问题然后你出面把它解决掉,另一种人是他写的东西几乎没有出过问题,就不会被暴露出来,但这种人其实是真正要挖出来的。因为前面的不挖他就在那了,不需要挖。
极客时间:英雄和这种不出问题的,是不同的能力水平吗?
毕玄:程序员的技能水平我一直说可以分成三段。
第一段是你的基本技能,比如做这个业务要写相应的代码,那这个代码相关的东西你得非常了解,包括背后的细节。我们觉得这是程序员的第一关,迈向职业化。
说实话这跟公司中、小、大没有任何关系,关键看你对自己的要求,公司可能不会明文说你要怎样,尤其是中小公司,因为说实话,每家公司不对个人成长负任何责任,反正你没成长,公司大不了换一个人。但你自己应该有追求,用到的所有东西都应该去了解它背后是怎么回事,否则现实讲很容易被淘汰的。
极客时间:这里想多聊两句,你有没有什么衡量自己了解程度的具体方法?你是怎么做的?
毕玄:写文章和分享。我觉得分享是很大的挑战,有些东西你觉得自己很懂,真正讲两个小时,你可能就挂了。
以前博士(王坚)给我们上课,讲怎么判断一件事是不是个问题,因为大家会提出一堆公司可能存在的问题,他说,你们如果能就这个问题讲一天,说明这真的是个问题,如果不能,说明这根本不是个问题。
因为吐槽一个公司的问题很简单,关键是这是不是真问题,而且对高级别的人来讲,肯定也要想怎么解,如果你能讲一天,这才是公司值得重视的问题,说明解法很复杂,这就真是个问题。如果很简单,公司肯定会解的。
这就像技术分享博士会挑战我们你们不是觉得自己很牛吗觉得对这个很精通吗给我做个分享。很多人发现上去只能讲两个小时这其实就是你掌握的全部我以前在内部讲JVM最早也只能讲两个小时后来我能讲两天。
这是可以训练的。所以最重要的是先把一个东西讲厚当然另一个技能是能不能把要讲一天的东西5分钟讲完但首先要有讲厚的能力不能上来就讲5分钟。
博士那一堂课是我们有史以来最受教的一堂课,因为这是一个很简单的方法,但所有人都可以被衡量出来。
那之后我们就懂了后来跟很多技术线的人说检验自己的能力有一个很简单的方法就是分享你讲多久能把自己讲空掉就是你能力的极限。很多人用中文随便能讲两个小时一换成用英文讲10分钟就讲完了这一看就不靠谱这其实就是你的技能。
 
极客时间:好,第一段是把基础打好,程序员技能水平的第二段是什么?
毕玄:第二种,在程序员世界里,通常容易被认可的就是解决问题的人,就是英雄式人物。但这确实也有一个问题,因为解决问题的能力,目前看必须靠问题训练出来,很难靠自学,除非你给自己造一些问题,但还是非常难,最好有实战的机会。
极客时间:有问题出现的这种机会,是每个公司都有的吧?
毕玄:对,因为每家公司都会出问题。你看好了,出现问题的时候,关键看有哪些人,跟这个事情一毛钱关系没有,他还冲上来,掺和一下,一定会有这样的人,每家公司都会有。
虽然开始掺和的可能也没什么用,但他掺和多了就不一样,这个人慢慢就会得到信任,然后他的机会越来越多,就会进入良性循环。这种人会慢慢成为程序员圈里的大牛,大家都会知道他,而且大家都会特别服他,不服不行,因为你真的干不过他。
就像多隆,你们不服对不对?来呀。因为我们老说阿里最神的技术人是多隆,后来阿里有些新人不认识他,内网就有人说凭什么?他做了什么?结果炸出来一堆老员工,全部出来喷上面的新员工说你们知道啥。
多隆很低调不像我们这些很喜欢在台前的人但事实上他解决问题就是比很多人强很多这是经过事实论证的。程序员要服人还挺难但解决问题绝对是一个大家正面PK两人一起解决他就是比你快那你还说啥你说你能力比他强那不可能。
 
极客时间:所以第一关先把个人基础能力搞好,再当一个喜欢掺和的人用问题全面锻炼自己,那第三种呢?你前面说的不出问题的?
毕玄:第三种程序员,那是真正职业里最优秀的程序员,因为他写的东西很稳定,就是我们说的鲁棒性特别好,不大会出问题,但这种反而特别难挖出来。
做一个程序员写正常逻辑不难,正常逻辑就是解问题,因为人脑是串行的,串行写下去非常简单,只是从说话变成了代码而已,是个翻译过程。翻译的好坏是另外一个要求,需要你对背后机制很了解,可以做到性能很高。
但是一段代码,在现在正常的环境下可以跑,同时环境稍微有点异常,如果你这个代码还能跑下去,那太牛了。这是最牛的。
这多数是因为他经历过前面,见过很多问题,也解决过很多问题,他才知道噢我写代码的时候,这里要注意一下,那里要注意一下。所以很多优秀程序员的代码,正常逻辑可能很少,其他都在处理一堆你觉得不可能发生的事情。
极客时间我记得你前面讲HSF的时候提到性能是一个很重要的要求但为什么你这里说稳定性能做到是最牛的
毕玄:对程序来讲,性能当然很重要,但其实最最重要的肯定还是鲁棒性,因为我们没有办法非常好地预判这段代码运行环境到底是什么,你现在设计的时候是这样,但过段时间环境可能就变了。
所以大家说看代码绝对能看出一个人的功底,只要秀几段代码,我们很快可以判断这个人的大概水平。现在我没写很多年了,但我还是能看一眼看出差别,为什么他写那几行代码,你看起来没有意义,但出问题的时候,因为有那关键几行,他的就保住了,而你的就挂了。
阿里以前出现很多Bug比如说最简单的用一个数据结构去缓存所有用户信息以前写的时候他觉得这公司用户量不可能到100万所以那个缓存没问题但很快量就突破了然后缓存的内存就爆了结果整个系统全挂了。但写得很好的他一开始就会设一个保护到了多少会直接自己异常掉不会把整个系统搞挂这就是有经验的人这就是差别。阿里出过很多次这样的故障都不是一两次很多很多次。
后来很多人写接口也是这样比如说我给你一个函数输入XYZ你随便输入因为很多人的意识是我已经在设计文档里告诉了你X不能大于1000但是你还是输入了超过1000然后我挂了他觉得那是你的责任。
但事实上一个好的程序不是这样的,我不是靠文档,文档上既然这么写了,我的代码里就会控制,如果入参给超了,我一定会给你一个异常,这样整个系统不会出问题,这就是一个非常优秀的程序员。
极客时间:但要做到这种程度,考虑到可能存在的各种异常,然后写处理代码,这是不是也有时间成本?
毕玄这就看追求有些时候比如中小公司很多人就会说这个概率很低不会出现所以他觉得我为什么要浪费时间写这些1/10000或者1/100000的事情但我们说这就看你想不想做一个好的程序员。
 
极客时间:如果我们总结一下你的这段消防队经历,你是一个喜欢解决问题的。
毕玄:对,因为我喜欢做英雄式的人,我本来以为很多人应该都喜欢,后来发现不是,像多隆就不是,很神奇。但以前我跟多隆比较过,我是能看出差距的,而且这个差距是很难弥补的。
极客时间:看到差距了,你和高中那会一样选择接受,也不挣扎?
毕玄:因为我碰到过几类这样的程序员,我必须说他们可能天生就是应该做程序员的人。
就像我解决问题是要有现场在的,比如一段代码有问题,我要能看到现在输入了什么,执行的过程中出了什么问题,然后我来排查,但像多隆这种人他是可以大概推测的。因为现场经常就没有了,对我来讲就很难,我需要再等,但多隆不是,以前跟他一起排查,我告诉他这段代码可能有问题,然后多隆拿去看,过段时间来告诉我,你试一下把参数改成什么,然后跑一下看看会不会出问题,就真的会出问题。
这就比我高了一个档次。这种人是可以在自己大脑里运行代码的,像我们这种就不是。
极客时间:这种能力,不能多看案例训练出来吗?
毕玄很难训练这真的应该是天生的。我们还见过更牛的。CPU可以多线程同时运行但人脑最大问题是单线程我们程序员写代码又经常要写多线程的并行代码就导致查问题特别难因为我得在脑袋里模拟计算机的并行。当时我们碰到一个并行问题一帮人想了很久头都要晕过去了但以前阿里有个女程序员她就可以在头脑里同时并行跑代码猜出问题来。
我们都承认这就是天生差距,是无法弥补的,其他的我可以靠后天不断地解决问题把技能堆上去,但碰到这种,我说我认了,那我认输了。
这种人你想写代码的质量自然会更高很多相当于在自己的脑袋里可以先跑一遍这太恐怖了以前传说Jeff Dean有个笑话如果Jeff Dean写的代码跑不过肯定是编译器出Bug了这简直了。
有些人会觉得自己学得很累,但还是很难跟别人比,说实话,这真的是天分,所以我们会跟很多人说不要都做程序员,有些人并不适合,或者做到这个份差不多就可以了,然后就躺平多爽。不用纠结一定要成为多顶尖,这个世界上这么多程序员,最终顶尖的就那几个人,你没法跟他比,也没必要去跟他比,想成长可以理解。
 
 
极客时间:你喜欢解问题当英雄,所以从这个角度看,你在阿里之后的很多段转岗经历,好像背后都能用喜欢解决问题的逻辑来串,你看到一个问题,然后去解决?
毕玄:对,我觉得跟每个人的定位有关系。我是想过我自己的相对优势的,因为每个人的优势是不一样的。
后来我对自己的判断就是我很难成为一个非常专业性质的程序员做非常深度的比如操作系统、语言这种因为我也试过一段时间我带过JVM团队他的特质是必须在一个很小的问题上持续钻研可能只提升了一点点他也很愿意钻研。所以说实话多数程序员都不适合干这个。
极客时间:这种持续钻研的专业性程序员,是不是有点像搞科研?
毕玄你可以认为这一定程度偏科学家性质。科学家就是这样在一个很小问题上当然影响可能很大但看起来就是一个很小的点上不断地突破他觉得突破0.1都是有意义的。但我不适合做这种,真的呆不住,解决问题型的人可能都有这个毛病,够用就结束了,得靠不断解决问题升级。
我更适合做宽,就是广度,因为相对来讲我对各方面都有点兴趣,都愿意去了解一下。另外我可能的优势是可以大概判断,做什么事情是对这家公司相对更有意义的。这其实是需要肯思考的。
所以综合起来我可能适合的是把一个事情从0分做到80分但我不适合从80分继续做到90甚至更高。因为说白了做到一定阶段再往下突破会很难我需要找别的人但我觉得既然最后要靠我找的那帮人那干嘛不让他们来我就不想干了无力感会太强烈。当然这是个人判断。
极客时间:比起更偏专业技术的钻研,你喜欢在各种新领域横跳探索,是不是更偏业务一些?
毕玄一家公司的高管越高层级包括到副总裁以上其实是需要这种人的因为从80分带往90分带往更高你可以组建更专业的团队让他们来解决就好了然后你专注在各方面业务层面。
极客时间:啊你很清楚自己更适合做什么,但能像你这样想得这么清楚,感觉也挺难的。你有什么方法吗?
毕玄:当然刚毕业的时候,你不用纠结这个问题,因为刚毕业你的长短可能不是很突出,另外你其实也不知道你的长板真正在哪里,所以刚毕业的话,你也许可以多试几个角色。但是最后你一定会发现,在某个角色上你是相对轻松,而且同时干得也不错的,一定会有这样的角色,不可能没有,每个人都会有。
所以不用纠结我一定要在程序员上比他干得更好,没必要,因为你可能怎么干,都是干不过他的,这就真的不用纠结。每个人还是要想清楚自己适合的,还有你的长板。
但这也不一定是好事。以前阿里就有人跟我讲,你给自己画了个框,将来你是很难突破这个框的,因为你已经限定了自己,但如果把这个框去掉,想象空间变无限,就可以什么都干,尤其在大公司。
我自己的看法是,如果你很年轻,确实不要给自己画框,但你如果职业生涯有限,我觉得画个框不是坏事,因为你到中后期肯定是发挥自己的长板,短板就不用在乎了,没什么好在乎的。
极客时间:尤其大公司不要画框,那小公司不一样吗?
毕玄:小公司我觉得完全不一样。因为小公司难道还需要一个人帮忙吸引人才,然后他啥也不干,就指望下面干活?这个人一定会被砍掉的。但大公司不一样,大公司需要有人能凝聚一帮人干成事,因为大公司管理有各种各样的问题,所以这样的人反而适合走向更高级别,他需要接受自己不是那个真正解决问题的人,但他的优势是能凝聚一帮专业的人来解决问题,这也很牛。
老马就是这样的人马云就是我有一个想法然后有一帮很专业的人都拜依你的想法为你拼命。我也很佩服我觉得这是不一样的但我很难接受。所以后来我换的每一步都是我认为这家公司现在分比较低的一个领域比如可能是0或者60分我觉得我去可以做到80。所以导致我在阿里换了几个位置。但后面更被动前面确实是主动的。
极客时间HSF做完像你后面做的HBase、T4都是主动换的
毕玄后面的HBase就是因为HSF我觉得已经很难把它带到更高了我不知道该做什么了再做这个Leader就很不好因为如果Leader都不知道去哪里其他人肯定挂所以我觉得没有必要。
 
水友讨论区
到这里对谈就暂时结束了,在淘宝消防队处理各种故障的过程中,毕玄的编程能力也突飞猛进,也为他之后找到自己的优劣势埋下了种子。
今天对谈的重点是程序员能力三关,从基础能力过关的“职业程序员”,到解决问题高光出场的“英雄”,到写的东西不出问题的扫地僧“宗师”,每一关都能让你的编程能力实现阶梯式的提升。至于如何衡量你每个阶段的掌握程度,毕玄也给了一个简单又实用的方法——分享,看你能多久把自己讲空掉。
最后是今天的自由发言环节:
对于程序员的能力阶段,你是怎么看的呢?你有哪些好用的知识积累技巧吗?
毕玄解读了他认为做广和做深,他更擅长做广,回顾学习/工作生涯,你有发现自己在某个角色上是相对轻松,同时干得也不错的吗?你觉得自己的优势是什么呢?
欢迎留言交流,说不定今天就是你的小宇宙觉醒之日。
下一讲我们聊毕玄在淘宝的第一段转岗经历做完中间件HSF他居然又跑去做数据库和容器了下一讲见。
拓展阅读
如果你处在程序员的第一关,关注如何精进自己的代码基础能力,毕玄之前总结了一套方法可以参考:-
程序员的成长路线-
程序员的成长路线(续)-
程序员的成长路线Remix-
怎么提升写代码的能力-
高质量的工程代码为什么难写-
又是一年校招季,我是这样考察学生的

View File

@ -0,0 +1,279 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
05 HBase_T4Leader最重要的说白了是要赌未来
你好,我是叶芊。-
 -
上一讲我们聊到毕玄的淘宝消防队经历,在这个民间组织里,他发现了自己喜欢做英雄式的人,也隐约对个人的相对优势有了一些判断,认为自己不适合做专,更适合做广,更有兴趣从公司的低分领域做起,这也是为什么之后他会在阿里各个部门间横跳转岗。-
 -
但转岗说起来轻松,能像他这样跨大领域,还做一个成一个的,可不多见。他到底是怎么找新方向的?又是怎么把事情做成的?-
 -
今天我们先揭秘他的第一段经历从分布式的服务框架HSF到数据库HBase到容器化T4。
 -
极客时间HSF是中间件之后你又去做HBase从中间件跳到数据库这个转变还挺大的。
毕玄:对,我去了数据平台。但其实我一开始没有想好做什么。
当时是2010年NoSQL比较火阿里内部用什么的都有MongoDB、Cassandra、HBase这就又出现了淘宝消防队的问题没有一个专业的团队维护所以一出问题业务就挂。我们就觉得必须成立一个专业团队专门维护一个我刚好也没有别的事干就决定把HBase落地。
但HBase做了一年之后对我的吸引力比较少把这个东西做得更好的动力我确实不太强我就觉得应该干点别的开始想到底该干啥。还好我的老板一直挺支持我的不管我换哪个老板基本都觉得反正你想干啥就去干。
极客时间:可能你老板觉得也管不住你(笑)?
毕玄也有可能反正我在想该做点什么的时候看了一本讲Web容量规划的书《Web容量规划的艺术》所以我跟他们说看书还是有点帮助的
那本书到现在我印象都很深刻,核心观点就是一家公司如果不在乎成本的话,迟早有一天成本会超过收入,如果你不控制好成本增速和业务增速,那一定会失速,最后你业务就不能健康发展。
我觉得讲得很有道理阿里也应该干一下这个所以我就去干了就是T4。这也一样开始是个非官方组织。
T42011 年启动,阿里早期基于 LXCLinux Container 和 Linux Kernel 定制的容器调度器T4 的技术理念与现在云原生领域的核心技术容器一致2017年开源了名为Pouch Container。
极客时间:非官方,就是虚拟团队?
毕玄非常虚拟。因为我当时在带HBase也不确定要不要做就去找了多隆还有运维线的一个人、中间件的一个人我们四个人聊了一下觉得挺有意思的因为我们很清楚做的目标也找运维拉了公司机器的利用率数据觉得有戏。
极客时间:最开始这几个人你是怎么拉的?
毕玄:都熟人。后来阿里很多人想做创新觉得很难,我就讲要相信一家公司到了这样的规模,你想做的事情,肯定也会有另外的人感兴趣,就看你能不能找一帮这样的人,然后私下把这个事情做到一定的阶段。
之后,你有可能做成,也有可能做不成,都很正常。但是在没有做到一定阶段前,要高层支持你很难,因为通常跨了很多团队,所以只能靠你自己。从下到上是很难,确实很难。
极客时间项目刚开始是拉的熟人后来呢T4怎么进展的因为看岗位你们四个也不是容器这方面专业的。
毕玄:所以我们确实做错了很多,比如说第一版方案有很多问题,我们在第二版的时候才发现原来世界上就有类似的方案。
极客时间Linux Container
毕玄:是,我们走了大概有半年的弯路,而且那半年很悲惨,因为是弯路,有很多返工,这要不是有人支持,肯定挂了。
极客时间:支持的人是谁?因为有多隆这个有影响力的大佬在?
毕玄:有个运维的人。我们逼他不断返工,其实他们也很想投诉,受不了了(笑),我们不断折腾,有段时间让运维那个团队每周末连续加班,接近两个月,但我们都顶住了,正常情况下,说实话这个项目八成要黄。加上多隆也在,还是有帮助的。
所以大家还是要尊重专业,每个专业其实有壁垒、有门槛的,都觉得自己能做也是有点问题的,你当然也能做,但肯定跟我们差不多,来回不断折腾。
极客时间:这样折腾都没黄,是不是也有信任的因素?运维团队,包括你们项目里这几个人,相信这事能干成。
毕玄:对,其实任何公司都是刷脸。
为什么你能干成事?为什么大家觉得你说的可以干?是因为相信你,这个信任感只能靠时间,关键看你做了什么事情对这家公司好,都是看结果。
你过往的光环,顶多让你一开始很爽,因为大家都或多或少会让你刷下脸,但过了一年就没有人记得你的过去了,都只看你这一年在公司做过什么。如果还是没干啥,大家就会开始怀疑你,而且你以前背景越好,越受怀疑。
极客时间:怀疑你的能力,因为别人会对你的期待太高?
毕玄:对,这是高级别的人最大的风险。像我这样的,如果去另外一家大公司,多数给的职位能比现在更高,大家对你的期待是完全不一样的,比如同样的事,我在阿里做要三年,别人就可能希望你在一年内带来很革命性的变化。
但事实上这个难度是很大的,技术的思想、方法都没问题,但工程就是工程,工程落地的节奏是很难压缩的,加速肯定会有风险。
极客时间:那你觉得新人应该怎么做成事呢?
毕玄:很多新招来的人,都想一上来就铺天盖地做一件很大的事,真的想多了。
你先从一件很小的事证明你就是比别人做得好,然后慢慢的别人对你有了信任,那你机会多了去。技术人员就是这样,有信任,并且他也相信这个事情是有价值的,其实大家是愿意用业余时间去干的。当时我们几个人全是业余时间,但到了一定阶段,大家就都能看到成果。
极客时间:看你的经历,总感觉你做的项目都挺成功的,很好奇你有没有做失败的?
毕玄当然有后来做完T4我还去拉了一个业务项目。因为我一直做基础技术很多人就觉得基础技术没有前途然后我就听他们忽悠找了几个人私下攒了个业务项目淘宝首页链接转化率的优化的一个工具。
极客时间:这种工具需要报备吗?
毕玄:不用,因为我们拉的是负责这条线的产品,所以产品是认可的。但上线了觉得效果不大行,看来做偏商业的业务不是我的长板,后来我觉得不擅长就不尝试了,还是继续做我自己相对擅长。
 
极客时间我们继续聊回T4你们虚拟团队私下搞了多久
毕玄因为都不是我们的主业干了可能有半年多应该是到了2011年我们确实觉得这个事情可以干了我就去跟当时的老板正明章文嵩聊了一下决定不带HBase团队专职做T4。T4应该是最早的容器跟百度同年开始的但是阿里高层的支持原因进展速度慢很多。
极客时间:什么支持原因,可以多讲下吗?
毕玄:因为当时阿里已经有阿里云了,理论上讲云是阿里集团战略,肯定是重点发展的,公司希望大家用云的技术,整个阿里都跑在虚拟化上,而不是你们自己又搞一套容器化。
虚拟化,通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。-
容器化,把软件代码和所需的所有组件例如库、框架和其他依赖项打包在一起,隔离在自己的容器中。
但这就是技术之争,我们认为虚拟化不是未来,容器化才是,不是说我们不支持集团战略,是我们认为这个技术方向如果抹杀掉了,对阿里未来在技术领先上会有一些影响,所以我们希望两条路都保持。当时有很大冲突,但反正我们还是顶住了压力,就一直没用。
极客时间:感觉你们团队的价值当时不是很受认可啊,会不会因为公司当年正飞速发展,大家对成本的关注都很少?
毕玄:对,他们觉得你们搞这?搞啥呢?但正明还是很支持我,他是个偏技术化的人。
说实话如果站在公司整个业务层面看,我也会认为没有太大意义,但我站在公司几年后看又觉得还是得干。反正我很坚持。他们尽管有些也反对,但他们觉得你要干,好像也拦不住你,加上又有人支持,算了你干吧。
所以就干了好多年,准确来讲我一直带着,尽管后来还带了其他团队,但这件事都在我手上。
极客时间:当时又是前期走弯路,又是集团的压力,你为什么会那么坚定要把这个项目做下去?
毕玄:就是技术走向的判断问题。对于云来讲,它确实要走虚拟化,而不是走容器化,否则它没办法对外提供,但是我们认为虚拟化的未来是走向容器化。
因为淘系我们最早就是虚拟化之前也试过一虚三但是利用率还很低继续试发现内存超卖不好弄才到容器化T4。所以我们相当于从虚拟化推进到了容器化然后你们说要支持云只做虚拟化那我们技术的人当然不同意。
除非行政命令,集团说必须不允许搞,那我们只能认。但内部一定会引发非常大的反弹,因为技术的人最反对行政命令,我们讲的你没有认可,举着一个战略就说要站在战略的角度,虽然我们也能理解,但技术一定会去争取,我们说,我们会在内网掀起讨论。
其实内网之前专门有过讨论,简直火爆到吵架了,因为对技术走向的判断本来就很主观,我说是这样,他觉得不是这样,这是没法聊的。当时斗得确实比较厉害,很多人认为我是最反对阿里云的代表,因为阻止了他们把技术体系推进到淘系,而淘系又是最大的规模。其实不是,但反正也就这么过去了。
极客时间:你们能这么坚决,有没有部分原因是你跟多隆搞了小半年,确实有成果能拿出来?
毕玄:效果非常好,所以我们觉得这一定是未来。
极客时间:你判断这是未来,除了有些成果,还有没有别的?比如说外界参考?
毕玄外界没有Google都很保密纯属我们觉得就是这样子。
极客时间既然有成果当时你们没有拿成果去跟淘宝总裁说T4这个技术方向很有效果而且一定是未来
毕玄:但没用的,我也承认这个决定很难做的,因为一站在集团角度支持云是正确,可能更值得,二站在技术角度他没有办法判断,这就很难决策,所以最后他就不决策了,不决策相当于是保护了我们。
因为他们也确实害怕技术人员的反弹,技术人员会觉得信仰被冲击了,是很可怕的。就像为什么语言之争有些时候会上升得很夸张,对他来讲这是信仰,你不能突破我的信仰。技术方向趋势这种东西本来就很主观,不到那一天你怎么知道,所以两个人聊是不可能聊到一起的。
极客时间:总的来看,你们的团队方向和集团大力倡导的方向不一致,能做起来确实是够幸运的。因为对大厂来说,比如一个方向很好,它业务特别庞大,用了是不是就会变成大方向?
毕玄对。但后来因为Docker起来了也不需要再说什么自然能得到大力支持。
 
极客时间后来Docker起来了我记得你们把T4和Docker的技术做融合了那个时候有波折吗
毕玄那不会都是我带的团队我们坚信这两个东西应该合掉因为Docker还是有做得很好的地方。
极客时间是T4去融合Docker还是反过来
毕玄最早是T4融合Docker做了阿里Docker然后包括开源的Pouch。但这也是我自己当时的判断我觉得阿里需要坚定地把容器相关的技术多掌握一些不要过度依赖Docker。
原因是我当时从整体看觉得Docker未来可能比较危险。从竞争角度上讲Google在不断地让Docker剥离化想把Docker变成一个标准实现这是Google的诉求如果按这个趋势发展Docker这家公司能不能活下去可能会成为一个问题如果他活不下去我觉得这个世界会需要另外一个标准阿里是有机会的。
所以我当时让团队一直保留这个可能性现在应该还是有可能性。但这是很主观的因为团队很多人希望不要自己搞全部基于Docker算了包括高层也有很多声音。但我觉得对阿里来讲还是值得保留在这方面的能力因为你是一家做云计算厂商的公司你不是一家单纯用的公司。
极客时间你的这种判断力不管是前面对T4方向的坚信还是对Docker可能被Google边缘化的分析后来都印证是对的是不是大家说的技术方向感
毕玄对技术Leader来讲其实判断是对是错不重要因为对方向的判断是很主观的没到那个时候很难说谁对谁错。但最怕你没有判断外面怎么样你觉得就是怎么样那这就不要干了。
有想法没问题你可以说你为什么这么觉得我可以说我为什么这么觉得两个人至少都可以抛出来讨论实在达不成一致也没关系这很正常反正最后没有办法达成决定说白了就是看谁地位高谁是团队的大Leader因为我背了这个职责那我做这个决定自然也会承担这个责任但反正大家都说清楚了也没有什么。
极客时间:那做判断做决策这事,你有什么心得吗?可以多聊一下。
毕玄:还是看你怎么思考,就是之前七公跟我聊的你的出发点很重要,为什么要做这件事。首先你一定要想清楚,你的出发点是为公司更好的发展,如果很多人想明白了就会知道,公司好了你自然会好。
所以站在公司的角度,越高的层级,要考虑的就会越贴近公司的核心,像阿里,我们说越高的层级,越应该去看阿里集团面临了什么挑战?
当然阿里内部有时候也被我们带歪了,后来很多低层级的人上来也讲阿里集团面临了什么挑战,这跟他一毛钱关系都没有。要想好每个位置它的要求是什么,大家不能把位置给搞乱了,因为搞乱了那个位置就没人了,最可怕的是公司组织结构是这样设计的,结果发现所有人都去做别的了,没有人干活,就乱套了。
极客时间:所以是要结合团队和自己的位置,往上看。
毕玄:对,但越高的人他肯定看的就越大,比方说你在云板块,首先你要想做什么能帮助云更好发展,去解决它的问题,然后你觉得跟你团队最相关的可能会是什么。
如果你有了这样的出发点,再就可以讲你自己想做的可能是什么,基于各种判断,比如商业竞争上的,云可能涉及技术趋势上的,业务涉及业务趋势上的,其实都一样。
Leader最重要的说白了确实在赌未来赌未来一定会走向哪里这是很重要的所以我觉得只要自己能逻辑闭环就可以但闭环其实很难。双方逻辑都闭环但方向判断不一样的两个人确实很难达成一致但这个我们是可以接受的。
极客时间:因为一旦逻辑闭环,会不断地给自己讲这个故事,他就很难插进来新想法?
毕玄越高级别的人越大的Leader肯定是越难被影响你会觉得他很偏执建立在自己很强的相信上否则他很难走到这个位置。这其实没错如果他太容易被影响这样的Leader也太可怕了你今天汇报一下是这样明天你汇报一下又变了那完蛋了这家公司估计也干不下去。所以当Leader最好不要太急做决定。
 
极客时间现在你再回看当年自己T4这种虚拟团队做项目的方式你会比较推荐吗自己先看好方向再私下拉人一起做。
毕玄其实后来我也不鼓励大家这么做T4让我觉得纯靠拉虚拟团队去做事是不好的最好还是组建一个正规团队去做。
极客时间:你说的“不好”是指的哪一点?不好做成事?
毕玄:拉虚拟团队最大的问题是会被认为有个灵魂人物,外面看到的就是一个人,背后的人全部被隐藏掉了。
我们用的都是业余时间,但他在主管那侧没有任何加分,甚至搞不好还减分,因为主管只看主业。所以最后你就会看到,你拉了一个虚拟团队做这个事,最后获得所有东西的人都是你一个人,这就很不好。
但是正规团队就不一样了,对不对?这是团队获得的。以前我也不想带团队,因为以前在阿里,想干什么基本都能用虚拟组织干,没有正规团队其实很爽的,因为你想,你对大家又不负管理责任,大家纯凭梦想,梦想驱动然后去做一件事情,那你做着不是很爽?如果组建团队就不一样了,你必须背上团队责任。
但我后来觉得还是得带团队,你才有可能做对这家公司更大改变的事情,因为纯靠虚拟团队规模也不可能很大。
极客时间T4的团队规模是多少人
毕玄人一直很少七八个左右后来到2016年左右才变成一个三四十人的大团队但那已经是公司层面上大家公认这条技术路线非常重要了。
极客时间:但你前面说一个新项目刚起来的时候,需要先看到一定成绩,这个风险是正规团队能接受的吗?
毕玄我觉得取决于Leader比如团队Leader如果能接受把10%的人投入在一个想尝试的或者团队大家觉得很值得尝试的方向。
后来我带600人的团队系统软件事业/研发效能事业部/中间件就搞了两个我们认为未来对技术侧很有影响的方向我们内部叫X方向然后我跟全员说愿意的就可以去但要求是加入的时候也意味着要从原来的团队脱离。这对很多人是很大的挑战。
我也会说清楚你做这件事情一年之内想得到很高的绩效评价说实话可能性基本是零因为未知方向挑战非常大问题简直太多了。但作为Leader我愿意投这样的方向所以我可以保障你们不会是最后的一档。
极客时间:脱离原团队,不能兼职?
毕玄:我绝对不允许兼职,因为兼职就有退路,这其实相当于考核试探,就看你愿不愿意为梦想买单。否则如果是业余,所有团队都会说有兴趣,反正无所谓嘛,做失败了也没关系,做成功了还白捡一个加分。
极客时间:那风险很大啊,有多少人愿意去?
毕玄我们发现很成功有很多同学很满意新方向也愿意离开自己的位置甚至有个带着几十人团队的P9他都愿意放弃原来的团队加入新项目七八人去做一个很未知的方向。
极客时间:这挺厉害的,确实能把一些人筛出来。
毕玄:但这个形式后来我发现了很大问题。
极客时间:项目很容易死?
毕玄很容易死倒不重要重要的是如果我不带这个团队了会发生什么。因为这是Leader的主动行为我一不带大家就会认为这两方向不要搞了那这帮人一年不就白干了。
所以这种也建议不要随意尝试除非是组织性的行为或者是创始人创始人反正不会走那没有问题最怕的是个体的Leader行为。后来我就基本不做这种了这样的话不管我在不在都还能持续。
极客时间有点好奇X方向现在呢
毕玄后来就挂了有一个应该还在做但就不会像当时那么多的资源。如果我在我肯定会保持它因为他们做到一定成果了我会加大投入去赌这个全新方向能不能做起来。但这就是Leader的判断新的Leader可能认为这个方向不是未来就不做了都是很主观的。
但从组织激发角度上来讲,我自己觉得这是个很好的方式,我们能看到在这个团队,有些人是非常愿意为梦想承担风险的。
 
水友讨论区
到这里,今天的对谈就暂时结束了,主要聊的是毕玄的第一段转岗成事经历。
做完中间件HSF后他发现自己作为Leader不知道该干什么了跑去数据平台做了HBase的落地但做了一阵发现自己没有足够动力又开始迷茫自己到底该干点啥结果从书中找到灵感去做了最早的容器T4。
作为一名技术人员毕玄从2011年就开始关注业务增速和成本增速了虽然在现在的大环境下降本增效成了普遍口号但当时各公司正处在高速发展期很多人可能会觉得关注成本没必要格局不够大但居安思危毕竟不影响业务发展的成本控制手段从设计到落地可能需要好几年才能看到效果。
不知道你对今天对谈的哪个部分更感兴趣,我还是简单列了三条:
“一家公司如果不在乎成本的话,迟早有一天成本会超过收入”,关于成本增速和业务增速,你是怎么看的?你的团队/公司有采取什么措施吗?
“还是得带团队才有可能做对这家公司更大改变的事情”,你有加入过虚拟团队或者未知方向的团队吗?体验如何?
“其实判断是对是错不重要,因为对方向的判断是很主观的,但最怕你没有判断”,对技术方向的判断,你是怎么看的?你的决策出发点是什么呢?
自由发言环节,期待你的想法,我们留言区见。下一讲我们将聊到毕玄作为总架构师做淘宝异地多活的故事。
拓展阅读
1. 这是一扇传送门,今天简单聊到对技术方向的判断力,如果你想了解更多可以去这一讲,我们将专题讨论如何思考技术演进方向。
2. 对HBase感兴趣可以看这篇阿里技术星球的文章阿里HBase超详实践总结 | 一文读懂大数据时代的结构化存储
3. 物理机 -> 虚拟化 -> 容器化的演进毕玄之前写了这篇回顾过去看IaaS的Next

View File

@ -0,0 +1,273 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
06 异地多活:技术圈子的人,见过猪跑很重要
你好,我是叶芊。-
 -
上一讲主要复盘了容器项目T4从立项到组织、落地的过程今天我们聊的主题是异地多活这是毕玄第一次做大的系统级架构演进。-
 -
作为14年阿里职业生涯中的三大亮点之一当时他要面对上千人做一场世界上完全没有参考方案的架构大家都认为做得很成功但身为总架构师的他却说“这个项目我做得不好”。-
 -
他遇到了哪些问题?解法上又有哪些缺陷?我们开始今天的复盘会。
 -
极客时间看你的经历T4之后就是异地多活了是你主动的还是被动分配的
毕玄:说分配的话,异地多活也能算,因为当时刚好是我转岗。
当时2013年T4我做的太难了集团各种阻力再加上运维侧支持力度不够我那个时候在核心系统部正明那就决定转去运维团队因为我觉得如果我在运维就可以把T4落地了。
我就去了那边,正好运维的人跟我说现在要做异地多活,要不你来干?因为异地多活在前一年其实失败了。
极客时间:做过一次了?失败是什么原因?
毕玄:淘宝已经做过一次,蚂蚁也做过一次,也失败了,因为技术上还有很多问题没解决掉。所以就任命了两个新的架构师,我负责淘系的异地多活,俊义负责蚂蚁的异地多活。我们俩各自做了一套方案就开始落地了。
异地多活的难点是因为全世界完全没有可参考方案。Google虽然有全球部署但广告搜索不一样比较简单腾讯也有但腾讯是社交也比较简单交易类型的网站一家都没有我们最早本来想看亚马逊结果发现他也不做了。到这里我们就很痛苦。
我们第一次开会,下面各方技术都问我,这个项目的方案是什么?我说这个方案现在还不知道,等我们先摸索一下。下面全听傻了,说还能这样。所以这个项目就很槽糕,我们花了一年左右来摸索方案到底是什么。
极客时间:一年出方案感觉挺久的,当时你们是怎么做的?
毕玄:做这种大的架构,一般是你首先有了一个系统全貌,其次你有了解决的思路,你就可以大概知道我需要哪些人来帮我,然后你去找各领域的人,告诉他我的思路是这个,你看这个系统里怎么改能做成这样,慢慢拼出一张图。
但是异地多活是我第一次做这么大的,刚开始的时候确实很难,因为你不懂一个这么大的系统它涉及哪些地方,你又没办法让人跟你讲,因为涉及的人太多了,必须要你先提一个思路,然后大家开始探讨。
所以我们先有了个大概想法,但这个想法多成熟肯定是不知道的,只能先做一部分看看。但是因为没有全貌,不知道要改哪些,一开始就漏掉了很多,第一版设计方案最后要上线了我们才发现还有一堆要改的东西漏改了,然后临时去做那堆的方案。所以主要问题就是漏,漏这漏那。
花了半年多,我们逐步把方案试出来了,方案清楚了后面就很简单。但是前面比较难,如果有参考,你也有信心,大概也知道怎么做,一切都会好很多。
 
极客时间:边试边做,不会有人质疑你吗?
毕玄我现在觉得跟信任有很大关系。当时做这个项目我上面所有的Leader没有一个人过问我也没有人挑战我否则一定会很多人挑战这啥也不知道就敢上线你胆子也太大了。
极客时间:会不会因为别人没法挑战?他也不知道方案。
毕玄:对,所有人都没有方案,但即使后面有了方案,还是有人会挑战觉得你们这方法也不好,不靠谱,有没有更简单的?但我们比较强硬。
当时异地多活我是面对上千人做完我刚好P9P10晋升面试就有人问这些人都不向你汇报为什么要听你的我说最关键的就一点因为我还掌握着所有人的机器。你要机器是我给你的我给你的就是异地的机器所以你必须配合我做异地的方案如果你不做我无所谓但你上线肯定会出问题反正你想逼我给同一个地方的机器我是给不了的没有你找谁都给不了。
极客时间:这好强硬,不会反弹吗?
毕玄:业务方很多抱怨,所以我后来跟很多人总结说,这个项目做得不算非常好。
而且从团队层面上来讲也不好。当然大家都认为很成功,项目组得到了很高的评价,也能看到我因为这个被晋升了,但这个项目里同样被晋升的人太少了,当然还有一些低级别的晋升,但高级别的差不多就我一个。这就是最大的败笔。
一个项目,如果对公司有非常大的价值,理论上应该有非常多的人被晋升,这也是你在公司能更好做成项目很重要的方面,因为各方都获得了利益。你想,如果只有你一个人获得利益,肯定是有问题的。所以异地多活做的整个过程,抱怨非常大,只是因为我们确实相对强势,但这种强势后面其实也会引发一些问题。
极客时间:但最后异地多活也确实是做成了,影响力也比较大,大家可能也没法说什么吧?
毕玄:如果没做成,那肯定挂了。但即使成了,还是会有人有很多看法,这个我也认。
因为对一家公司来讲,以战养兵是最重要的,你一个这么大的战斗,竟然没有培养出很多的人,这确实有问题,我是承认的。
极客时间:没有培养出人?具体是什么原因,人才没有历练到位吗?
毕玄:可能很多是曝光的原因。比如异地多活对外曝光全是我,讲各种方案等等,后来其他的项目比如统一调度,我们就会注意让更多人曝光,哪怕有些演讲看起来好像很不技术,但我们觉得对公司来讲这还是蛮重要的,公司应该看到更多人才。
因为一个这么大的项目,总不可能是一个人就干成了,肯定是有很多人一起,但是就看这些人有没有机会被更多高层知道。说实话高级别晋升,贡献很重要。但高层会认为那不就是他吗?其他人做了什么?高层认为就因为他,所以做成了。其实不是这样。
极客时间:一个项目,对贡献曝光上的关注,是不是参与的人越多,越重要?
毕玄:对做非常大的项目很重要的,越是大项目,越要把大家团结住。
后来再做项目,我就会特别关注参加了这个项目的核心人员,他们情况是什么,有多少人会因为做了这个项目被晋升上去。如果比较多,说明这个项目不仅有个很好的成果,还让整个团队的人得到了很好的成长,那这就是一个非常好的项目。
你想,大家一起做了一个很大的事情,对公司有很大贡献,但是只有你有成绩,下面的人没有被认可,那这些人会很受不了,我明明干了很多事情,最后为什么还是没有得到认可。业务方就更不爽,因为他觉得这又不是我主要的事,浪费了我很多时间,我什么也没得到,然后你们都得到了,替你打工。
再加上光环如果过度集中在一个人身上,那个人会成为众矢之的,肯定是这样。因为其他人会觉得我无非是成就了你,所以后来做很大的项目我们会特别注意,不要塑造一个神,不是好事。
 
极客时间:就项目曝光这一点上,现在的技术大会阿里确实会有很多人出来分享,是你说的为了增加曝光吗?
毕玄:对,阿里有几年是高峰,现在可能少一点,都是去站个台。
极客时间:现在不多了是为什么?
毕玄:以前对外分享,内部的定调就是在中国的自由分享,希望跟大家交流,因为技术很需要聊,你的想法可能跟别人不一样,而且可能别人干过,你实际上是想找一个干过的人跟你聊一下,看看自己想的有没有问题。但后来我们只能去树立技术品牌。
极客时间:做技术品牌的转变,是因为什么?你们是什么时候开始做的?
毕玄2009年。当时我们第一次校招出去之后打击太大了因为在09年我们认为淘宝已经是集团最牛的一家公司了淘宝的人在阿里横着走因为说实话其他公司量比我们小非常多而且我们也逐渐接近盈利当然觉得自己是最牛的。但我们出去才发现根本不是这么回事。
学生都说淘宝是什么公司不就是卖东西的那你们是不是专门帮人卖货他们觉得肯定是雅虎、阿里研究院、B2B这些因为B2B是香港上市公司他们觉得肯定这几家好。淘宝除非前几家我都没面过那我再来你们这试一下。我们就深受打击。
所以淘宝从09年决定做技术品牌建设就参加了很多技术大会包括QCon等等都是这个目的。这也是菲青提议的要树立起淘宝是整个阿里集团技术非常好的一家。
极客时间:开始是交流,到做品牌,现在就站个台?这个变化是为什么?
毕玄:对从出来交流的人你也能看出来,阿里以前参加大会都是相对资深的,高级别的,但现在阿里高级别的人都不出来了。
近几年阿里的风格是,国内都派相对年轻的、有潜质的人练习他的分享表达能力。因为我们觉得工程师要往更高层走,你表达能力必须要的,毕竟你不是一个人做,除非都想成为多隆那样一个人守到底,但在现代化软件下也很难,一个人再强也不行,所以公司肯定需要这种类型的人。
剩下更资深的人都去国外了拜访顶尖的公司顶尖的名校。公司我们只拜访Google、Facebook、AWS这些最顶的其他的都不太见他们对我们有兴趣但我们可能对他们没有兴趣然后学校我们去拜访斯坦福、麻省这种规格的。因为后来我们觉得只有跟这些人聊互相才有一定的交流空间。
极客时间:交流空间?是指对话背后公司的技术问题吗?
毕玄因为说实话到现在为止中国很多公司去拜访Google都没有交流其实还是个学习状态。包括我前几年带队去Google拜访也还是这种状态都是我们问Google技术上的挑战看他们是怎么做的然后我们问完问他们对我们有什么问题没有任何问题因为Google能从你问的问题推测出你的状况就没有任何兴趣跟我们聊。
像Facebook就不一样阿里很明显以前也几乎全是我们问他问题但现在Facebook会问我们很多问题技术地位已经不一样了。
极客时间:推断你的发展水平?
毕玄:对,我们以前问他们很多问题,他们会说这个问题是我们七年前做的什么什么东西,有论文讲过了,你可以去看。这就很尴尬。
跟现在中国很多公司问阿里一样比如说问分布式阿里都告诉你我们是在2008年做的相当于是已经是14年前了那你觉得对阿里来讲讨论这个问题有多大意义就没有了因为阿里觉得我已经成功不想跟你们讨论这些了。所以这就是纯单向交流双向要求很高的。
这几年特别明显,很多大公司都这样,因为他们的水平确实已经能跟国外顶级对话,对国内的很多交流就没有任何兴趣。有一些公司愿意去,肯定是为了别的目的,比如说卖货这种商业诉求,才去做纯单向。
极客时间:不只是讲的人没兴趣,听的人如果没有那个场景不遇到那个技术问题,是不是也听不明白?
毕玄:听的人,听完也只是觉得啊好牛,然后就没有然后了,就走了。
所以最高质量的交流肯定是一个非常小的圈子。但那个小圈子是很难进的。我后来带团队都说,比如去硅谷,如果你能找到硅谷这个领域最顶级的一帮人,大家一起吃个饭,这就决定了你有没有进圈。
其实所有的顶级领域最后都是混圈。只不过计算机的这个圈子相对来讲更难靠“混”混进去,因为这个圈子的人彼此文人相轻,他关键看你做过什么,不会因为你是某公司负责某团队的人就觉得你很牛,不会的。所以混进技术圈子难度太大,但你如果能进这个圈子,说明你确实得到一定的认可。
 
 
极客时间:混到这种顶级圈里能拿到什么?一些前沿问题的参考方案?像异地多活当时因为没有参考方案踩坑很多。
毕玄:对。因为面对一个问题,如果你不知道这个世界上已经有的、最好的解决方法到底有哪些,你就会觉得自己的解决特别牛,但其实可能是别人玩剩的。
架构跟写代码不同,架构最大的问题是如果解决思路有问题,最后的返工可能非常吓人。
阿里在这个地方犯过无数错误。以前做分布式的时候,我们只知道要做成分布式,但我们没有想清楚,一个公司的整个系统换成分布式以后,对团队会带来什么挑战?会有哪些问题?这些如果在架构层面没有解决,后面再解决就很难。
现在我们会说“见过猪跑是很重要的”。以前我们觉得见过猪跑有什么重要的,反正我现在没想好,以后可以再补嘛,我可以慢慢练成见过猪跑。但是架构这玩意,你现在没看到,未来要补的时候代价可能极大。所以架构师,对视野的要求非常高。
极客时间:架构的“看到”和“做到”,哪个要求会更高一点?
毕玄:不是一个维度,因为“看到”有些时候是经历问题,另一个就是天花板问题,你有没有办法知道天花板。
中国其实很多人并不知道天花板,有人会说看一些大会就可以了,认为大会展示的是天花板。但其实可能根本不是。而且现在大会里还有很多商业目的,就更完蛋,其实他就是忽悠你的,在带节奏,但你不一定知道,因为你外行,这很正常。
极客时间:那你们去哪里看天花板?
毕玄其实要看学术论文。你看Google对这个世界的影响在技术基础层面影响非常非常大但它所有影响都体现在哪里不是技术大会是它发表的论文虽然大家老觉得发学术论文都是忽悠但必须说真正改变这个世界技术的都是学术论文。只不过学术论文里你也要挑因为混的确实也很多。
极客时间:挑论文,有什么具体方法可以讲讲吗?
毕玄最简单的办法当然是先找你的领域含金量最高的学术会议因为他论文的水分相对低一点而且工程界的也会去那发像Google发论文很大目的是为了让他们那几个人去评美国的科学院院士否则工程界的人根本不想写论文的没有必要但要评院士他就必须写就写了那几篇。
看这种论文,第一你可以大概判断一下方向,因为在这种含金量很高的会议上,他发的论文肯定解他的问题,非常具备前瞻性,或者非常具备挑战,或者价值非常大;第二他解决的方法肯定是论证过的,也具备一定创新的。因为论文要的是创新,不能说和别人解过的一样。
加上工程届的论文因为是工程公司发的像Google这种公司都是工程类他肯定会有实践兜底。当然必须说有真有假既使Google也是他以前还发过Omega之类的调度系论文但Omega根本就没有大规模应用他讲的是很美好的一个东西。
技术上是可以编的,但你最后要了解一下工程上它到底怎么落地,到底碰了什么障碍。这些肯定不会在论文里讲,你需要自己验证,你会听到很多声音,因为技术圈声音很多,有真有假,这就取决于你自己有没有能力判断。学术论文也一样,你要跟这些教授直接去聊或者侧面打听到底什么情况。
极客时间:为了看到天花板,成本应该挺高的,淘宝是怎么做的?
毕玄:以前我们每年会专门关注这种顶级大会,不断研究里面发表的所有论文,去判断我们在这个问题上现在的解决方案跟他们对比大概是什么情况,未来是不是有更创新的方向可以去尝试。
因为对公司来讲如果一个架构师不知道天花板肯定不是个足够好的架构师。以前很多人会在PPT上写我的解决方案是全世界最好的但你得说清楚你为什么最好如果你有论证那我们可以认。
或者你说现在不是最好的,但你知道自己的位置,这种也可以,因为这个跟你公司的工程状况有关,工程落地是有节奏问题的,知道最好的是那样,只是我现在做不到,没关系,所有人都这样。如果知道天花板了,就不怕,不知道,你可能也不怕,但是对公司来讲就是一个很可怕的不怕。
极客时间:你有怕的阶段吗,当时做异地多活就没有参考方案?
毕玄我也不太怕因为我觉得大不了自己折腾。像2013年做异地多活我们心里当然有担心但关键是这个问题对公司来讲是一定要解决的那就没啥那就试。
因为工程说白了,毕竟不是科学难题,做工程,实在不行是可以试出来的,只是节奏会长,而且有可能不那么可控,成本比较高。这个主要看信不信,你自己觉得可以搞,就可以。
极客时间:那你们招人的时候,会对天花板的认知有要求吗?
毕玄:我们面试判断的核心就是看你对自己项目背后技术的理解程度,包括这个项目的问题、你的解法、业界对这个问题的解法、最后你为什么选择了这个方法而没有选择业界的方法。
极客时间:这个要求高吗?
毕玄:非常高,如果你能回答得非常好,说明你的选择做得非常理性,这种我们觉得简直是太完美的候选人了。
但事实上知道天花板的人很少了,这是要花精力的。很多人不愿意干,觉得没有必要,不就是个需求?我干了就行了,你管我怎么干的,先不先进什么的都不重要。但是有些对技术非常有热情的人,他其实很有兴趣去了解,这个差别非常大的,而且很明显。
 
极客时间:天花板的问题,因为阿里是大公司,有资源可以让大家去国外去交流,但是很多中小公司没有,怎么办?
毕玄:我们觉得也可以关注,不一定要跟别人直接聊,但是大概要知道一下,比如顶会论文现在都在探讨什么问题,有什么创新性的解决方法。
如果你发现,顶会论文关注的领域跟你的领域一毛钱关系都没有,这说明他们认为这个领域目前没有什么可突破的空间,那就要赶快想下一步了。
极客时间:这是需要主动去关注?
毕玄:那必须主动,被动不可能的。架构师没法被动。
极客时间:但是有些架构师可能是被安排上去的,对天花板的了解不是很好,怎么办?
毕玄:这也确实存在,你被推到了这个位置,不得不去解决这个问题。有些人是这样成长起来的,很正常。
但这就太看命了,而且对公司来讲,可能会稍微有点问题,因为问题你是解了,但是解法可能有问题,最后会给公司埋下巨大的坑。
所以回顾当年,大家都觉得淘宝做得特别好,但事实上我们一帮人看,都觉得自己做的简直了糟糕到不行,有些就是我们当时埋下的坑。但如果让我们再去做,会完全不一样,这说明我们确实比当年更好,因为我们现在是见过猪跑的,也知道天花板在哪里。
当年我们其实是知道一些东西的包括Google发的一些论文。但当时我们看了很多觉得做这个没有意义这就是我们的判断过了几年后就发现我们确实错了其实是很有意义的。
极客时间有没有部分原因是你们的业务没有到那个地步还认识不到Google讲的东西的意义
毕玄不是的我们当时也快出现那个问题了但是我们没有判断出来到底会有多严重。但Google是经历过的我们其实应该相信的要相信一个见过猪跑的人他说的是对的不要太自以为是觉得自己想的会比他更好。
工程的很多问题,没有经历,凭空想是想不出来的,比如阿里这么大体量,他在技术上到底面临了什么问题,我们在里面都不一定能想得出这个问题是啥,外围就更不提。所以很多人很难成长起来,因为做一个商业系统的机会就很少,你说你在家里想一个商业的系统是怎么做出来的,会面临什么问题,说实话这就是空想,跟这些真正经历过的人去比是不大可能的。
 
水友讨论区
对谈到这里就暂时结束了,主要聊的是当年毕玄那伙人做异地多活的故事。
异地多活的技术资料阿里之前公开很多了,这次访谈没有太细致地聊这一话题(如果你对技术细节感兴趣,可以看看拓展阅读的链接),重点放在了对整个项目的复盘,从牵头,到具体落地,到收尾,以及后期曝光的全过程。
在对谈中,我印象最深刻的是很多人觉得异地多活做的很成功,但他却反思自己做项目的方法有很大缺陷,强调做大项目不要塑造一个神,不是好事。
“在公司能更好做成项目,很重要的方面是各方都要获得利益”,关于这一点,你怎么看呢?在自己参与的项目里,或者见证过别人的项目,你有相关案例可以分享讨论吗?
另外今天也重点聊到架构师如何拓展视野,毕玄认为“对架构师来说,见过猪跑是很重要的”,总结架构师会面临两大困境:没见过猪跑的经历缺陷、对天花板认知的不足。
对这两个问题,你怎么看?平时是怎么处理的呢?
关于天花板问题,毕玄的建议是先找自己的领域含金量最高的学术会议,如果你有兴趣也有这方面的需求,可以实操一下,如果有帮助,记得回来还愿 :)
如果你有其他有感想的话题,欢迎留言,参与讨论,说不定在留言区你能结识同领域的开发者哦。
下一讲我们将讨论毕玄的第二大段转岗经历——研发转运维,这段经历我觉得影响了他后面的整个职业发展,下一讲见。
拓展阅读
1. 这是一扇传送门,后面有一讲我们会专门讨论架构师到底该怎么提升,毕玄也“被迫”总结了一些方法论,期待和你再会。
2. 如果你对天花板感兴趣,可以看这篇毕玄之前写的拓宽技术视野的方法论:如何避免成为井底之蛙
3. 异地多活的具体技术细节,感兴趣可以看这个来自阿里开发者的链接:“异地多活”设计辣么难?其实是你想多了!
4. 之前InfoQ也就异地多活的项目采访过毕玄从冷备到多活阿里毕玄谈数据中心的异地容灾
5. 《超级访谈:对话张雪峰》中也提到饿了么做异地多活的经历:不够坚定:异地多活没有一步到位的遗憾

View File

@ -0,0 +1,303 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
07 运维团队:我能干,只是我不想干而已
你好,我是叶芊。-
 -
上一讲我们聊到异地多活,毕玄说他能做其实是因为自己正好转岗去运维了,但是从研发转岗到运维?这似乎也是一个不太寻常的职业方向横跳。-
 -
作为阿里整个运维团队的Leader我们问他对普遍存在的研发-运维岗位认知鄙视链是怎么处理的,他却说:“说实话,我也觉得解决不了。”-
 -
运维团队面对的究竟是什么样的难题?又是如何置死地而后生找到了自己的团队价值呢?
 -
极客时间:异地多活的时候你就已经转去运维团队了,去了以后你觉得外界对运维最大的误解是什么?
毕玄:我以前是研发线的,研发线会觉得运维没有什么技术含量,解决不了的,还是要研发解。
说白了,大多数研发都认为像运维、测试,我完全可以干,之所以我不干,只是因为我不想干而已,但研发这活不是你能干的。如果有专业壁垒就不一样,比如研发对数据库就不会这么看,因为他觉得你那活我确实干不了(笑)。所以他自然会觉得我在鄙视链的上游,你运维在下游,很正常。但我去做运维以后,就跟很多人说真的不是这样。
运维是一个知识面非常广的岗位。如果你做研发,说实话知识面很窄的,很可能连你的代码在哪个机房、机型是什么、什么样的网络条件、运行环境是什么样的都不知道。我以前刚到运维团队的时候去开会,他们说的是啥我都不知道。
极客时间:像机房、网络条件等等,研发会不会觉得这也不用太关注?
毕玄:这全部是基础设施,但如果你不知道,做系统设计的时候可能有很多偏差。
后来我去了运维才了解,可能研发你说一句话,运维为了满足你这个条件,花了很多的钱,但你如果在软件侧简单改一下,这个钱其实根本不用花。
但研发人也不懂,运维的人也不懂,他不知道原来你软件稍微改一下,这个需求就没有了,他觉得你可能是个合理需求,然后就去干,这就悲剧了,两个没法对话。因为运维如果没有足够的理由去挑战,那研发侧肯定认为我干嘛要改?所以后来我们去跟很多研发说,要整体看一下成本投入,那研发很多就懂了。
极客时间:还有什么新的认知吗?
毕玄:还有对基础设施的了解。其实阿里后来做的很多创新是因为我们对基础设施演进的了解。
异地多活不用说比如后来我们做统一调度对整个基础设施有很多改造。因为对网络有了一定概念知道网络带宽在不断演进原来是万兆现在能到25G、40G、100G以前认为两台机器之间网络带宽太小在软件侧做了很多东西其实现在是不需要的因为网络可以支持才有了现在的计算存储分离等等。
如果软件的人不懂这些,他根本就想不到很多基础侧的创新。硬件也一样,虚拟化下沉到另外一块芯片上,是因为他对物理机型有更多了解,知道了可能性是具备的,不光是从存量来看,也能从运行环境各个方面来看。
这都是因为这些人知识面非常广,如果你了解很多,整个创新其实能做得非常好。
极客时间:因为了解,才有可能性?
毕玄:对,我们之前也觉得做基础设施的人啥也不懂,因为研发始终认为自己是最牛的,除了业务以外,技术线研发肯定是站在顶端的,觉得其他所有人都是为我做配套的而已。
但是如果你不知道网络可以这么变,不可能敢提出在软件侧要做计算分离这种事,因为他根本就不可能实现,很多都是这样,包括基础设施的大机房建设等等。
所以我自己觉得运维这段经历,一是让我做了异地多活,这还是挺重要的,因为我以前没做过这么大的,也基本不涉及业务,我算是做了异地多活,大家才觉得你是能做整个大系统架构的人,都认可你是可以的。第二个就是知识面的拓宽,我终于知道了一个系统真正的全貌,因为系统事实上都涉及基础设施,其实你也逃不掉的。我们可能认为好像不用管基础设施,但事实上如果不管,软件设计或多或少会有点问题,就不是那么合理。
 
 
极客时间:异地多活之后,阿里有些运维侧工具就起来了,你是参与了吗?
毕玄我是2015年下半年开始带整个运维团队的当时想让这个团队发生一些变化。
运维以前很苦,几乎所有涉及线上操作的工作全都是运维团队做,一天发几百个系统,根本没法干活,虽然发布也是一套系统,但必须要人点,线上还要盯着看,如果有问题还要查问题,背后还有机器管理等等,杂事非常多。
以前有个比例1个一线运维要对100多个研发所以他每天光是回答问题比如机器在哪、怎么用各种不用干别的就满了所以非常苦。但是大家又总觉得你们运维既然这么苦为什么不做一些工具解放自己是不是不想是不是没有研发技能
我去了才知道说实话多数运维做工具的技能还是有的但事实是他每天根本没有时间做工具。因为研发是很需要连续性状态的写代码的人都明白你不能说写个十分钟被IM弹出一个消息回复完半个小时后好不容易进入上下文结果又被打乱那代码就没法写了。
后来我就跟很多人说,那是因为你没干运维这个事,你去了之后会发现你也没空。以后中国的运维大会,可以让一线运维的人来个吐槽环节,绝对能把研发喷死。
极客时间:因为比例不够,每天杂事多,太忙没时间做工具,就一直在给支持。
毕玄:对,恶性循环。因为理论上你讲如果运维有很好的工具给研发,他是不会问你问题的,但是这是个悖论。
而且阿里当时也有专门的运维工具团队,就是我带的,但通常来讲业务运维团队跟运维工具团队很容易产生矛盾。
极客时间:运维工具团队给业务运维做工具不是很好吗,解掉刚才说的没时间做工具的死循环,为什么会有矛盾?
毕玄:运维会觉得你工具团队做的东西不满足运维的需求,但是他们一天到晚实在太忙,工具如果不好用,他觉得我还不如手工,因为如果已经习惯了,其实手工效率也不会太低。但是工具需要成熟又需要不断使用。
所以这个局面,让运维这一侧的我们都觉得运维团队未来会越来越难,成长空间很有限,因为干杂活怎么有成长空间,但活又很重,对一家公司来讲,没有这样的人不行。但有了,大家又觉得这批人好像技能不行。
这样恶性循环下去的话,之后一定谁也不想干了,这么苦而且还全是责任。你想,运维不出问题没什么,不出问题大家觉得这个部门不存在,但一出问题,第一眼看到的就是运维。
极客时间那你15年带这个团队的时候做了什么
毕玄:当时我们就在讨论这个团队未来到底走向什么地方,这是一个非常纠结的话题,这也是后来让我去带整个团队很大的原因,我们想,既然工具和运维很容易矛盾,那干脆合成一个团队得了,探索一下,看看能不能解决。
极客时间:合并之后,探索了哪些方法?
毕玄:我带以后,说实话我也觉得解决不了。
我当时接手最早的想法就是让每个人一天腾出20%的时间来做一些工具的研发,后来发现这根本就不现实。但很多人就觉得是你们团队自己不想或者没有能力解救自己,肯定不是,只是因为有很多现实问题。包括运维的人,你说他不想?他自己当然也想,谁都不愿意每天就做一些很碎片化的工作,大家都想解救自己。
当时Google的SRE大家都觉得是最好的团队对不对但是如果你仔细看关键一他的人多数来自以前非常资深的研发根本就不是运维岗那他和研发沟通包括研发技能肯定没有问题。第二至少我们外部得到的消息是他们的人每天可以腾出30%的时间用来做研发类型的工作,而不是运维类型的工作,那就不一样了。
极客时间Google他们的时间是怎么来的
毕玄:比例问题。如果能有一定的运维研发比例,让运维有时间去学习一些开发的技能,为自己写工具,这肯定满足需求。但是有多少公司能接受运维跟研发的比率是成一定比例?现在蚂蚁是接受的,所以蚂蚁跟阿里不一样。
极客时间:运维研发比例问题本质是什么?
毕玄:其实是分工,就是运维到底是做什么的,这个认知。
比如说蚂蚁现在的安全生产团队,核心指标是整个系统全年的系统稳定性、资损情况,其他不承担的,很多让研发自己做掉。这样有了专业分工,运维团队相当于跟研发团队没有太大区别,只是业务研发团队做的是业务需求,你运维团队做的是运维业务的需求。
但之前,分工上大家就一直觉得运维是给支持的,再加上传统运维确实做了很多偏执行的工作。我不知道中国其他公司的状况是什么,反正在阿里,我们觉得这条路很难走。
 
极客时间:在阿里很难走是为什么,当时运维团队的价值当时没有被看到?可以详细说下当时做了哪些尝试吗?
毕玄:我们本来希望能跟集团谈一个数,比如运维就是一比多少研发,你不要老挑战我的人多。因为大家都觉得运维团队人很多。
我带的时候运维团队有一两百人,但是研发十几个人就能做一个非常核心的系统,所以研发团队看你,会觉得你比他人还多,运维动辄上百人,还说不够。问题是他没有想到我们是整个集团的运维,我们还觉得一两百人怎么够,得四五百更多。但这上面一看,你们有这么多人。
另外就是你说的,运维的价值其实很难被衡量,它的价值到底是什么?
因为运维不像研发,研发直接面对业务,做的东西价值是可以被论证的,只要这个业务好,研发肯定有贡献。但运维到底做了什么?我说运维很核心的工作是保护整个系统的稳定,另外是成本控制,但这些都没有业务那么耀眼,而且保护稳定这种事,不出问题是没有人知道的,就跟安全团队一样,也是很痛苦的团队。
极客时间:蚂蚁论证了运维价值这个事?
毕玄:为什么蚂蚁能搞定,是因为后来蚂蚁出过一些故障,阿里也出了,但蚂蚁对故障的重视度必须说比阿里高非常多。
因为蚂蚁是金融,如果它出故障,首先可能会引发用户的信任问题,第二会引发监管的问题,监管就是生命线,那对他们来讲就不是开玩笑的。所以蚂蚁会觉得我得力保稳定。
现在俊义带着的安全生产团队就是一个固定比例,每年不用申请运维名额的,研发你涨我就涨,非常简单。你想,一个固定比率,大家肯定不会一天到晚总那么饱满,就可以在日常工作以外,腾出时间做工具研发,把自己解放出来。其实这样就会越来越好,是个良性循环,但它需要时间。
所以我们当时想跟集团说定一个比例,然后团队要转型也需要一段时间,需要接受这段时间里人是比别人多的。
极客时间:比例的事,集团批了吗?
毕玄:没有。我带了半年多,也试了一些其他方法,但这个问题在阿里太难解决了,所有人都这么觉得。
虽然我们知道Google大概是怎么做的但都学不出来而且那个时候蚂蚁也没有搞定运维和研发一比多少的问题他们也是后来出了几次大故障以后公司才觉得这是生命线。
当时我就觉得我很难带领这个团队完成一次组织转型。我们是希望完成组织转型和升级的向Google靠拢变成一个非常资深的团队能更专注做好工具研发或者维护整个系统的稳定因为SRE的定义准确讲是维护系统稳定而不是什么发布、运维答疑这种杂活但在中国绝大部分公司我估计运维团队都是这个角色。
 
 
极客时间:这组织转型不了,你当时是怎么办的?
毕玄到16年这个问题太难解决了当时正好行癫来任集团CTO我们商量了一下这么搞下去反正也解决不了问题就提出了一个方案把运维工作直接交还给研发解散掉统一的运维团队把运维还给了所有的BU比如一部分人是支持淘宝的一部分人支持搜索等等按照BU把人全部还给研发相当于没有了统一的运维团队。
等到分人的时候所有人终于知道了哦你们人确实太少了。以前他们觉得你怎么那么多人但是现在大家摊在一张纸上来看好了反正就是这个状况支持你部门的人其实就1、2个人。
极客时间:这种拆分是怎么落的?
毕玄:就是直接决定组织拆分。
极客时间:搞了多久?
毕玄:应该是一个月就搞定了。
极客时间:会给这一批人选择吗,比如说哪个业务去多少个人?
毕玄没有选择你以前对的哪个BU现在你当然怎么分。不过因为拆的过程太粗暴当时也引发了一波离职导致有段时间运维很混乱加上分散了人也不够另外工具确实也比较缺失各家BU又开始自己做工具因为各家也受不了。
极客时间:直接组织拆分这一下够狠的,你们当时想到这个结果了吗?
毕玄:我们能想到,但是还是可以接受。
因为我们认为只有这样,才有可能让研发承担掉一些很杂碎的运维工作,形成这个习惯,也希望让所有研发都至少知道你的代码跑在哪些机器上、这些机器在哪里、大概环境是什么。其他的方式很难做到这一点,你只要有个团队在这,研发就不可能去做。
你想一个BU发现自己只有1、2个运维的时候他们肯定也觉得人少就会开始让部分研发承担运维的工作这就是我们想要的当然研发吐槽就很多了。反正我们觉得大思路上想象的最后样子没有问题但是怎么走到那个样子是个很大的挑战。
极客时间选择组织拆分这种自损八百的方案也是你们在15年到16年没跑通其他的方案
毕玄因为最早大家能想到的方案肯定都是做一套很好的工具研发用工具完成一些碎片工作然后运维团队就可以像SRE一样很专注地去看系统稳定性但我们当时看这就偏理想化。因为这么走第一你要先人员扩张。
极客时间:集团不给批,所以做不到。
毕玄:对,这第一步就很难,我的人是要翻倍的,但这个对公司来说……
极客时间那统一的运维拆到每个BU之后BU他们自己又开始做很多工具。
毕玄:对,工具又乱七八糟的。因为说实话工具重复做,意义很小,很多工具很类似,所以以前希望统一。
极客时间:以前运维团队统一的目的是什么?
毕玄最早应该是只有淘宝因为就一家公司它肯定是一个但后来大家觉得淘宝双11的模式做得非常好希望淘宝的经验可以去覆盖掉其他的所以慢慢就把各家的运维全部合掉了。
统一的目的,一是相对来讲人效肯定是最好的,二是理论上你可以做统一工作来解决很多问题,运维尤其,这样基础设施能更好地统一演进,如果分散了没有规模,很多事情就很难搞。
比如A业务说我的业务我要这样的机器B业务说我要另外一台机器因为业务方就是这样什么对我最好那我就要这样但对后面设施的采购、维护都是极大的问题。如果能统一运维还能节省成本这个机器可能在你这个业务上浪费了点钱但在全盘里其实是省钱的。但这件事你如果没有统一的团队太难做了。
极客时间:很多工具起来之后,效率和成本都不好,有把它们合在一起吗?
毕玄后来我不太管这个事我知道分散造成了很多问题但现在好像想统一了鲁肃下面又成立了SRE团队各个运维团队开始归拢了。
所以阿里对我们当年拆掉运维有很多争议,非常多,因为大家觉得现在的乱象就是我们当年那么暴力造成的。这个我们也认了,但我们觉得关键是没有解法。
而且现在合并,跟我们当年不一样,因为运维团队的职责变了,研发已经接受了。我们当年其实也是这样想的,我先拆一下,让大家习惯,后面我可以再整合,但职责就变了,只做全局稳定性的维护、机器管理这些。
极客时间:所以从组织演进的这个角度来看,当时拆分团队的核心目标也是达成了?
毕玄算的至少现在SRE团队比当年的运维团队好很多他们很多人合进去了觉得工作的挺开心不像以前运维的人简直是太苦了他的情绪永远不是很好压力又非常大。因为如果出故障那不得了运维绝对是第一个被问责的但很多又可能是研发的代码系统设计问题这个你又负不了责这就很尴尬。所以研发总觉得运维没啥用但事实上又离不开。
 
极客时间:经过运维团队的合并和拆分这一招,这么看研发和运维的分工方式,是不是最开始就不太行?
毕玄是有点问题。你想最早是一家创业小公司的时候是不会有这个分工的肯定是从头做到尾写代码自己发布上线维护全都是自己干。我2007年进淘宝的时候发所有系统也都是我跟运维一起没有说什么交给他了就不管了没有绝对不可能的。
后来某阿里高管有个形象的比喻他说你看你们现在简直活得像大爷一样写完代码就有一帮人服侍你什么PM、研发效能、测试、运维他们好像就是你们的保姆一样你们写完就什么都不管了什么都不知道。
所以从原则上讲,虽然我们觉得拆分运维团队这个动作是有点不大合理,但至少逼着研发提升了自己的技能,很多研发是不爽,但如果从他职业生涯来看,我们觉得不是坏事,你技能变好了,对不对?
极客时间:但研发应该会压力比较大吧?
毕玄:研发的抱怨其实差不多,我活已经很多了,每天要接一堆很碎片的需求,你们现在不想干,把活都扔给我们,包括测试团队当时也是希望研发自测,然后自己更多的做工具。所以研发那会觉得我不仅要管这些,还得管上线、发布后的整个状况,你们这些团队就是啥活都不想干,什么都扔给我们。
但研发你未来作为一个系统的掌控者,这些本来就应该知道的,也本来要掌握的,你做系统设计,不可能忽视下面的基础设施完全当它是个黑盒,不可能,就算现在是云,你也不可能把它当黑盒用,对你还得是个白盒。
极客时间:所以阿里强拆一定程度上解决了这个问题,但不能轻易用。
毕玄:必须要有很高的支持,因为这个动作非常大,会影响所有团队,内部肯定会有各种意见。
但我们认为组织演进的路线是什么?你不能说虽然团队的人整体都没有成长,但这样对公司是最好的。这样最大问题是团队会很难活下去,长期一定是个问题,一是不稳定离职率会很高,你老换人,研发线他每次找你也很痛苦,而且也很危险,公司哪天想换掉你很简单。
每个团队可能都要想一下成长空间问题,很重要的,因为不可能说公司哪个团队是个弃子。
 
 
极客时间:看未来,你觉得运维可能会往哪个方面发展?
毕玄:我现在觉得,大厂的模式还是不错的,研发应该干掉运维的一些工作。
但这个前提确实是公司在运维侧的工具上要有一定的积累。如果你完全没有积累,按我们当年那么粗暴,也会引发问题,一定会有一段时间很崩溃。当然过了那段时间可能会工具百花齐放,但之后基础设施怎么统一又是一个问题。
但大厂的模式也有一个问题,对研发的技能要求太高了,就相当于研发你要懂运维。但从现实的人才池子来讲,这一点又很难实现,现实中多数研发其实不懂运维。
极客时间:小厂应该更是。
毕玄:对,这很正常,就像我们(贝联珠贯)招人也不可能这个要求,肯定首先在乎你的研发技能,运维差一点就算了,我们可以有运维团队,但也会陷入这个状况。但我们先期就会让运维更多偏向工具,一开始就是这个定位,同时也慢慢告诉研发,运维不是你的配套,只给你工具和文档,其他是不管的。
极客时间:对小厂来说,有必要制作自己的运维工具吗?现在市面上也有很多工具。
毕玄:但运维的工具很难完全通用,这个比较麻烦。通用的很难满足运维所有的需求,因为运维不像研发比较单纯,他杂活简直多到不可想象。
极客时间:所以只能慢慢转变?
毕玄只能看各家怎么看待运维。大部分公司其实就没有解法但新一代的公司可能会慢慢好一点现在研发在技能层面的要求更完整一点运维团队也在慢慢转向类Google的SRE更多提供工具研究整个系统怎么样做得更加稳定而不是发布。
极客时间:那运维的职业发展路径呢,你怎么看?
毕玄:架构师。
以前我们跟运维团队说,其实他们最大的出路是成为真正掌控整个系统的最大架构师,因为说实话,架构师其实最好是从运维出来的,研发是出不来的,因为研发没有全貌,但运维是一定有的,他要负责线上,所以他看到的一定是整个系统,知识面一定是超级宽的。
只不过关键是运维你能不能成长为这样的角色因为架构师最大的问题是研发线认不认可你。研发线会觉得你就一个运维又没写过代码你提的方案我觉得不靠谱。所以这就是为什么Google相对好很多因为他的SRE就是原来的资深研发研发挑战不了。
研发是一个很难伺候的角色。我后来去研发效能了体会更深,就更难了,研发效能是给研发和运维做工具,这个难度简直高到天了。就像我说的,只要研发觉得自己能干的事都很难。
 
水友讨论区
对谈到这里就暂时结束了,主要聊的是毕玄从研发转运维的经历。
先说点正经的,运维团队,毕玄认为核心工作是保护整个系统的稳定和成本控制,而运维人最好的出路是架构师,但在当时的阿里,面对运维团队价值模糊的困境,他试图寻找解法,但似乎也看不到希望,迫不得已选择了一条争议巨大的路线。
但每个团队确实都要想一下成长空间问题,你自己所在的团队,你觉得现在的空间如何,未来的成长空间可能是什么?能满足你的个人发展需要吗?
最后说点不太正经的,今天来个特别的吐槽环节:
“我完全可以干,之所以我不干,只是因为我不想干而已”,你的岗位存在鄙视链吗,是什么呢?
如果你是一线运维,欢迎吐槽当年和研发协作的那些事,当然不能厚此薄彼,如果你是一线研发、测试、安全或其他团队,也欢迎写下你的肺腑之言。
毕竟有一位哲人说过,吐槽,是迈向理解的第一步,期待在留言区看到你的精彩发言;)
下一讲我们会接着今天对谈的尾巴继续聊,毕竟毕玄说运维之后,他去了比运维更难做的研发效能团队,会发生什么呢,下一讲见。
拓展阅读
1. 如果你对阿里当时智能化运维的具体细节感兴趣,可以看阿里开发者的这篇:阿里毕玄:智能时代,运维工程师在谈什么?这是当时毕玄做“智能时代的新运维”演讲的整理稿。
2. 在2016 Velocity China 上毕玄也做了一次演讲,主题是阿里应用运维体系演变

View File

@ -0,0 +1,281 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
08 基础团队:研发效能部门,解决不了研发效能问题
你好,我是叶芊。-
 -
上一讲我们聊到毕玄从研发转到运维对于当时成长空间极其严峻的运维团队他选择兵行险招解散掉统一的运维团队把人还给了所有BU尝试改变研发乃至集团对运维团队的价值认知毕竟只要研发觉得自己能干的事都很难做。-
 -
但是运维之后,他又去了更惨的研发效能团队,给研发和运维做工具。-
 -
对于这个“难度简直高到天”的新团队,这次他要面对的是什么样的难题?他又是如何发挥自己的长板,分析运维未来的成长空间,找到那几个能体现团队价值的亮点呢?
 -
极客时间好不容易从运维出来结果你又去研发效能了那个时候应该是2016年
毕玄:对,其实就是运维拆完,我开始带系统软件事业部跟研发效能部。
极客时间:新团队多大?
毕玄:一开始大概三四百人,后面有五六百。
极客时间:你当时带这两个部门的目标是什么?
毕玄当时安排我去带这两个系统软件是有明确目标的就是要做好统一调度因为行癫上任作为CTO给阿里定的两个最重要的事一个是统一存储一个就是统一调度统一存储就是盘古统一调度就是我。所以系统软件的成立很清晰。
研发效能是因为之前基础设施的运维,在阿里云、集团各有一个团队,现在最大诉求是整合在一起,做成统一化。至于研发工具侧,没有太多诉求,当然我带团队以后肯定不希望没有任何目标,还是希望能解决研发效能团队的定位问题,这就是第二个目标。
极客时间:定位问题?也是像运维团队一样,研发效能当时的价值没有展现出来吗?
毕玄研发效能是做研发工具的跟运维一样大家也会觉得这个团队人很多都觉得一个研发工具团队200多人简直太多了没有一个人觉得你手上人少。
我以前带运维在外围的时候也这么觉得:研发工具团队人怎么那么多,应该给我点人来做工具,给一半就挺好。等我带的时候一看,哇这个团队人也太少了。我带的这俩团队简直了(笑)。
极客时间:研发效能人少的原因是什么?
毕玄:因为研发工具链条特别长。
研发工具你想包括了什么?首先就是代码托管、代码编译,然后需求管理,要做整套需求管理的系统,需求出来了以后你要做项目管理,还要对研发模式做管理,像阿里研发模式不统一有无数种,主干开发、分支开发、敏捷开发……各种都得支持。列举一下你最后就发现,团队里做每一项功能的可能只有俩人,然后就活不下去了。
我说这团队太难带了。因为跟运维一样,大家也会觉得你的价值对公司很有限,但事实上你又必须存在,你盘点觉得自己人很少,但公司觉得很多,其他团队也都认为你人很多,那你就很尴尬了。
极客时间:本质上,人多不尴尬,尴尬的是人多,别人还觉得你没价值。
毕玄因为这个团队除了支持以外确实很难找到新目标。他原来做的工作就是支持你研发完对我有什么需求像编译以前只支持Java现在你要C那团队规模就会越来越大Google的编译团队就上百人了。所以你看我们人很多但把功能点全部拆开类比其他公司我们根本没人哪有人
但是如果你,像运维一样,永远被别人定义成一个支持团队就很惨,你的价值永远得不到大家认可。我们就想尝试改变,因为你不做出改变,人永远不够。
极客时间:所以这个问题,你是怎么办的?
毕玄:我当时带研发效能就在想,短期能不能稍微集中力量做出一两个亮点,只要有一两个亮点就足以证明这个团队对公司的整体研发效能是有价值的,这个团队还是有意义的。
后来我们认为对工具层面的研发效率来讲,代码方向是最好的,就谈了一些人开始做代码搜索、代码智能化,其他地方我们很难解。
 
 
极客时间:当时你是怎么分析的,可以详细讲讲吗?
毕玄:核心就是想清楚你到底能真正解决研发的什么效率问题。
第一个最大的问题当然是协作效率。但这其实是个研发模式问题。
阿里因为强制统一成一套系统了,所以这套系统压力非常大,一是阿里太复杂了,各业务的状况不一样,有些是创新业务,有些是成熟业务,有些可能是晚期业务,每个都得来不同的。二你想任何一个团队说我觉得现在研发模式不好,想换一个,那你的系统就得支持吧,因为你挑战不了他。
所以我们当时说:想改变这个局面,只有一种可能——研发模式我们比他们还懂,就是对阿里各种不同阶段的业务,你能定义哪个更合适。但说实话这并不容易。
这么多年了全世界只有某几位顶尖的天才软件工程大师偶尔提出一两个开发模式改变了整个业界的协作模式和研发模式像Linux提出Git彻底颠覆了以前的CVS、SVN除非能做这种那你团队影响力绝对第一流。但这太难了培养出一个大师的可能性不是很大。
而且研发模式很复杂因为它其实是个协作问题。像敏捷在中国多少年了包括Google讲代码仓库应该是一个大仓库提高整体的研发效率但你看中国有多少公司是一个大仓库阿里也想做但也很难理论上Google讲了有A、B、C、D多少好处我们也觉得Google讲的很有道理但关键是工程有个落地问题你有这个想法怎么走到那这就是工程。但协作这个工程挑战非常难我们觉得几乎不可能。
极客时间:所以第一个问题协作效率,短期是不可能了。
毕玄:想解决好协作效率是个长期的活,我们就不纠结了,囤一两个业界挺有名的理论专家尝试看有没有机会提出像敏捷开发、精益开发的思想去影响研发线,让他们接受。
但说实话,我们没抱太大的希望,公司有这么多种类型的业务,要高度抽象出一个很好的协作模式,太难了。到今天为止我觉得这个局面也很难改变,毕竟这相当于你要比他们研发团队还专家。
 
极客时间第一个协作效率短期PASS第二个是什么
毕玄:第二个对研发来说以前阿里最影响的效率是什么呢?其实是测试。
测试是个大问题到现在也是很多公司尤其服务化以后更严重。因为你原来就一个系统测试还好不存在互相干扰服务化以后好了有几百上千个系统那完蛋了一放到测试环境你都不知道谁影响了你所以各家公司就搞出了N套方案来解决互相干扰的问题。
比如阿里以前先搞了一套测试环境,所有人都在上面放新的代码,但慢慢的大家就发现这环境还是不要用了,没法用,全是异常,你查问题可能发现根本不是你代码的问题,都是别人的,但别人不理你,这就没法搞下去了。
所以,我们又搞了一套日常环境,日常环境是比较稳定的,里面只允许放测试过的正常代码,但因为前面的测试环境不受大家认可,所以大家就时不时在日常环境里跑,然后就又尴尬了(笑),所以日常环境也慢慢。
极客时间:变成测试环境了。
毕玄:对,但一旦变成测试环境就又很乱。
后来希望从中间件的层面去解决,我们把这个叫二套环境,比如在这个环境里,你现在是测试,但别人调用的时候不会调用到你,会调用一个稳定版本。但是中间件要解决,很复杂,因为不光有服务调用,还有消息各种各样的问题。最后我觉得也解的不是很好。
所以阿里后来都已经直接到预发环境去测了,预发其实就是线上生产环境,只不过用户访问不到,但我们内部能访问。因为用的是线上,可以确保如果出问题,应该就是我的问题。但是后来预发环境也乱套了(笑)。
反正为了一个环境问题,尝试了不知道多少年,现在应该还有个团队尝试新的,专注怎么解决环境干扰问题。我们跟很多做研发工具的团队说,如果能解好这个,你们的工具一定很好卖,中大厂这都是核心问题,因为测试效率如果很低,意味着最终上线的周期肯定会被拉长。
 
极客时间:前面分析的问题倒是很多,一协作效率开发模式,二测试的干扰问题,但是短期都不好解啊。
毕玄:后来我们就觉得,对研发来讲,我们真正能做的是给他的工具。
你想研发的一天除了协作这些乱七八糟的事情以外核心的时间肯定还是花在写代码、编译、打包、测试上所以我们就在想这4个我们能干啥。测试前面说了只能看环境问题怎么缓解解决不大可能。
剩下写代码、编译、打包这三个环节,能不能尽量为你缩短,这就是我们探索的。
编译我们觉得可以搞一下像Google Bazel提高编译的速度我们也投入了一些资源确实有效果。代码编写方面也是在做的不管是IDE的改进还是做代码智能化重点力量开始投向这些。
其他的,支撑好业务和需求就行,在想不出什么创新的情况下我们也别纠结,就当就是个支持好了。但在这几个地方,我们是有机会做出亮点的。说实话对公司来讲,一个团队,一个这么大的团队,其实有一个亮点就足够了,就可以解读这个团队存在的必要性,最怕的是它一个亮点都没有。
极客时间:判断代码方向是亮点,是因为研发天天用,如果能有效提升的话,作用很大吗?
毕玄:因为代码方向,我们觉得智能化是突破点。
像代码托管就没有突破点GitHub就是天花板你最多说我做一个中国的GitHub等一个机会做备胎或者你指望Git之后又来了一个新东西但这需要另外一个天才Git只是Linus随便玩玩做的东西这就是天才你没有。
但代码智能化即使像阿里的工程师质量已经是中国中上了事实上所有工程师写代码的水平也是有很大差距的我们希望用工具把代码的平均质量拉高比如从现在的50分拉到60、70分对公司来讲就很好了你说要做到比优秀程序员还好也不现实。而且这是在阿里如果做得好这套工具对外可能会把别人从20直接拉到60那完全不一样。
这个事,在阿里我们觉得是非常有机会做成的。因为你的代码想智能化,比你自己写得更好,首先你需要有一个优质的代码仓库。
极客时间:代码仓库是需要积累的。
毕玄:阿里绝对具备,因为阿里的大多数代码就是中国中上的优秀工程师写出来的,而且这些代码又是在生产环境运行的,是实际被论证过的。
我们还能捞到这些代码运行的实际数据就能知道哪些代码其实是更优秀的比如说这段代码每天被访问了很多次但消耗的资源很少而且响应时间很快那说明写得挺好的。所以我们可以很好地训练AI什么叫优质代码但这需要一个代码仓库。所以GitHub也在做一个代码智能化的工具Copilot现在要收费了。
极客时间GitHub Copilot那个自动补全的
毕玄它基于的是大量Public的仓库代码但这个代码的水平你很难说当然GitHub有些高水平开源质量不错但你还是没办法跟有实际生产环境数据论证的比这是不在一个水平线的。
而且我们觉得阿里还有最后一步如果实在不行可以时不时搞全阿里代码Review比赛选阿里大家公认的几个写代码非常好的人来评审然后把这些反馈给AI那这个AI就更加智能了。
所以阿里走通这条路的可能性比多数公司高非常多。当然大公司都有这样的体会Google、腾讯都一样因为大家确实是偏中上水准。
极客时间有多年代码积累有生产检验加上AI技术现在也比较成熟最后实在不行还能加人工评分。
毕玄:对,这如果有机会做好,可以让阿里所有工程师在写代码的时候有自动辅助,你写的时候我就能猜出你下面要写什么,然后给你一段相对优质的代码参考,你只用改一改就可以了。
极客时间:这种工具,研发认可吗?愿意用吗?
毕玄研发对这些接受度很高你能帮我写得更快还写得更好那好的。所以GitHub Copilot要收费了我在很多程序员群里看到都是愿意付费支持的。而且说实话我觉得他做的也没有那么好离我们当时想象的那个代码智能化工具还有差距。
很多协作工具像office、飞书等等为什么受欢迎是因为能提高我协作的效率对研发也一样如果有个东西能提高我写代码效率我愿意付钱的个人都行都不需要公司。其实IDE 不就是这样子以前很多人觉得我用记事本写代码很牛我们说那是傻工具能极大提高你的效率干嘛不用呢那不是傻吗所以IDE 每年能收这么多钱你问工程师IDE 到底有什么好?就是因为它能让我们写代码的效率更高。工具就是这样。
极客时间:所以研发效能部的目标终于很清晰了,短期重点代码智能化做亮点,长期做研发模式、测试环境干扰。当时你们做到什么程度呢?
毕玄我们就做了一年多因为一两年之后我就不带这个团队了但现在这个团队应该还在阿里前段时间好像对外发了一个代码智能化的开放工具云效Codeup
 
极客时间:亮点仔细分析了,也做了很多工作,你觉得研发效能的团队价值有明显提高吗?
毕玄:还是很难,因为研发效能这个东西很难被衡量。
大家常见的是衡量研发对需求的实现速度。比如一个需求过来原来是一周,你现在变成两天,但这里有个问题,需求的粒度是什么?运维或者产品提一个需求过来,你很难拿什么东西去衡量这个需求的粒度,最后到了研发这边其实就没法衡量。这是个非标。
极客时间:大家没有公认的大概指标吗?
毕玄没有我觉得只有一些小点。比如说大家公认Google的编译做得非常好就Bazel但这并不代表研发效率。研发效率是个综合话题。
而且像我们投入很多去做代码,你觉得自己做了一个特别牛的、在全球都很领先的工具,但对研发来讲,没用,对于研发侧来讲,他们认为我效率的核心不在这,阿里的研发抱怨最多的、最影响他效率的是什么?是前面的环节。所以这种团队很尴尬。
极客时间:抱怨最多的,是前面的需求搞不清?
毕玄:对,是需求和协作,这环节你说你能帮他啥?研发说我最大的问题是一天能写代码的时间很少,大部分时间在开会。但我说这是管理问题。
你想为什么一家创业公司研发很快?以前淘宝也很快,上午提需求,下午就上线了,为什么?因为以前根本不需要评审,也不需要各种环节,你过来说一下,我立刻就开始写代码。现在怎么可能?现在你一个需求提过来,背后可能涉及十个团队,那这十个团队我得先讨论一下吧,还得排个期吧,开会就已经好几天了,这还做个啥?两周做完一个需求就不错了。
极客时间:所以总的来看研发效能,没做出东西很尴尬,做出了东西还是挺无力的,这怎么办?
毕玄就看团队定位了如果对公司来说能接受这个团队在某些点上能做到全球TOP不需要我们去论证自己做出来的东西的价值那这个团队的存在空间就有了。
像美国很多公司都认为工具才是核心不需要说来论证一下你为什么做了这个工具你效率提高了多少他们信仰只要工具做好了效率就提高了。我以前拜访Facebook他们的工具团队很受重视大家都很向往觉得他们简直太牛了因为他觉得我用的都是你们团队做的东西。
但中美在软件这一侧的信仰差别是很大的。美国可能因为人太贵了,所以他们一开始就特别相信工具,中国相对来讲人的成本低一些,所以一开始中国不觉得工具有多重要,我就是堆人。只有等到两种情况:一发现堆人也解决不了问题,二开始感受到堆人的成本,只有到这两个阶段才会觉得那我们得做好工具。
但这个时候他对工具的期望太大了,所以这个工具团队很难做,因为工具并不能真的彻底解决问题,如果能彻底解决,那也太简单。因为很可能这个团队解的是研发效率里最小的那个环节,最大的环节根本是公司层面的问题。
极客时间:美国是很向往工具团队,但中国是你们作为保姆团队该给我支持?
毕玄:而且还都觉得你们做的太烂了。研发就是那句话,只是我没空自己干,否则我一定能比写得你更好,高层,你又很难向他证明为什么工具很重要。
office的故事本来我们觉得可以一直讲你说office重要吗Office当然重要所以你愿意付费那为什么研发工具你不愿意office你有论证过吗你也没有但你就是相信了。相信真的很重要。
海外对开源到商业也是信仰,他相信你开源做好了,接下来的商业化一定能做好。但在中国这个是要被论证的,但论证很难,它就变成了一个悖论。
中国像ToC不也是这样最早ToC能吸引大量的免费用户但你也要论证你吸引了这么多免费用户为什么最终你能赚钱其实没有证明所以淘宝最早被无数人质疑你每年亏这么多钱到底能不能盈利这就必须感谢雅虎。
极客时间:广告模式?
毕玄雅虎成功创造了互联网广告模式直接把免费流量转移成羊毛出在猪身上所以后来做ToC的人就不用证明能不能盈利这个事只要你能做到用户量很高大家就觉得你一定能赚钱当然也不一定就像共享单车用户量做得很高最后还是没有盈利。但是他一开始是不用解读的这就是相信。
这在软件上很明显,国外就相信了,但在中国要面临很大挑战,所以中国各家做工具的团队都过得不是很好。
 
 
极客时间:近几年,业界特别重视提研发效能,这种关注度是不是也是分阶段的?
毕玄:对,大公司肯定会提的,研发效能每年确实是被提的核心话题。
极客时间:去年好像提的更多一点,是因为疫情吗?
毕玄:没有,我觉得都会提。
为什么大厂现在总提研发效能,因为大厂到了后面人效比是下降的,所以只要过了那个点,很多公司都会提,因为他每年都会觉得我业务增长是这样,但你研发人员怎么还在不断增长,他当然觉得有问题,加上研发又比较贵,成本比较高,他就会说你们研发的效能得提高啊。
但关键是研发效率到底怎么提高?大家就指望那个研发效能团队,但其实那个团队根本就承担不了这活,他承担的只是很小的一部分,最大的部分实际是管理问题。
极客时间:或者说因为到了现在这个阶段,其实很多公司都找不到更好的方式去盈利了?
毕玄:研发砍十个人公司搞不好盈利了,阿里砍掉这一轮,可能这个季度的利润都要增加一些,因为研发太贵。
所以要说起来,他们不应该老挑战研发效能,想快的,还不如把产品线砍掉一半,研发效能立刻就提高了,因为无效需求太多了,只要产品经理够多,研发就永远不够,毕竟产品经理只要人在,他就会想需求。
极客时间:既然经过这么久的实践检验,为什么大家还是会对研发效能关注这么高?
毕玄:因为大家还是幻想能有一个解决方案。毕竟一旦解决好了,必须说对公司的帮助无比巨大。
极客时间:那你怎么看,你对这个团队是抱有信心的?
毕玄:对,我认为如果你能做一个工具,让研发很喜欢,其实就可以,至于对公司的价值,就看团队的人自己怎么看。
说实话,我觉得即使团队在代码层面做得多好,可能在研发团队能得到比较好的口碑,但公司也不会觉得你解决了研发效率的问题,因为公司层面只看最后的人员增长,就很复杂。
所以我跟他们讲研发效率是个综合过程你不能做的再怎么叽歪也没用但我们能做的那就尽可能做好呗。如果你能做到世界顶流就算不能在公司被认可但你在圈子里是会被认可的就像Google做Bazel的团队你以后的职业生涯是没有问题的如果在这家公司身上获取不到在另外一家公司身上也会获取到。那就别纠结了关键纠结也没啥用。
 
水友讨论区
今天的对谈到这里就暂时结束了毕玄担任研发效能部Leader的这段经历确实让我感受到了为什么很多人会评价他对方向的判断非常好。
我们先简单复习一下。首先,出发点是对公司来讲,一个团队需要有一个亮点,才能解读这个团队存在的必要性。那对研发效能部门来说,他们平时做的事是给研发提供支持、做研发工具,如何找到亮点呢?
毕玄分析核心就是想清楚这个部门到底能解决研发的什么效率问题,一个研发,一天的时间花在协作、写代码、编译、打包、测试上,于是拆解下去有了这么几个方向:协作效率、测试的干扰、代码智能化工具、编译工具等,再针对每一个方向思考可行性和见效周期。
虽然最后非常现实,也没能有效提高团队在集团的地位,但毕竟尝试有了效果,后面可能就是时间问题了。
回顾自己呆过的团队,你觉得有清晰的亮点吗?参考毕玄的分析思路,你认为自己团队短期可以发力的亮点是什么呢?
工具,被公司寄托厚望却又很难被认可价值,你在工具团队做过吗?有遇到什么尴尬又难解的问题吗?
欢迎在留言区分享你的思考和故事。如果有其他感兴趣的话题,记得留言。
下一讲我们会聊一聊毕玄做统一调度的故事,下一讲见。
拓展阅读
1. 如果你对测试环境的难题感兴趣,可以看阿里开发者的这篇:在阿里,我们如何管理测试环境?
2. 关于工具的作用,毕玄之前写过一篇小短文:程序员的生产力工具

View File

@ -0,0 +1,273 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
09 统一调度:只是问题非常多而已,摔出来就行了
你好,我是叶芊。-
 -
上节课我们聊到16年毕玄拆完运维去带系统软件事业部跟研发效能部的经历。-
 -
对于高层根本不感兴趣的研发效能团队,定位是个大问题,做了一通现状分析之后,他终于找到了清晰的发力点:短期做代码智能化,长期解研发模式和环境干扰。-
 -
对于另一个团队——系统软件部,虽然高层给了明确目标,但他说做的也很不顺利,最后能做成也很难讲,可能时机比较巧。-
 -
作为自己在阿里14年的第三大亮点统一调度的成功居然归因于“时机”为什么让我们跟着亲历这个集团级项目的总架构师看一看当时有哪些障碍他又是怎么处理的
 -
极客时间:你当时带两个团队,研发效能之外就是统一调度,这个部门的目标是什么?
毕玄本质也是成本阿里内部以前有好几套调度系统这次想做成一套统一的我们叫Sigma向Borg的下一代Omega致敬。
调度我们做了很多年2011年做容器化T4就是核心目标就是为了控制成本当时我们做了两三年大概知道了在这方面Google的Borg做得非常好。
那个时候传闻Google认为自己的核心竞争力是什么最早他就做搜索他认为自己最重要的竞争力是一我排序结果的准确度比多数公司好二做同样的效果我付出的成本是你们的1/10。这确实是成本如果差这么远商业上就没办法做下去了这里面Google觉得调度系统Borg承担了很大角色类似它的Page Rank算法是整体竞争力的一部分。
所以外部很少有Borg的信息保密性做得非常好。后来我们知道一点是2015年Google发表Borg论文那其实几年前就写好了只是内部一直摁着不让发觉得可能对业务的核心竞争力有影响。
极客时间所以13年你们了解到的信息是什么可以具体说下吗
毕玄:就是个思路。我们知道了以后都觉得哇这个思路简直太完美了,其实大家都能想到,但我们需要有人给信心,因为这个思路大家都觉得太难。
是这样,因为多数公司的机器会分成很多个池子,最典型的是一个机器池子用来跑在线业务,另外一个用来做大数据的业务。
大数据这个软件的核心设计思想就是尽量并行化,把一台机器的资源全部吃光,所以大数据特别吃资源,能把池子用得特别满。而在线业务,不是不想吃资源,它必须考虑的是什么?是稳定性,如果出问题了,我最好要有足够的冗余,加上一天还有很多不确定的高峰,所以我机器的余量一定是为高峰准备的,利用率就没有办法很高。
极客时间:在线的机器量,可以根据高低峰来伸缩吗?
毕玄:但事实上这是一个悖论。因为对在线来讲,稳定性是最重要的,如果你不断伸缩,万一出问题了,可能得不偿失。很多高峰是无法预测的,即使是淘宝看起来都是做大促才有高峰,但如果有个社会热点,除了微博,淘宝也会受影响,以前比如谁出了名,有了件衣服同款,那立刻爆。这种事情是没有办法预测的。
除非你可以做到秒级以下的伸缩,那可以。我后来带调度,也给了人去探索这个方向,但必须说真的很难,至少目前我们觉得从技术上来讲很难突破,伸缩的风险不那么可控。
极客时间:所以一方面是大数据机器用满,一方面是在线空闲,在线也不好伸缩。
毕玄很多公司到了一定规模在线机器增长其实还好因为在线跟业务基本成正比就是QPS比如说现在100明年你希望做到200那我就加机器同时因为每年的机器比上一年更好所以从预算角度来讲公司觉得是合理的业务增长20%你机器增长比如15%,那当然可以,至少没多出钱,能接受。
但大数据就有问题了。通常大数据机器只要开始用了,每年的增速会越来越快,因为存储量一直在那,而大家想采集的数据细节会越来越多,这样才能更精准地画出特征,所以大数据的机器就会多;另外公司的经营一定会越来越难,以前增长比较容易获得,可以粗放式,但后面你肯定要精细化,但精细化对大数据的要求又越来越高,所以机器会越来越多。
这个时候技术层面大家都很容易想到一个方案既然在线这边这么混大数据这么满能不能合在一起让大数据用在线这就是当时Borg给大家的核心思路。
极客时间:把在线和离线混部?
毕玄但其实Borg自己压根就不是这样它诞生的时候就认为这两个本来应该在一起我们以为一组机器跑大数据一组机器跑在线它一开始就认为干嘛要分所以这就是Google。
极客时间:理念先进,都是机器,我只是时而跑离线时而跑在线。
毕玄你说对了Google觉得反正我机器在这儿了该跑啥就跑啥哪有说这个机器只能用来跑这个没有。
Google当年有一个高管跳槽到百度他第一次看预算的时候发现还分大数据机器和在线机器就很疑惑为什么还要分机器类型他说我们从来不分。所以百度后来做了Matrix拿了两次一百万美金的百度最高奖。其实百度Matrix的思路就来源于Google。
 
极客时间:在离线混部,这个思路倒很直白。
毕玄:这个思路大家确实也能想到,也都觉得应该这么干,很多人就会问了:为什么不这么干?那肯定是有原因的。
从技术上讲大数据跑到在线确实有很多问题。首先机器以前是分开的最典型的就是通常在线机器是1块盘大数据机器是12块盘因为它跑的时候需要算非常大的数据但在线以前数据量非常小大数据上去跑的时候存储不够大家觉得没法搞。
另外物理的基础设施条件也有要求。
第一在线机器和大数据机器要在同一个城市。比如从A到B的网络我们叫城际带宽如果不在同一个地方意味着要走这个但城际的网络带宽非常贵你如果跑大数据就更不得了要求非常高这条路是不可能的所以首先要的是大数据和在线搬到同一个机房。
而且当时物理基础设施除了机房还有网络的问题以前我们的网络是千兆对大数据来讲不够用的它需要万兆以及更高。千兆就要搞各种限制所以也很痛苦。我们2014年只能在上海机房搞个小的试验环境去做一些试验。
除了基础设施,还有干扰的问题,因为大数据任务会吃光所有的资源,如果你在线也同时跑,会不会影响到在线业务的稳定性?如果被干扰了,导致你的响应时间下去了,就完蛋了,在线业务会不惜一切代价保稳定性,你想如果业务都挂了,省钱有什么意义,对不对?
极客时间:以前机房分开也是出于成本考虑吧?
毕玄:对中国西部城市比如说内蒙古,电非常充足,电费非常便宜,加上温度通常比较低,建机房就很好,很省钱。但问题是互联网的出口通常又在一线城市比如北京、上海这几个点,做在线业务是需要互联网出口的,我必须在这些城市或者附近。
这就奠定了以前大数据、在线都在不同机房所以Google这个思路一开始在中国就做不了。当时我们面临的第一个挑战就是这个怎么说服高层阿里建一个大机房让在线和离线搬到同一个地方去
但这对任何一家公司都是一个非常大的决定。建一个大机房是几十亿的投入要找到一个地方电费便宜也要在互联网出口附近也要探讨清楚ROI到底是什么因为开始肯定要增加投入以前没有这些现在砸好多钱你到底能不能省回来这就是又是那个论证问题。
极客时间:所以机房问题,团队也没办法,只能等公司决策?
毕玄那没办法。现在阿里是建在张北、南通等几个地方但你看这几个地方显然都不是大城市但离大城市又不远既享受到了电费、气候又享受到了互联网出口这就是非常好的选择。百度最早在阳泉也是建了一个30万台机器的大机房然后是阿里15年建的张北腾讯也开始后来思路就全部统一了。
极客时间:后来阿里建了大机房,是因为说服了高层?还是看别人做了?
毕玄:那倒不是,阿里有很多原因,主要是因为云起来了,对我们来讲小机房效率不是很好。所以后来统一调度能做,也很难讲,可能是时机比较巧。
反正后期走这个方向的公司都很痛苦因为你前期物理设施不是按照这个来的。像Google是一开始就是这么来的所以它不存在这些问题。我们后走这条路的都很尴尬。
 
 
极客时间:在离线混部这么多问题,当时感觉都没有解法,你们做的时候有信心吗?具体进展是怎么样的?
毕玄:信心是有的,因为统一调度说实话跟做异地多活不一样。
这次有参考对象只是资料不公开而已但大思路在所以你的大方向是有的异地多活是没有大方向的纯靠自己摸索完全不知道能不能走通很可能会走挂但调度我们觉得Google能干成至少这条路走下去应该没问题不会走不通只是要解决的问题肯定非常多而已。
但在阿里必须说我们做这件事情难度比百度更大。百度是高层Push大家这样做而且大数据团队有很强的动力在阿里我们有很强的动力但我们是在线业务团队不是大数据团队这个事想做成很多工作是要大数据团队做的当年他们还有别的很多事情要干觉得这不是我的重点。
所以各种原因尽管我们从14年开始做但进展一直比较慢。
物理上的限制是等15年建大机房了才有可能性了然后网络要升级到万兆上面升级到25G40G100G到了16、17年那个时候网络都具备了也没有问题。剩下要解的核心问题就是大数据对在线的干扰还有两边机器的磁盘不一样。
极客时间:磁盘问题,后来网络好了是不是就解决了?
毕玄:网络升级上去之后我们可以走计算-存储分离。
但计算-存储分离内部当年也争论非常大。原因是大数据软件在一开始的核心设计思想,除了高度并行、充分使用资源,还有一个是“存储和计算一体化”,就是调度的时候会尽量让任务和存储在同一台机器上,这样算起来最快。但你现在告诉大数据团队不要放在一台机器上,这其实挑战了大数据的很多思想。
所以内部争论非常巨大,但我们反正可以逼着你必须走这条路,比如说卡预算各种。
极客时间:跟以前异地多活一样不给你分机器?
毕玄:对,因为我所有机器是没有磁盘的,你必须走分离,否则我在线给你机器你也跑不了。
所以基本等16年阿里开始大力提统一调度也有了正规军很多问题才慢慢被解决一是物理条件具备了其实是18年才具备的但大家在16年开始探讨觉得这个方向可行基础设施就去配套准备所以大机房、网络都在那两年完成了。
极客时间到16年那个时候对在离线混部方案的价值大家的认知也统一了
毕玄:我觉得很大的原因是预算上大数据对成本的压力已经非常大了,必须要控制。
但控制的思路我们探讨了很久觉得最好最完美的仍然是Google。你想在线有一大堆机器在手上如果能把大数据跑上去相当于不用花钱的大家拍脑袋想都觉得能省好多钱是个好方向。
极客时间:现在就剩下干扰问题。
毕玄就是阿里的操作系统团队。系统软件部在我一开始组建的时候操作系统团队可能只有10个人左右人很少然后到2018年的时候大概有100人主要就是为了解决干扰问题。
极客时间:你们当时遇到了哪些问题,业界有参考吗?
毕玄Google尽管在论文里提及一两句但不会讲更多细节他论文的风格一般是这样只是告诉你我很牛但要怎么做到这么牛不会讲。你只能自己实践。
我们就必须靠大量人力去堆,在这个过程中肯定会出问题,但只要出了问题以后我有专业的人,可以把问题迅速解决掉就能做。所以我们其实是这样摔出来的,也没有什么。
这因为一方面公司信任,另外一方面是我们的在线业务有回滚、容灾各种策略,也有异地多活可以切流量,相对来讲是在比较安全的情况下做尝试,所以我们也不太在乎,出问题了就把流量切走。
 
极客时间:你们当时尝试的结果怎么样?
毕玄从2016年到2018年我们大概跑到了1万台机器相当于在线有1万台可以给离线用那一年离线少采购了5000多台机器1台假设10万所以一年省了5个亿。
关键是不光这一年,下一年我只要继续扩大在线规模,就能继续省钱,到后面每年省的钱会越来越多,因为技术已经是成熟可以被复用的了。方案上、技术层面上肯定不会有太大问题,剩下全是工程,工程是很缓慢的,你就算技术走通了,工程要完全落地也要个周期。
这可以用一个指标直接体现公司所有服务器全天的平均利用率像Google就只看这个指标。大部分公司应该都小于10%阿里16年开始做的时候是8%Google发表论文的时候利用率大概是50%这意味着Google只用1/5的机器就可以做同样的业务离它讲的核心竞争力非常接近。
极客时间为什么业界、阿里和Google差距这么大
毕玄:中国公司更难是因为我们不是全球化的,大数据是很高,但晚上没有流量在线就是零,所以你平均一下就完蛋了,利用率就很低,但国外很多公司会好一点。
以前我们问Facebook这个问题因为Facebook没有学Google走统一调度。我们问为什么Facebook说因为我的在线业务全天流量都还挺高的因为它是一个国际化的网站全时区覆盖。那我们没有中国公司这一点确实是个问题。
极客时间:所以从那之后,利用率就成团队重点关注的指标了?
毕玄:阿里每年就在不断地推进利用率指标,我们甚至讲到连财务都理解了,财务挑战研发线的服务器成本,他不关注其他,只看利用率要拉上去。
以前研发的服务器投入财务线的人是没有方法挑战的。你说要采购100台财务说太多了你说业务有多少需求、量多大所以需要采购然后财务听完晕倒了他没有办法反驳你因为你是拿业务在说事。但后来我们的财务就说看看你们利用率才多少为什么要采购不给批。我们训练了他们怎么挑战研发就很好连我们CFO都懂。
极客时间:利用率,阿里现在做到多少了?
毕玄我是2019年初不带这个团队了当时从原来的小于10%做到了20%左右,相当于翻倍了,就意味着成本有可能减半。
Google这两年据说已经推到了60%我们以前认为50%是天花板不可能再多。以前财务也问你们说利用率可以低但得告诉我多少是合理的。我们总不能说小于10%是合理的这解释不过去从技术上也得编个理由但50%我们说是可以解读的。
一是因为这是全天的平均如果说50%意味着高峰肯定会比较高平均一下已经很少了。第二是多数CPU的设计原理都是超线程你看到两个核物理上只有一个核只是说软件层面具备跑出类似两个核的能力但其实是不可能跑得出来的。所以我们说就打个折当然这有点忽悠但财务线非IT的人可以理解觉得比较有道理
极客时间但是现在Google推到60%,这套解释又说不过去了(笑)。
毕玄没想到Google竟然又突破了做到60%左右还是很稳定,所以我们觉得它就是天花板了。
现在阿里这个团队还在做去年做到了30%左右天花板是60%阿里规模这么大我们假设50%是天花板那30-50%也还有很大空间值得努力ROI还是非常高的所以这个团队一直评价都非常好。
 
 -
极客时间调度系统Sigma你们当时做的挺早的看报道K8s生态起来了之后你们就把Sigma的技术栈换到上K8s了
毕玄那是后来我们2016年做的时候Docker最火K8s还没起来。当时在调度上的竞争非常激烈因为调度其实会把下面的容器屏蔽掉Docker觉得如果自己不往上做调度很危险就开始做Swarm然后Mesos是另外一家Google刚把K8s开源出来。
而且Google以前也不做开源他的套路是发论文然后什么都不干但他在大数据上的伤害比较大之前他发了MapReduce那几篇三驾马车的论文发现自己啥也没得到然后什么Hadoop公司全起来了。
关键是后来他做云云上放MapReduce但所有开发者用的接口全部是Hadoop接口导致Google不得不去兼容Hadoop接口简直太搞笑了。他们内部觉得我MapReduce做的比Hadoop好太多了我是个成熟的很牛的东西你们竟然不用。
那之后Google才发现重要的不是发论文是做开源抢占开发者所以在K8s上Google吸取了教训开始对新套路有点概念了我先发论文占领影响力然后再发一个论文实现的开源产品。但Google不擅长做开源就找了擅长开源圈子玩法的RedHat联合起来做K8s因为Borg跟内部很多系统搅在一起没办法开源只能重做。
极客时间那16年你们刚做的时候技术怎么选的型
毕玄我们当时选择了Swarm做Sigma但2018年的时候K8s就基本垄断了我们很多的业务方用的是K8s的API访问Sigma就不通导致我们必须兼容K8s的API。
但在兼容上面,我们在很多开源路线上都犯过错误,一开始其实有一个开源的东西,但是我们先自研,然后等开源的那个拥有了最多的用户,我们就不断兼容,但是你兼容会越来越痛苦,因为开源一旦起来以后是一个很健康的社群,有非常多公司的合作,会越做越好,到了那个阶段你是抗衡不了社区的。
所以兼容这条路其实是走不下去的我们就决定不做兼容把Sigma扔掉基于K8s把Sigma做的有些东西放到里面去就是ASI。
极客时间:兼容的痛苦是指什么?
毕玄:因为社区的关键问题是控制不住,我们当年经历过很多次这个过程。
比如说一开始对我来讲这个阶段非常重要的需求对他来讲可能一点都不重要那我们肯定觉得开源做的不好需求又很急我们就大量自研做了很多Patch的东西。但后面发现开源一旦起来节奏太快它增加了很多东西其实覆盖掉了以前我们做的很多改进这个时候就很尴尬了到底是升级成它还是保留自己我们后来觉得应该尽快升级成开源因为会被它拉得越来越大。
极客时间所以Sigma的事大家都能接受当年大家也不太能预料到K8s会迅速起来所以后来Sigma换到K8s上是比较必然的事
毕玄:大家能理解也能接受。确实肯定有些人会很不舍,毕竟做了几年,而且业务效果也在,最后不得不扔掉。
但这确实是我们当年判断的失误如果更早选择K8s会更好。但16年的时候我们看Swarm和Mesos加上K8s不成熟不觉得开源有绝对优势觉得自研有优势有机会。
所以我们后来反思做技术选型的时候如果开源界已经有一个很成功的东西自己又没有什么很颠覆性的思想还是拥抱开源比较好没必要挑战。阿里在开源这条路上吃过很多亏因为以前都自研HSF和Dubbo也是典型。
极客时间HSF和Dubbo是指什么可以具体讲下吗
毕玄HSF是我们自研的产品Dubbo是开源的在整个开发者群体里肯定有最多用户。但阿里收购完一家公司会告诉他你把Dubbo换了换成HSF。
很多公司觉得很尴尬你们进来之后业务啥也没干先把技术换掉了阿里以前经常这么做。我们后来说像这种就不应该让别人换掉应该把我们自己换掉所以HSF后来新版本的目标就是换成以Dubbo为核心支持内部HSF协议的解析这样以后收购就非常简单。
极客时间我们现在站在事后看当时你们判断开源不成熟选择自研Sigma是不是因为大厂不可能说等两年等开源成熟
毕玄:不可能等,而且大厂确实挑战也比较大,要解决的问题很多,所以如果开源如果不是很成熟,很难说我一开始就选择开源。
极客时间:但一个领域,开源如果已经成熟了,大厂才开始用,是不是说明你们没有更前瞻地看到这个领域的问题?
毕玄:大厂很有可能比开源看到更快,所以确实就是你说的很尴尬,现在大厂的自研走上了一条很尴尬的路线。
开源反噬自研是之后业界的长期话题,以前很多公司都是自研,但现在开源已经被玩得太多了,什么都开源,那之前的自研到底怎么办。
反正我们的判断就是如果开源的东西已经是主流了比如说像Spring cloud那没必要做一个新东西再去跟它竞争因为我们也只能靠开源去争但如果没有革命性进步关键也竞争不过他所以我们后来做了Spring Cloud Alibaba就是觉得我竞争不过你跟你一起玩好了。策略就是这样总体还是拥抱开源因为你要么就自己做个开源要么就用开源做就这两条路。
 
水友讨论区
今天的对谈到这里就暂时结束了,重点聊毕玄当年做统一调度的经历。
虽然这些年毕玄换了不少领域但从他对成本的关注这条线讲之前做的所有事情又能大概串联起来最早做的容器T4到后来的异地多活到今天的统一调度后面他创业选择的方向也是做企业的云成本控制FinOps。这么看成本可能是一个企业始终关注的话题。
Google当年分析自己的优势也提到这一点一是排序结果的准确度比多数公司好二做同样的效果付出的成本是其他人的1/10。分析自己所在的团队/公司,你觉得优势是什么呢?
关于统一调度的技术选型,我们也聊到了开源和自研的问题,毕玄的反思是“如果开源界已经有一个很成功的东西,自己又没有什么很颠覆性的思想,还是拥抱开源比较好。”你是怎么看的呢?
如果你有更感兴趣的话题,欢迎在评论区留言,如果觉得有启发也欢迎分享给身边的朋友,一起讨论。
读到这一讲时间线已经走到了2018年毕玄马上就要从阿里离开了下一讲我们聊聊这个话题。下一讲见。
拓展阅读
如果你对统一调度的具体技术细节感兴趣,可以看这几篇:-
阿里云云原生写的揭开阿里巴巴复杂任务资源混合调度技术面纱-
阿里巴巴中间件写的:给 K8s 装上大数据调度引擎:伏羲架构升级 K8s 统一调度-
云技术的新变革阿里云13年后重构全部核心调度系统

View File

@ -0,0 +1,257 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
10 出走大厂:离职?还是不离职?这是一个问题
你好,我是叶芊。-
 -
统一调度做完时间来到了2018年。当时有这样一份报道“2018 年的 12 月CTO 行癫调任阿里云总裁,宣布阿里全面上云,组建了以毕玄为上云总架构师的架构组,确定了上云的方案和步骤。”-
 -
从外部视角看,我们很容易推测好像毕玄又被委以重任了,但在当时他却有了离职的想法,那之后一年多就走了,当时到底发生了什么?-
 -
我们继续对谈聊一聊他离职的故事以及对自己阿里14年的总结。
 -
极客时间:看你的经历,统一调度做完,你就去做集团上云的项目了?
毕玄当时18年年底有个组织调整行癫宣布上云让我兼集团上云的架构师但我也没有做太多集团上云说实话早就奠定了基础我只是定调的就什么叫集团上云。
腾讯那篇文章很像我们当时上云把里面的公司名改一下就是阿里一模一样说明两家公司对上云这个事情内部争论都是存在的。因为什么是上云行癫是不会说的这么清楚行癫只会说你们2年搞定我对外说完了剩下你们做不做得到那就是你们的事了。
但没有人知道做到什么程度叫做上云有100种方式解读可以解读得很简单也可以解读得非常难我当时还是定了一个比较有挑战的目标。
极客时间:上云会分业务吗?
毕玄:不分业务,肯定是先上核心。阿里后来做所有重大技术变革都是先做核心业务,然后再做边缘。
极客时间:但一般不是会用边缘业务先试吗?
毕玄:我知道,但你先做边缘并不代表任何东西,因为核心不会觉得你上了边缘就解决了它的问题,它还是没有信心,但是如果你先上了核心业务,边缘会认为我也没问题,后面工程收尾就变得非常简单。这是阿里后来的调整,最早我们也是先做边缘,但发现那样工程周期更长,而且很难,但一上来就搞核心,后面其实很简单。
极客时间:后来你有段时间去带视频云团队了,那是怎么回事?你之前好像完全没有视频方向的经历。
毕玄上云做完19年的时候我准备离开其实18年我就想走了因为一些汇报线上的问题但公司各种谈反正折腾了很久19年年底刚好疫情过年的时候行癫说要么你去带视频他还是比较懂我的知道我想做的是偏基础技术的东西加上离职也离得不是很顺利我就去了一直带到21年8月离职。
我是一方面希望在技术上拓展一点另外视频是阿里云一条不算小的产品线在商业上更有要求所以我觉得也挺好可以去看看偏商业的业务是什么情况。可能我运气也相对好一点2021年刚好是音视频在云赛道最火的一年声网、Zoom都到天上了声网市值100多亿美金Zoom 1000多亿美金。
极客时间:那在视频云团队,你负责的什么?
毕玄:当时技术我几乎是不管的,我带产品、销售和运营,全是业务团队,拜访了很多外面的各种客户。现在想想也不是坏事,算是一个积累,我对商业有了更多感受。
我发现商业是完全不一样的。商业不是说你做得多好就一定会成功,可能要看很多业务策略的东西,但业务策略就跟技术完全不一样,更模糊。技术,你觉得这个方向可以,解决技术问题就好,但业务,你觉得这个方向可以,有很多内外部因素会影响,很多问题也不一定能解决。
 
 -
极客时间如果总结一下自己在阿里的14年你觉得最骄傲的事是什么
毕玄还是那三个从来没有变化HSF、异地多活和阿里的统一资源调度。
极客时间:最遗憾的事呢?
毕玄:没啥遗憾,挺好的,阿里这一段我是真正在搞技术,专业性、深度、广度都得到了很好的提升,而且我们这拨人也跟着得到了很好的回报,这也很重要。
但说实话这就是幸运我们这波做基础技术的人从2007年到2021年刚好是阿里最高速发展的一段时间业务高速发展就带来了很多技术上的问题总要有人去解所以阿里给了很多人机会。
因为换一波人其实也一样能做好,工程师最擅长解决问题,在阿里,问题已经展现出来了,你只要去解决就可以,这对大多数工程师来讲都不是难题。如果你不在或者在另一类的公司就不可能,不是说你有没有能力的问题,没有平台,你有能力也没用。当然现在有点变化,因为中国技术创业的环境好了很多,以前是一点机会都没有,现在应该有那么一点。
极客时间:像之前讲的淘宝消防队,在外面很难知道问题是什么,但是你在平台里,问题就在那等你解决?
毕玄:技术人就是这样,你平台不够大,碰到的问题就不是世界级,可能别人早就碰到并且已经解决掉了,那你就不可能做很创新性的,最多结合公司的情况,做一个很好的工程落地,但你不可能引领。
但大平台就不一样,你更有机会做出一个世界级的引领性解决方案,这对程序员,尤其做基础技术的人很重要,如果你想很好地发展,是很难离开大平台的。业务技术可能不大一样。
比如说阿里,我很多好朋友更早就走了,他们当时都问我为什么还不走?我就说,在阿里这个平台上能看到的问题,其它公司都很难看到,关键是在阿里,我又有机会去做,等我做完了,如果我看不到还有什么问题觉得很难了,那再说。
极客时间看你当年的微博说除非去Google不然你是不会跳槽的
毕玄因为Google确实很让人羡慕它看到的一定比我们更远到现在我都很相信。
极客时间:有人说你是“技术大牛”“毕大师”,这样的标签你怎么看?像“毕玄”这个花名本身也是一个标签,还是说你其实不在意这些?
毕玄:所以我没换花名。
极客时间:你对这些标签的感觉会有变化吗?
毕玄:会有,我很多年前比较在乎。
极客时间:比较在乎,是什么时候?
毕玄05、06年吧进阿里之前。当时去参加小规模的技术讨论会以前BEA经常搞User Group那种我们这些小技术同学就去参加觉得哇上面的人简直太偶像了那个时候我们的梦想就是能不能认识这些人一起聊个天以后能不能自己去讲。
那个时候是很在乎的最重要的就是希望能进入那个圈子。但我可能后来写了OSGi那篇文章在那个圈子里就觉得没什么了。
再后来,我觉得技术最重要的是带来了什么。很多人会说自己技术好,那你到底用什么来证明呢?我觉得最好的证明肯定是,你做的东西对这家公司的整个业务发展有所作用。当然技术人可能还会追求别的,比如方案具备引领性,推动了这个技术领域的发展,那就更好了。
像阿里尽管我们是09年做的分布式改造但即使到今天做的思路至少影响了中国大部分互联网公司后面做的异地多活、统一调度也在逐渐影响。
极客时间:你们当年有觉得自己做的东西影响很大吗?
毕玄我们觉得这些外面都用不到。就像分布式我们觉得大部分公司不需要分布式但现在我们认可AWS讲的现在的软件跟当年的差别很大所以分布式成为很多公司的选择。
做异地多活我们更认为这玩意儿除了阿里、腾讯这种超级大的公司有诉求中国其它公司应该都不算强烈但这两年越来越多的公司开始去做这个方向甚至国家比较重要业务的企事业单位都开始做。调度也一样就很奇怪Google其实做了很多年中国也没有几家去跟进但阿里做完明显有好几家头部公司都在做了。
对技术人员来讲这种就很有成就感因为别人讲到的时候都会提及你看阿里是怎么做的这就像我们说Google是怎么做的就是信心这很重要。
极客时间:他们就不用再证明。
毕玄:对,而且周期肯定会缩短,人才池也会扩大。当年我们做分布式碰到很多问题,但现在中国能做分布式架构的人简直太多,之前能做异地多活的人也少,但慢慢也能看到各家做过的人变多,调度以后也会是这样。
 
极客时间:当时你几次提离职,这么坚定,是想好自己之后要干什么了吗?
毕玄:没有,但出来创业是确定的,创业干什么一点都不确定。所以我们现在也建议还是先想好你们到底要干什么,再出来,别冲动。因为创业跟在大公司差别非常大,我离职的时候跟很多人聊,总结出来就三个选择。
第一,继续去一家大公司。找一家公司,任一个更高级别的位置,理论上也能做更大的事情,但后来我想了想觉得没有太大意思。现在没有多少平台让我觉得面临的问题多不一样,可能更多就是把我以前做过的去那边重新落地。
而且所有大公司我相信不管是多高级别你做事都会面临很多组织协作层面的问题很多约束没法避免因为大公司分工特别细你要面对的横向部门会非常多即使CEO也受很多限制我想不出来什么职位不是这很正常。所以我觉得大公司还是不考虑了。
第二个去一家中等的在上升期的公司可以去任职CTO跟随上市。很多人会选这个我以前有个朋友梦想就是离开阿里以后去美国敲钟所以他就选了一家即将上市的公司去任职高管。不管怎么样梦想肯定实现了那也可以的我觉得挺好。
但这个对我来讲,也没有太大意思,敲完钟然后呢?我就该走了吗?就没有太大的吸引力。所以只剩一个选择了——创业。还有退休,我觉得现在退休有点早,还是得再干几年。
极客时间:还是想做点什么。
毕玄:我们一帮技术人员,很多出来就一个原因,想找个机会做能再吹一把的事情,要的就是成就感。那成就感怎么来?就是前面讲的第一在公司有贡献,第二做的东西在业界有影响力,最好它还能被很多人用。
我以前跟有些做管理的说,对成就感、对一个人是不是成功的判断,技术人员跟很多非技术的人,尤其高层的管理者,是不一样的,说得更极致一点,世界观是不一样的。
对我们技术人来讲只在乎你过往做了什么你做了一个东西还能被很多人用就是最牛的。像Trustin Lee做了Netty更不用说Jeff Dean这种写了很多东西还有写各种语言、框架的我们不会在乎他在哪家公司任职什么级别带多少人根本不Care好吗。
极客时间之前不是有个段子Python之父简历上只有一行字I wrote Python。
毕玄:对,最看重的是作品,但我们后来也发现,不仅技术是这样,事实上所有的都这样(笑)。
你说即使是娱乐圈,大家也看你拍了什么电视电影,唱了什么歌,越多的肯定就越大牛,像周杰伦这种一长串的就是巨牛。其实都一样,等你老了,回顾人生的时候,没有人会记得你在哪家公司任职了高管,一点都不重要。淘宝总裁有多少任,没有人记得,你说你做过淘宝总裁,但大家都忘了你做过,这才是最悲剧的。
好几个阿里出来的都是这个梦想,只是觉得在阿里确实有点难。想想自己大概还能工作多少年,阿里前面的事好像还挺值得吹下牛的,但我们发现如果再这样下去,就没什么可以吹的了,这就不大对劲了。
极客时间:不太对劲?是指一直当管理的状态吗?
毕玄我们不希望到老了回顾人生的时候发现全是更早的中间有10年没有任何东西那大家肯定会说你那10年都在混。因为我们这种人退休了八成都会做点咨询做咨询肯定不希望自己谈的都是十几年前的案例至少能稍微近一点否则有点难。
 
 
极客时间:离职后,创业是确定的,那当时你有想过内部创业吗?
毕玄:如果你有机会在阿里做,确实没必要离开,何必呢?像玉伯做语雀挺好,你既然还在做一件足以吹一辈子的事情,那就继续干着,有人给钱,什么都不用你管,多好。因为想做一件大事,无非是找人、拿资源,在内部你去找上级、总裁要足够的支持,这就是一种资源。
但是,我要做的事情不光要资源,还要横向部门的各种支持,比如要销售线、市场,这就很难,总裁也很难,因为他很难偏向你。
以前我们想过,出来以后最大的损失是品牌,我们将失去阿里这个巨大的招牌,这是最值钱的,这确实是个非常大的伤害,但要资源也变得简单了,因为我只是找投资机构要钱,剩下所有都是自己决定。
极客时间:这个硬币两面你们是可以接受的。
毕玄:我出来创业前,很多阿里高管跟我说,创业也没你想得那么自由,最后你还会受限于股东、董事会等等。但必须说至少在前几年,你并不会受制于他们,自己有绝对话语权。
极客时间:一个创业公司,前几年的规模,可能也没有到别人想要插手。
毕玄:对,人家根本就不会插手,就你这,他还怕插手一下万一挂了。所以你考虑好两个问题就行。
一你想做的事,到底是在阿里做成的概率更大?还是你出来做成的概率更大?如果出来的概率更大,那就别纠结了,你要想好你会失去什么,阿里的品牌,对很多人来讲还有阿里的待遇。
二你能不能在这件事情上坚定地干个比如5-10年在阿里说实话你要做一件事情5-10年很难你可能自己想但有一天你就被组织调了。
极客时间:所以当时想清楚之后,你还是决定出来为自己的技术梦想奋斗一下。
毕玄:但说实话我出来创业以后才发现,这个命题成不成立还要再想一下(笑)。
因为创业还是一个非常商业的事情。技术梦想当然可以有,没有问题,我也很羡慕用技术梦想创业的人,我也想过,能不能做个东西让很多开发者用,如果能做出来就很成功了,至于这玩意儿到底能赚多少钱都不重要。
但后来我觉得这有点不靠谱,因为你创办了一家公司,任何公司都是商业公司,想发展好,基础是这家公司能赚钱,这个当然很现实,技术的人都不太喜欢听。
极客时间:成本、收益?
毕玄技术人不愿意听这个很多阿里出来创业的就非常技术梦想型我想做这个事情对世界产生一些影响至于赚多少钱我都不Care。
但这种准确来讲,你不算创业,你只是换了个地方干活,然后你还需要上面有个人给你创造出一个空间来,这跟你在大厂的区别不是很大,可能还更难一点,因为你得在外面找个人盖住你,这个难度更大。
创业最大问题就是这个,你必须考虑能不能创办一家未来具备持续盈利能力的公司,如果不具备,梦想就不可能实现,因为你做到一定阶段,公司倒闭了,那也没了。所以我们就一直在想到底能干什么。
 
极客时间:那想创业方向这事,你们想了多久?
毕玄:很快的,我们出来以后,一两个月就基本确定要做什么了,无非就是几个方向想可能性。
极客时间:你的思路是什么样的,可以具体讲讲吗?
毕玄:像我们这样第一次创业的人,八成只能做自己擅长的,其他的概率非常低。
比如我们看小鹏、雷军你说后来雷军做手机他难道懂手机吗他肯定不懂但是因为前面他成功经营了金山小鹏也是做汽车之前创办了UC。
极客时间:第二次创业的时候有之前的创业经历做担保?
毕玄:因为已经有足够的人脉圈和钱了,最重要的是钱,持续找钱的能力非常强,投资人就根本不在乎现在做的事他擅不擅长,你很靠谱,给你砸再多钱都行,赛道最好越大越好。
现在我们说好后悔,如果你真的想做一家对世界影响非常大的公司,说实话,最好不要在大厂待太久,因为连续创业才有成功的可能。我不太相信一个人创办第一家公司就超级大,王兴之前折腾了好多家,黄峥也一样折腾了好多家,张一鸣也是,对不对?马云之前也创办了好多次。马化腾比较特殊,就创办了一家,运气比较好。
极客时间:你说的,想创业大厂不能呆太久,是为什么?
毕玄:在大公司,你最大的优势是带领过大团队,见过大平台大世面,所以你的公司如果未来能成长成一家很大的公司,大家相信你能带领好。但关键是你现在创业,能不能走到那步其实是更大的挑战。
极客时间:你如果重来一遍的话,觉得自己什么时候出来更好?
毕玄:也许上市后就可以走了(笑)。因为创业最好不要有太大经济压力,不然很容易变形,把公司做成目标就只有赚钱,这样会容易失去选择权。创办公司当然要赚钱,但选择还是需要的,比如说短期有些钱,如果对公司业务发展没什么意义,就不要赚好了,没有什么,亏损就亏损,你是能接受的。
但你想,如果创业者压力那么大,公司很容易出问题,他如果真的很缺钱,比如连生活都有问题,我觉得会不择一切手段。所以我也很佩服以前创业的一帮人,压上所有身家,哇简直太牛了。
极客时间:现在大家已经习惯了创业要找融资。
毕玄都有退路以前都是All in。
极客时间:中国的投资环境也在成熟,但刚刚讲到第一次创业,国外成功的好像多一点。
毕玄国外也比较特殊很神奇你看微软盖茨之前没干过啥Facebook马克也没干过啥上来一把成功Google也是。
我觉得是因为国外卷得没有中国厉害,他们如果面对一些成熟的创业者,我觉得也干不过。但中国,你如果真的想做对社会影响非常大的赛道,除非以前就是这个赛道的人,那很幸运,就像很多做芯片,做机器人的,他以前背景就是这个,像我们这种就没办法。
To be continued……
 
水友讨论区
对谈到这里就暂时结束了。今天的重点话题是毕玄对自己在阿里14年工作生涯的反思。
对于工作中的成就,他说“说实话这就是幸运,因为换一波人也一样能做好。”聊到工作中的成就感来源,他说技术人的成就感很简单,第一在公司有贡献,第二做的东西在业界有影响力,最好第三还能被很多人用。
至于为什么会离职?他的回答背后折射出来的是对个人成长的高度关注,理由也很简单,因为这个平台不太能让他再做值得吹一把牛的事了。聊到这里,突然想起李诞写的脱口秀工作手册:“工作的本质是交易,我们在用自己的时间和才能,通过一家公司,与市场交换金钱。要意识到你的全部人生都理应要为你的创作提供养分,为它服务。好的工作节奏,就包含了学习,包含了养分。”
如果让你对自己的学习/工作生涯做一次总结,你会说什么呢?你觉得自己的高光时刻有哪些?光环是平台带来的,还是个人能力带来的呢?你的成就感来自哪里?你现在正做的东西有给你带来成就感吗?
期待在评论区见到你的身影,如果对今天对谈的其他内容有感想,也欢迎你发言讨论。
下一讲我们会接着毕玄思考自己创业方向的思路聊,下一讲见。
拓展阅读
1. 浅黑科技就腾讯上云的过程写过一篇文,毕玄说和阿里当年经历非常类似:腾讯在命运的棋盘上砸下一颗钉子
2. ArchSummit 全球架构师峰会 2019 北京站有一次演讲:把阿里巴巴的核心系统搬到云上,架构上的挑战与演进是什么?
3. 毕玄离职的时候写了一篇对过去的总结和未来展望:再见,阿里毕玄

View File

@ -0,0 +1,272 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
11 CEO心得大厂出来创业最大问题是对钱没概念
你好,我是叶芊。-
 -
在一段波折的离职过程后,毕玄从阿里出来了,决定创业,但他却完全没想好自己要做什么。-
 -
回顾他的职业生涯,异地多活、代码工具、统一调度都挺有市场的,他也提到自己差点就去做代码了,投资都快谈完了,最后想了想还是悬崖勒马改做现在的调度。今天我们就接着创业继续聊,看看他是怎么选择创业方向的。-
 -
你可能暂时对创业不太感兴趣,没关系,听一听这位技术大牛对市场以及个人优劣势的分析,相信对你之后的职业发展也会有帮助。
 -
极客时间:之前聊到创业方向的选择,第一点是选一个自己相对有优势的领域,然后呢?
毕玄:第二点我们特别关注的,从商业模式上来讲具不具备盈利的可能性。盈利,最重要的是你对客户的价值是什么?如果有价值,客户是肯定愿意付费的,所以关键是价值。
我们第一想法是代码相关这对开发者影响是最大的所有的人都会用。所以代码智能化其实是我们考虑的第一方向几乎都谈完了。但最后我觉得最大的问题是我们团队没有优势之前有希望做成是因为阿里的环境但离开了就要跟GitHub对着做但是跟他们比我们一点优势都没有这玩意儿咋成功
另外商业周期非常长GitHub已经算很快了但它做了两三年现在也只是推进到了一定阶段。但在中国你从开始到商业化可能要5年以上那就要考虑一下5年你的公司持续没有收入生存就得靠不断地融资这难度太大了。
极客时间:而且就像你说的,技术的人,持续找钱的能力相对没那么强?
毕玄:对。而且大公司的人最大的问题是做所有事情没有成本概念,这才是悲剧。
比如说我,以前就算财务给我一个数,一年亏了多少亿,我也没有任何感觉,反正不是我出钱,有人出,而且还会觉得亏了这么多亿又怎么样?我还得加人。你就会把这个故事讲下去,一点都不在乎,因为你亏损了不用自己去融。
大家对钱没有概念,很多大厂出来创业的人,钱都不知道花哪去了,稀里哗啦就没了,心里觉得相比以前,现在才这点钱,随便花,然后就没有钱了。
在阿里,你说服了上面给你投资源做一件事情,失败了最多也就是年底绩效差一点,奖金少一点,没有别的了,不会失业也不会倒闭。但出来了这都是事实,你没有钱,公司就倒闭了,员工是很难跟你讲梦想的,先必须有合理的报酬,梦想只是个加分项而已。
极客时间:所以代码方向还是大厂有优势,你当时还想过什么方向吗?
毕玄:另一个就是中国现在特别火的开源,人简直太多了,做大数据的、做数据库的,不知道有多少家,一面墙都不一定能写完(笑),已经卷成比花卷还卷了。
对技术创业来讲,选这条路,你前几年还是挺爽的,因为你要考虑的是用户不是客户,用户都是免费的,免费好谈,你可以刷脸,别人用着合适还可以帮你推广站台,都没问题,如果前几年你还能融到资,生活简直不要太爽,就乌托邦。
但是我觉得,到了某一年,你需要尝试商业化的时候可能会面临非常巨大的挑战,尤其在中国。你看,有哪家公司通过开源积累了大量开发者,最后通过漏斗效应商业化成功的?就现在看,我觉得八成是不大可能。
极客时间:为什么国内商业化成功不大可能?大家对付费的观点不同?
毕玄:你想中国市场购买技术软件的是什么行业?多数是金融,但金融又不会单为一个技术软件付钱,它是大项目招标,里面包含技术软件。除非你有能力直接去投标,不然就得在上面做一些应用软件。这种阿里云可以,因为阿里云有品牌,他其实也不是自己干,他也只卖下面基础设施,上面可以找合作伙伴,但你很难,你一家创业公司凭什么?
而且大家去见客户,免费的情况下也是什么都好谈,随便谈,但只要说到要收一块钱就是另外一回事,这就变成了公司行为,不是个人的,公司对公司是一个非常正规的行为,因为决策不一定是他能做的,而且金额越大,决策链条一定会越长,不管什么公司。
极客时间:但是国外有很多开源到商业化的成功案例,如果参考国外经验呢,中国公司从开源到商业化的路?
毕玄海外没有问题像Confluent、Elastic、Mongo等等都成功走完从开源到商业化的过程每个季度的营收都在几个亿美金增速非常快虽然还是亏损的但你至少能看到希望。
但现在缺的是人才,到底去哪找一些人,把开源产品在欧美完成商业化。如果有谁能走通这条路,对中国的软件产业会是巨大贡献,只要有一家走通,关键人才就有了,以中国的复制能力,一家公司有了,中国就全有了,这不是问题,现在主要是没有人。
极客时间:对做开源的公司来说,以前大家会讲亚马逊的故事,人家强势,我就是不盈利。不能这样吗?
毕玄:但你看他最终还是盈利了,而且一把就赚回来了。大家愿意投你钱,是因为他相信你一把可以赚回我以前投给你的所有的钱。
而且ToC是有可能一把赚回的但ToB不可能这个逻辑根本就不成立。所以这些开源商业化的公司还真是要看一下因为美国这几家已经很成功了一年营收接近10亿美金增速70-80%,但仍然亏损,这太恐怖了,这样下去你到底能不能盈利?如果不能盈利,这其实是个泡沫,对商业公司来讲什么叫泡沫?就是这个,能盈利你就不是泡沫,不能光讲梦想。
如果可能性是存在的就可以了,就有信心,对一家公司来讲说实话这就是最重要的,尤其对创始人团队,这伙人是很苦逼的,因为就是熬,你得熬很多年,不到盈亏平衡的那一天,其实都不算熬出头。但到那一天情况会好非常多,很多都变了。
极客时间:所以现状是没一个跑通,又不能靠画饼,那中国的企业从开源到商业化,你觉得有希望吗?
毕玄:我觉得肯定会有,无非是几年的问题,以及是谁的问题。这条路也确实是技术人员创业最好的选择,阿里出来了这么多人创业,多数选择的也都是这条路。
因为中国已经进步了一点。以前开源,很少有中国人做的东西是主导,或者中国人做出来影响了全世界,但现在有了。现在除了最底层的核心技术,中国在应用层的技术能力是可以跟国外抗衡的,没有太大差距,中国的场景又更丰富,能诞生出很好的开源产品,然后影响全世界。这个套路已经成熟了。
有些投资人赌也是对的,他们为什么很愿意投这些。我之前很震惊的,因为商业上很难讲通,但他们说其实很简单,他们相信中国一定会有一家走通的,是谁倒不重要,他只要押大赛道就可以了,只要有一家成功就没有问题,但小赛道还是不要押,成功了回报也很低。
极客时间:看我们讲到的几个领域,代码智能化、开源数据库等,这些方向都挺好,但是你认真想过还是决定算了。
毕玄:都挺好,我也挺想做,但以我们创始团队的背景,如果创办一家公司我觉得最好不要做这种。
创办一家公司,一做自己相对有优势的,二做对客户来讲是可以直接讲清楚价值的,因为这样商业模式和收费才能闭环,如果能完成这两步,我觉得未来这家公司是有可能走向盈利的。
如果你想做对社会有更大影响的大赛道或者就纯粹想Buying一个梦想最好你先创办一家成功的公司做成具备盈利能力并且能持续盈利的那个时候再投一点钱去梦想或者再做对社会影响力大的陌生领域就可以了。有了很好很健康的现金流你随意好了想做什么领域都可以像阿里阿里云能做为什么就是有淘宝能持续产生健康的现金流。
 
极客时间:你最后选择了做调度,你怎么看这个方向的,可以多讲下吗?
毕玄:看我们在阿里的经历,有什么事情是相对外面有优势的,也要相对可能被产品化和规模化的,另外对客户有价值的,我们觉得只有调度有可能,其它都很难。
异地多活具备领先性,但它不具备通用性,所以如果做这个方向,会做成一家咨询公司,但咨询是我们退休的目标,不是现在,而且咨询不可能做大,虽然比较赚钱。因为我们现在发现,总体顺势而为还是很重要的。
像国外FinOps云成本优化要开始起来了算是个新词一个方向火没火最容易判断的就是看有没有越来越多的创业公司并且拿到了不错的融资过去一年国外做FinOps拿几千万美金融资的公司已经出现了。
但中国FinOps还是一个概念还没有能说出一家公司确实做出名堂的当然这对我们来讲就是一个非常好的现象。
极客时间如果FinOps还在概念阶段那客户容易理解你的产品价值吗
毕玄FinOps对客户的价值现在是被认可的。因为很多公司上云之后发现成本完全不受控原因是云太好用了。
以前不在云上的时候,机器的采购内部要过很多流程,还要真实地去买,物流都需要时间,但在云上可不是这样,你点一下就买来一台,而且钱还不是现在付,是一个月后付,所以就失控了。连我们这样的创业公司都出现了,到了月底,一看帐单,怎么花了这么多钱?所以我们相信这个问题确实存在。
另外是服务器成本控制,我们觉得阿里应该是做得非常好的一家,方法是有效果的,也是可以通用的,这对客户来讲是有价值的,尤其大环境都在喊降本增效。
为什么FinOps刚好在现在这个时间点火了一是云的便利性带来了成本失控二是以前大家都不Care成本而已现在这个方法可能会被大家认可所以我们觉得这个帽子对大家来讲不是那么虚幻的话题。
极客时间:有一点好奇,在服务器成本控制这个方面,除了你们在做的这种方案,有其他的方法吗?
毕玄:我们觉得没有。
全球很多公司探索这个方向但目前来看只有Google、阿里和百度在非常成功地往前推进而且结果也证明是有效果的其他公司都很难所以现在中国头部公司做的方案都很类似。
而且做这件事涉及的专业领域很多像我们为什么要这么多人因为需要大数据团队、调度团队、操作系统内核团队我们总共有5个合伙人全是技术出身覆盖了几乎各个技术领域。但对中型很多公司来讲要组建三个这样的专业技术团队其实很难。
这意味着可能要投入比如四五十个人纯做技术,但一家中型公司的研发人员就那么多,很难投到这个数量,就算能投,但中国做过这件事情的人特别少,反正就这几家,就这伙人。如果他们不出来,其实基本也都不出来,你没有经验自己做,阿里都花了三年,我们觉得你不会比阿里快。
所以我们给公司的定位是,不是说你不能做,是我们可以加速你的整个进程,先让你快速拿到一定成果,对中型公司来讲这很重要,他们要的就是尽快拿结果,而不是在这里浪费太多时间。等他拿到结果,你要继续往下发展的,是没有问题。
 
极客时间:你现在做的调度产品是什么样的模式?
毕玄它比较像PaaS至少目前阶段的产品形态你可以认为就是一个PaaS软件可以部署在各种环境下私有云、公共云等等部署完客户做对接基本就可以了。
贝联珠贯打造全球顶尖的资源调度产品将全球企业的资源利用率提升到20%以上从而显著降低各企业每年投入的机器总预算节能减排促进碳中和。技术栈基于K8S/Yarn构建对K8S/Yarn的关键部分做深度开发和定制提升其规模能力、稳定性以及多云/混合云管理,包括离在线等不同计算形态的混合部署。
极客时间:这和你之前在阿里做的统一调度?
毕玄:区别就是更加产品化,就这一点。
阿里或者说任何公司,内部做的东西都只是贴合那一家公司做的一个特殊的解决方案,阿里以前都叫一个能力。但出来你要把这个能力变成一个产品,能面对各种各样的场景,这是很不一样的。
因为能力不需要考虑很多运行环境环境就是设定好的我只是解决这个环境下的问题但现在你不知道客户是什么情况能不能有个产品通用说白了比如A客户是这样的我投了10个人做在做B客户的时候不用投10个人那就是产品。
所以你想一家公司最后能盈利是因为产品的边际效应产生了比如我总共50个人研发第一个客户10个人做第二个6个人第三个可能只投了2个人这就有了。如果不能就完蛋了做一个10人二个10第三个客户还是10这样研发是做不下去的没有边际效应。SaaS为什么大家都觉得很好是因为边际效应太强了你投了一把后面就躺着数钱。
极客时间:那对调度来说,你觉得有办法实现边际效应吗?因为每个公司的技术基础肯定不一样。
毕玄:对,会不一样,但我们希望能产生边际效应。交付成本肯定都是需要的,无非是成本我怎么收敛。
第一个项目一定投入非常大,搞不好是整个公司,但第二个客户我必须把这个成本压下去,压到一个数的时候最后我算嘛,总体投入是多少,我从每个客户身上能获得多少利润,然后算边际效应是多少,这里我就有一个很好的定价了,但前面的定价肯定是不那么合理的。
所以定价这个事,在大公司是不可能感受出来的,以这个产品的定价,要做到多少客户才盈利,很多人搞不好算一下发现自己永远都不可能,那就成做慈善了。当然大公司有很多补充,我这里可能是亏的,但带来了其它的,所以总体是盈利的。
但你小的创业公司就一个东西,所以别想太多,如果不赚钱,你就是不赚钱,而且会永远不赚钱,关键是你不赚钱公司迟早会倒闭,因为我不相信有人融资能力是无限的,公司一直亏损,还一直有人给钱,哇塞这也是见鬼了。
极客时间:现在像定价、财务这块,自己是在补课吗?
毕玄:那必须补,还有行政,经营公司的各种乱七八糟的事情。
CEO不就是这样很多技术人出来创业肯定想做很多技术什么的别扯了你出来以后就会发现CEO就是一个打杂的公司什么事没人干就是CEO干如果有人干你最好就不要干了你就别管了那个人如果你很信任的话就是这样。
以前在大公司你完全不用经历,都有人在背后帮你全搞定,但你出来以后不可能,除非你有这样的合伙人,但多数技术又没有,所以你全部得自己学。像财务,你得始终知道自己哪天会倒闭,哪天手上的钱就会没有了,这太重要了。
我们现在非常羡慕出来创业后能打平甚至盈利的,这才是公司。
极客时间:为什么?如果打平了,就验证了公司的业务方向是可行的?
毕玄:打平了节奏就都在你手上(笑),而且你的心态会很安稳,否则你永远都活在会不会哪天就没有钱的噩梦里,想下个月怎么发工资,这个时候不管你有什么梦想,其实都没有意义,有啥意义?你首先得有钱。
我们一帮出来创业的CEO们现在聊天已经没有人聊这些很虚幻的梦想了都只谈大家手上的钱还够不够够多久。
极客时间:不谈梦想,大家现实地互相勉励。比较理想的情况要屯几个月的钱?
毕玄现在的融资环境至少要一年半以上我们都是按照18个月准备的就是未来18个月里没有一分钱的收入这家公司也能活下去如果不能的话风险会比较大。
 
 
极客时间:你现在做的调度领域,有没有期待什么时候自己可以打平?
毕玄那早了去了。ToB太难了一开始赚不了钱后面你也很难讲能赚回来千万别讲ToC的故事我前面几年亏了多少钱后面会一年把钱全部赚回来。
极客时间你觉得ToB想打平要积累多久或者说公司一般发展的节奏是什么样的
毕玄至少3年以上。你看ToB做一个新东西第一年说实话就是种子客户培养如果种子客户做得很好到第二年你基于种子客户的赛道可以做规模化复制就是复制多少个的问题第三年看你能不能扩到一个更大的领域不限赛道通用的或者如果能在全球化上有所展现这样的公司未来就很有可能发展得非常好。这是最理想的节奏。
极客时间:第三年你提到“全球化”,这个之前还挺少提的。
毕玄:全球化是个很有意思的技术新命题,因为在中国,技术人以前没有见过全球化,有什么新问题很难说,但我觉得我们这种人是做不了的。
极客时间:创始人的文化背景不一样?
毕玄:差太远了,中国做全球化成功的几个业务,创始人基本都在海外生活了很多年,非常知道海外跟中国的异同是什么。
你看马云那一代创始人,跟移动互联网这一代差别很大,你可以认为他们确实偏草根,其实也没有那么草根,只是看起来偏草根,但到了移动互联网这一代全是精英,基本全是名校的,也都有海外背景,像张一鸣、王兴这些人天然对多元化文化有更深的理解,注定他们这一代有可能成为更好的企业家。
我觉得这是创始人基因决定的,没法弥补,即使老一代创始人你招了一个也没法弥补,因为过往太成功了,他肯定觉得我更懂,你们懂个啥。但新一代不一样了。
极客时间:新一代的创始人,面对的是新一代的问题?
毕玄:对,他们就会去解决。美国为什么能做好全球化,他们小孩一出生面对的就是各个国家的人,他觉得这不很正常吗?但中国根本没这环境。
极客时间:你现在是在创业的第一年,感受怎么样?
毕玄:第一年你还在相对乌托邦阶段,还在蒙头做一个自己觉得对这个世界很有价值的产品,是最爽的,拿了融资尤其,一你不缺钱,二业务增长也不是你这个阶段最重要的目标,诉求还不会很强烈,没有到比如要追求盈亏平衡,自己能做一两家,就已经觉得我这产品太成功了。
但等见到真正的客户让他付钱的时候,你可能就发现原来根本不是这样,就吐血了,而且后面业务压力会很明显,第二年可能就会期待你做复制的速度,第三年可能要求高增长,甚至开始要求你打平。大家觉得创业第一步就很痛苦,但后来你会越来越痛苦(笑)。
我们节奏不算太慢去年11月成立的到今年6月左右就开始接触外部客户我就跟团队说美好的时代要结束了。
你会看到客户跟你想的肯定有一个GAP还可能很大这很正常当然就看你怎么看待像我们就觉得挺好至少说明客户对我们还是有点兴趣的虽然有GAP但客户对我们有兴趣只要弥补这个GAP我们还是有点机会的嘛。
当然你也会有另外的打击,比如说拜访很多家客户可能最后感兴趣的就是几家,这就看你怎么接受了,因为这就是失去品牌后最大的问题,所以创业公司确实比较难。
 
极客时间:在产品的运作节奏上,有做市场、品牌这些事吗?
毕玄:我自己的看法,这取决于你公司定位的客户类型。比如说如果你做开源,那不用说了,肯定是要重点做品牌,做社区的运营,重兵配备。
但做ToB很多是商业的像我们每一个客户都是商业的不存在免费用户而且我们做的是中大型他们其实不大会受Marketing和品牌的影响因为中大客户没有多少是我网上看篇文章、听到哪家公司来找你问一下能不能提供个什么卖给我这不大会发生。
另外销售来了其实也没有用之前我们见了很多客户可能有20多家很多对我们有兴趣但我们后来都很害怕。
极客时间:啊见了这么多客户,也都有兴趣,为什么会很害怕?
毕玄:说实话我们的成功率还是不错的,客户觉得挺有意思,就会说要不你们来测试一下。但最大问题是我们自己并没有准备得那么好。
极客时间:没准备好,是因为你们初版产品还在做?
毕玄比如说有四五家让我们同时去试一下但我们没有这个人力。所以后来我们7月份叫停了所有的客户拜访都不去见了我们觉得目前已经有明确可以共建的客户了就先做好这些其它的不用纠结我们相信只要做好了至少在中国目前的情况下那几家应该还是我们的。
极客时间:所以你们去找这些客户的策略是什么?
毕玄:逻辑很简单。首先我们认为中大公司一定有自己的客户群体,剩下就是一家一家拜访,当然你肯定先选赛道里最头部、最有影响力的,所以这种情况下反而越低调越好。
因为你现在没有客户,太高调在中国真不是好事,卷得非常厉害的,抄袭也非常严重,你最好能非常低调地出现在各中大客户的名单里,毕竟市场可能就这些客户,谁先做掉这里面的大部分,谁就赢了。
等需要做品牌的时候,其实我已经占领了不少客户了,需要更规模化的。但前期我们觉得那些一点用都没有。
极客时间:前期的客户触达具体是怎么做的?
毕玄:刷脸。因为你创业不可能什么资源都没有,肯定或多或少有点,然后就要去拜访这些人。
但比较难的是因为我们每一个客户都是要付费的,加上单价又比较高,不是大家随便帮你刷个脸就可以的。付费到一定金额就非常复杂,决策链长决策成本高,创业公司又没有品牌,我为什么要选择你?光这个问题在内部都能被挑战到死,你跟那个人关系是很好,但你为什么要定向采购这一家?会不会涉及利益?为什么不引入更多家供应商比价?
种子客户是纯属刷脸和信任根本没什么别的否则别人只要问你有客户Case吗没有你就已经出局了。但是创业公司第一步如果刷不到种子客户基本就没有什么希望了。
 
水友讨论区
今天的对谈到这里就暂时结束了,重点聊的是毕玄对创业的思考和认知,毕竟做复杂的业务,认知决定了产品成熟度。
这是他的第一次创业,在选择方向时,逻辑主要有三点:自己相对有优势具备领先性、相对能产品化和规模化、商业模式具备盈利性。
代码智能化方向他认为不满足第1点异地多活不具备第2点现在大火的开源方向在他看来暂时还不太满足第3点所以为了成立一家真正的公司他选择做调度成为了一名在创业公司“打杂”的CEO。你在选择自己之后的从业方向和公司时3点判断标准其实也可以借鉴。
不知道你对今天对谈的哪个部分印象比较深刻,欢迎留言讨论。
到这里毕玄个人的20年程序人生我们就聊完了。后面我还更新了一讲番外聊一聊一切的开始——毕玄的大学经历希望了解毕玄接触计算机的初心把他的早期想法展现出来与他后期观点形成对比看看我们是否能找到他在面临无数人生选择时的底层逻辑。
拓展阅读
作为一个喜欢写文章的人,自己的人生翻开了新的一页也少不了会手痒想写上一篇,之前毕玄就创业写了这篇:凡是过往,皆为序章,凡是未来,皆有可期

View File

@ -0,0 +1,294 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
团队:在人身上,你到底愿意花多大精力?
你好,我是叶芊。-
 -
今天我们讨论怎么带团队这个话题,哎先别急着走,你可能跟很多人一样,觉得带团队离我还太远,或者觉得我才不要做管理,我要一路技术走到底,但是你知道吗?带团队做事,其实本质不是你认为的怎么管人的问题。-
 -
不管你对管理抱着什么样的认知在对谈开始之际我们先抱着空杯的心态看看毕玄这个不愿意做管理但还是带了十年团队的人他是怎么理解Leader的他的灵魂三问一定会给你启发。
 -
极客时间之前聊你带过的项目你提“被任命”很多感觉你不是很愿意做管理但是还是做了这么多团队的管理为什么你对Leader这个词是怎么理解的
毕玄这个变化我自己觉得最大的原因是T4、异地多活的经历。T4我带了一个很大的虚拟团队去做一个很大的事情也拿到了一个相对不错的结果但比起对我的影响对其他人的影响是小很多的这个状况我不是很喜欢。异地多活也是。
后来看运维团队的时候我更觉得对一家公司来讲一个组织能不能往前发展是更重要的如果你想改变就必须成为Leader这不带团队是不可能的。所以两件事都让我觉得如果你想对这个公司有更大的贡献就必须带领更大的团队。
极客时间所以就你来看比如一位开发同学想成为Leader需要关注哪些方面会遇到哪些问题
毕玄我觉得就是个心态。阿里给新管理者的培训尤其我们技术线要解决的第一个核心问题就是心态因为很多人是我根本不想做Leader你们觉得我技术很好干活能力不错所以就硬把我摁到了那个位置所以他不觉得是个提拔他觉得你这是坑我。
技术人会很害怕做管理以后精力受到影响最后导致我好像日常都在干一些很虚的事情以后会不会工作都找不到了。但如果我一直写代码至少找工作不会是大问题尽管现在说什么35岁但事实上如果你写代码能力强确实就不存在找工作的问题因为技能永远都在。这是技术人很正常的想法。
所以这第一关,很多技术人就很难过。但我跟很多人说最起码你应该试一下,有些人可能试了一下之后觉得也挺好能接受,如果试一下你真的觉得接受不了,那你就专心做一个程序员,其实也没什么。
极客时间:技术人想做管理,首先培训对管理的认知,从太虚了出去肯定找不到工作,变成带一帮人成事。那跟人打交道这个方面会有问题吗?
毕玄:第二个很难迈过去的关就是看到人这个层面的问题。因为多数人选择做程序员就是不想跟人打交道,只想跟机器打交道,这一做管理者就完蛋了,你不可避免要跟人打交道,不然这个团队肯定会有些问题的。你可能觉得我只要做事就行了,但关键是你要做的事情谁来干?另外你怎么排兵布阵?你必须了解他才能排兵布阵。所以这一关我觉得技术人更难迈过去。
极客时间:这关你是怎么过的?
毕玄最大的前提还是我认可那一点只有带领团队才能做更大的事情对这家公司才能有更大的影响。你就自己先想好是觉得做一个专业人员更好还是觉得做一个带领更大团队的Leader更好而且要知道Leader也有很多种类型。
之前很多人不断让我带团队但我一直拒绝因为我在带100人的运维团队之前规模就一直控制在20-30人从来没有超过而且说实话这种还不大存在管理问题你稍微分出一点点精力就可以了所以我很难理解现在为什么带20-30个人会有问题。
极客时间为什么因为20-30人团队规模小管理比较简单就是带着一帮兄弟做事
毕玄因为20-30个人你很容易熟。每个人我都知道他们在干啥也大概知道他们的能力状况而且我也不需要付出太大的精力。但带到100人的时候很多人我都不一定认识跟我有很多交互的就更少非常少。
但我带团队的路线并不好。我是从20-30人上来就开始带100人然后可能带了半年左右就变成带三四百的团队了后来就带600多人这不是个正常的路线。很多东西你会搞不太清楚因为中间隔的层级变化太快带100人你可能隔了一两层但带600人就隔了很多层但我的管理幅度最多只能到向下两级。
 
极客时间那你觉得怎样才能成为一个好的Leader呢结合你自己从20-30人、100人最后到600多人的管理经历有哪些是你当时没做好现在可以做好的
毕玄:其实核心还是花精力的问题,就是在人身上,你愿意花多久的精力。
当时15年下半年带100人的运维团队那100人我都比较熟因为我们一起战斗过做过好多项目大家跟我打交道非常多所以我去带的压力没有那么大。而且我带的那个时间点刚好是阿里最重要的谈年度绩效谈完几个月后团队就解散了理论上是Leader最痛苦的半年但因为我们大家都比较熟谈得也没有很辛苦。
但后来16年带600人了你发现一个最大的问题就是这些人你不熟你到底怎么办
我以前带团队做得相对最好的是,对团队走向什么方向,我有自己的看法,然后我会告诉所有的人,但是你想好了方向之后,在团队里你到底怎么安排大家去把这些事情做好?怎么排兵布阵?怎么落实?这些当时我是有很大差距的,因为这里很关键的问题就是你对这个团队到底有多了解。
为什么很多Leader都喜欢用自己的老搭档换一个领域他把那帮人又拉过来就是因为不用磨合大家都熟悉就很简单。但你面对全新团队的时候就很难你得愿意花精力。
极客时间:以前你没做好是为什么?因为自己不太愿意花精力了解人?
毕玄:不愿意,我觉得那简直太累了,要了解一个人是很痛苦的过程,你要跟很多人聊天,得花非常大的时间和精力,技术人都不是很喜欢这个事情。
极客时间:聊天这么必要吗?不能说用很好的协作工具交流吗?
毕玄:工作可以,但工作之外,你只能靠跟人聊才能有更多的了解。
极客时间:工作之外的东西是想看到什么?
毕玄:有些时候我们需要看到的是一个更立体的人,我需要看到你在其它方面的一些状况,因为我们最关心的还是你的空间问题。
极客时间:个人成长?
毕玄:对,就个人的空间问题,还有你对这个团队的看法。我以前只跟他们聊三个问题。
 
 
毕玄第一个问题虽然HR很不希望我问但我基本都会问就是你离开阿里巴巴的时候你会找一份什么工作我觉得这就是你的职业规划如果你想过这个问题我们就可以更好地规划你在阿里的路径。
因为说实话你不是一定要在我的部门我是很无所谓的如果你觉得去另外一个部门对你更好那就去我觉得这样对公司也是更好的因为你自己有动力在所以我从来不强制要求。很多Leader可能会放大这个觉得怎么样但我觉得把它放大也没什么用说实话还不如给另外的人一些机会。
但你会发现很多人其实没有想过这个问题。
极客时间:对这个问题有想法的,大概是什么比例?
毕玄:这就看级别,很明显的,级别越高的人通常越想过。
但是你没想过,后果很惨的,因为有可能有一天不是你要离开阿里巴巴,是阿里巴巴要你离开,这很正常,现在不就上演了?以前大家信心太强了,觉得公司发展得这么好,我怎么可能会走?或者阿里怎么可能让我走?但现在再看看,很多人出来真的傻了,根本不知道该怎么办,这就悲剧了。
如果你想过就会好很多,因为早就有所准备了。如果你实在搞不清楚自己的情况,你也可以去外面面试一下摸个底,这样你能立刻对自己有更好的判断,我们不反对这件事,因为阿里这个平台对多数人有极大的吸引力,很多人根本离不开。
极客时间:职业规划这事,你自己是怎么做的?一般会做多久?
毕玄:我不会做太久,但我肯定会想出来以后的几种可能性,不是说你一定要固定下来做什么,但要有可能性,这样你可以反推自己每一年要怎么发展。
我们肯定希望每一年对自己的职业生涯都是有帮助的,多数人的职业生涯都在几十年,看起来很长,其实很短,像我们这帮人尤其,剩下的很短了,每一年都特别重要,错过就错过了,就没有了。
所以你要想好,也许这家公司不能给你符合你的回报,但只要职业生涯你是一直在成长的,总有一家公司会给你,那纠结个什么?你纠结也没有意义,因为你可能在阿里混得很好,但真的有一天要走了,那你怎么办?
极客时间所以第一个问题其实是作为Leader要关注团队同学比较长远的职业规划也要帮他们去关注那你聊的第二个问题是什么
毕玄:第二个我会问的就是,过去一年你觉得对你职业生涯是加分、减分还是持平,能不能写进简历?
一个人比如我在阿里工作14年我不会说这14年里每年做了什么我只会告诉你在阿里我做了三件事这意味着中途肯定有几年是我觉得没必要提的因为提了对我找工作没什么帮助。所有你觉得值得写进简历的事情肯定对你是加分的。
这个问题是很落地的,我不是跟你谈虚的,问对你的职业生涯有没有帮助这种,员工当然告诉你有,但如果你问他会不会写进简历,有些人是会告诉你真话的,没有必要写。那你就要想一下你给他的空间是不是有问题。因为这种人如果真的很有能力,你这么带一两年,他肯定走了。
第三个我会问他对团队的一些看法觉得有没有什么问题之类的很轻松的大家随便聊。但这个聊完其实对他会有很大影响如果你对团队问题很有思考和想法Leader就能结合你的发展潜力和职业规划来更好地安排位置帮助你成长。
极客时间:对团队的看法,会提到工作吗?
毕玄:这个跟实际工作没有什么关系,对过去一年的工作做点评那是另外绩效的事。
 
 
极客时间你当时带团队的时候认为Leader核心是要在团队的人身上花精力人熟了团队就很好带所以你就想用这三个问题来了解他们这是带600人大团队的时候你问的
毕玄我给自己定了指标跟100个P8聊天一定要跟这些人至少聊一次。
极客时间:当时怎么开展的?有周期吗?
毕玄:一般是隔一个季度,我会先聊一圈,每个人半个多小时,然后我会从里面选出一些人经常跟我交流。
其实难度很大我们就纯粹聊乱七八糟的但大家没那么熟不知道聊啥而且两个技术的人没什么可聊的。多数Leader不会这么做因为是闲聊不是聊工作所以做了可能对我业务也没帮助。
极客时间那你聊完这100个P8有没有什么具体收获
毕玄:肯定会有,你只有聊过才会发现,有些人对一些问题其实是有思考的,然后你会觉得有些人其实挺有潜质去承担更大的事情。所以我以前也会跟下面的人说,我也需要你们跟下面更低一些级别的人聊。
极客时间:手上的人有没有潜质是怎么判断的?
毕玄:这个就只能主观,就是我看你对一件事情的想法是什么,这其实很重要的,因为不同级别的人,说白了,无非是他看问题的角度不一样。每一层都要有自己的角度,像有些很高层级,需要看经济发展的大势,我们做决策就不需要。但这点对很多人的挑战很大。
极客时间:这个挑战是指什么?看问题的新角度很难训练?
毕玄:因为你可能根本不觉得自己角度不够,就会导致你下的判断很有问题。
为什么大家很多时候觉得老板不靠谱?觉得老板都在瞎做决定?是因为你觉得自己很专业,看问题的角度很对,但事实上老板他看到的角度可能比你更多,他另外的一个角度导致他做了那个决定,但这个角度你压根不知道,也不关心。
但好的Leader是会讲这些的阿里以前这点就做的很好。我会跟你讲我为什么做这个决定我的考虑、出发点是什么你可以不认可这没关系但是我至少已经告诉你了所以你也就可以理解我为什么这样做这个决定不会觉得我是闷头随便拍的。
因为多数Leader做选择肯定是有原因的肯定不是闷头只是他愿不愿意跟你讲而已。很多就比较粗犷我懒得跟你讲你按照我要的做就好了管我怎么想的。但这样反而对执行层面的影响会很大如果员工理解了其实执行的偏差度会小很多虽然他内心可能还是不认可但这就不重要了。
 
极客时间所以作为Leader团队人多了或者换到了新团队一定要做好花精力了解手下人的准备这一点是你的经验教训。还有什么吗
毕玄后来我带的团队已经很大了我发现大团队的Leader更难的是排兵布阵的阵型问题因为除了你你团队的很多人都会面临这个挑战。
我后来经常问手上的人你觉得理想中你团队的阵型应该是怎么样的阵型里的那几个位置就是向你汇报的那几个人能放一个P几
如果你认为这个位置到顶能放一个P8但是我觉得可以放个P10这就完全不一样了我得考虑一下是不是该把你换了因为你限制了下面人的空间阿里以前有句老话P10带的团队可以都是P10但P9带的可能就只能到9。
包括招人也受这个影响,你能不能招到一个更好的人取决于你怎么给别人讲,这当然是画饼,但高级别画饼是很重要的,除了钱以外还得画饼。
极客时间:这里能容纳什么级别的人核心考虑的是什么问题?人才的成本问题?
毕玄:主要取决于价值,为什么我能容纳一个这么高级的人?是因为我做的事情对这家公司的价值是足够的,面临的挑战,需要很高级别的能力才能稳得住。跟评晋升是一个道理。
这一点很多人是很难想清楚的他就觉得我招一个这样人够了。但我觉得应该招个更好的人而且也完全可以招到。所以关键就看他到底怎么想我坚定地认为一个Leader要做好核心是先要对整个团队的方向有思考你有自己的观点很重要。
极客时间为什么你会觉得“思考团队方向”对Leader来讲最重要
毕玄:因为能开始思考方向首先意味着他有基础知识的积累,另外是他会主动去想,很多人其实也不太想这个事的,不想承担这个责任。
说实话很多人做到Leader的位置是可以不想的上面说什么或者下面说什么我就做我不需要表达自己的观点反正我是个执行者。这是最安全的Leader因为没做好要么是上面给他再发一个问题要么是下面干活不靠谱。所有公司这样的Leader非常多。
所以做Leader你能不能想好负责的这一块儿要走到哪里去你可以跟我观点相悖这都不重要但关键你想过并且有逻辑那我觉得就可以了这个人我觉得未来是有潜质的。
我觉得,其他所有技能都是可以弥补的,但对方向的感知这个技能是很难被弥补的。如果你其他很强,但没有这个,我觉得你是不可能把团队带到一定高度的,没有前景,因为你不可能做创新,最多执行做得还可以。
 
 
极客时间聊了你对Leader的看法也聊了如何成为管理者以及管理者需要关注哪些方面。最后总结一下一名Leader想带好团队的几大关键问题你觉得是什么
毕玄Leader就几件事把方向定好阵型布好位置放好另外当然是事情的跟进还有一点整个团队的成长就是人才培养问题这也是我以前带团队没有做好的一点。
如果成长问题没有解好的话,也没意思,因为最后可能是这个团队事情做得不错,不过成员没有得到成长,但最重要的其实是人,所以后来我们就会反过来看,只要这个团队的成员都成长了,通常来讲,事肯定就做成了。
极客时间:人才培养你以前没做好?后来对怎么做好有新想法吗?
毕玄:我以前没做什么,所以就做得不好。
我们后来才觉得有些东西还是需要的比如培训班什么的尽管都觉得没有用但也看你怎么开这个班如果是讲怎么思考一些问题的就还可以因为Leader可能最重要的就是训练他怎么看待问题比如这个团队我们今年定这几个方向是为什么现在团队面临的一些实际问题怎么思考这些只能靠大家具体讨论。我们觉得这是可以训练一些Leader的所以刻意培养还是很重要的。
当然除了开班以外,更重要的就是你去安排这些人的位置。
极客时间:安排人的位置,是刚刚讲的排兵布阵吗?
毕玄:因为做项目其实是可以给有些人机会的。我们以前都太关注事情了,如果你太关注事情,就会以稳妥为主,在选人的时候肯定选最相信的人,以及你觉得最有可能做成功的人。
这对Leader来讲是好的他自己能拿到很好的结果但是手下的人没有办法成长。这种Leader是会把下面人全用废的。
极客时间:但一家公司肯定也有这种人。
毕玄:很多的。大家会说你是踩着一片人的尸骨走上了巅峰,但他确实走上去了,其他人也没法说什么,而且公司很多时候觉得也可以接受,也会给很高的评价,因为他通常是更能拿到结果的人。这就要他自己怎么看。
但这种人总体不是那么受欢迎的,因为他其实是没有团队的,尤其如果他的团队要去面临不同挑战的时候,这种人就很难,没有人愿意跟他,而且他也很难说每次都来一波新的人用,这也很难。
 
极客时间作为Leader你觉得最需要关注的是人那在人才培养上你有什么自己觉得很好用的方法吗
毕玄人才的培养体系这个事情阿里有个人讲的特别好就是Lucy彭蕾她绝对是这方面的绝顶高手。做支付宝总裁前Lucy有一段时间是集团的首席人才官我们听她讲过一堂课冲击太大了对大家后来带团队都有很大影响。
当时她讲一个团队的核心资产是什么不是大家认为的代码库也不是机器什么的其实是你手上的这帮人。所以她要求每个月或者每个季度Leader应该做一份人才的资产负债表就像做财务报表一样。这个报表里要体现出你这个团队里的人才是在亏损还是在盈利。
亏损盈利就是指比如说你作为Leader认为团队里有5个人必须关注他的发展那这5个重点人才的职业生涯发展是向上的还是平的还是向下的。向上就是盈利向下就是亏损。
极客时间:这个人才表是怎么具体操作的,可以详细讲讲吗?
毕玄首先你要盘点你现有的人另外还要盘点你需要吸引的人的能力最后你年度下来给一个报表看看今年你在整个团队的人才资产上到底是盈利的还是亏损的。说实话按这个多数Leader估计都得挂。
极客时间:算完人才帐就很清晰了,但感觉这个工作量挺大的?具体操作起来效果怎么样?
毕玄Lucy这张表真的很好我们都觉得应该做但大家因为业务精力各种原因没有做好。我后来就每年问我团队很核心的人那个问题过去一年到底对你的职业生涯是向上、向下还是平的你会写进简历吗
但技术线Leader确实特别难做多数技术线Leader是被硬推上去的他本身不想管人但你真的要做好人才这件事意味着你在人的身上要花费非常大的精力要和很多人聊天。
业务线里更难,因为业务线里更直观,就是关注指标,比如说我只看今天的销售额有没有做到,才不管你们这帮人有没有成长,而且有时候想关注也没精力。所以我们可以理解。
极客时间:那你的下属如果是重点人才,他想离职,你会留吗?
毕玄:我从来不留人,一般都是向我提离职,我就同意了。
因为开始的时候我会讲清楚我不留人大家都比较熟你提了我相信你肯定是经过考虑的而且向我汇报的人级别不会太低你作为一个这么高级别的人如果想过了外面基本上就会离职至少在我接触的人里都是这样。因为你的心一旦想过就太难阻挡了我再留你没有任何必要所以我从来不留但我的HR有时候很不爽他们会去帮忙留。
但我是会聊的,看看你是怎么想的,无非是你认为对自己的职业生涯成长更好就可以了,也不需要我认为,所以我都只问为什么你觉得这个选择对你的职业生涯更好?如果你觉得是,那不纠结,如果你想了一下觉得好像也不是,要留下来,那你就留好了。
极客时间:对职业生涯的选择,你会给建议吗?
毕玄:我会说我的考虑,但肯定是以你的判断为主,因为职业生涯这个东西说不清楚。
极客时间:聊的时候,有没有人让你觉得他的想法其实不太理智?
毕玄:很正常,这个跟你对趋势的判断有关系,很主观。
 
水友讨论区
到这里今天的主题讨论就结束了,不知道你是否有启发。
如何成为Leader毕玄认为核心是解决对管理的认知问题、和人打交道的心态问题。
一个Leader毕玄总结需要做的就几件事定方向、布阵、排兵、事情跟进以及整个团队的人才培养他认为想要成为一个好Leader了解手上的人非常重要他会周期性地问3个问题
你离开公司的时候,你会找一份什么工作?
过去一年你觉得,对你的职业生涯是加分、减分还是持平,能不能写进简历?
对团队的一些看法,觉得有没有什么问题?
后来团队更大他还会问手上的Leader你觉得理想中你团队的阵型应该是怎么样的阵型里的那几个位置能放P几
如果你现在是一个Leader这几个问题你会怎么回答呢如果你还没有开始带团队其实在个人成长上这几个问题也是非常好的复盘工具甚至你也可以做一张自己各项技能的资产负债表看看过去的大半年哪些项是盈利的总计是正还是负。
欢迎在留言区写下你的回答,如果今天的内容你读完有收获,也欢迎分享给身边的朋友,一起讨论。
下一讲我们会聊一聊有关做事的文化,下一讲见。
拓展阅读
之前毕玄就程序员的个人发展写过几篇文章:-
1024节日快乐的同时说说中年危机-
“混”的中层们,你们的下一站是?

View File

@ -0,0 +1,61 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
开篇词 这一次,我们来采访毕玄
你好,非常高兴能和你在《超级访谈:对话毕玄》专栏见面,我是编辑叶芊。
你是不是很好奇,为什么这次要和毕玄对谈?答案很简单,因为这个人有一份神奇到独一档的职业经历。
2002年大学生物系毕业后他成为了一名做政府项目的小程序员在小厂辗转了五年。到这里看起来还没有什么太独特的就是一个普通的非科班程序员。
但就在小厂的第五年,他被称为国内 OSGi 第一人07年年底顺势加入淘宝后就开启了自己仿佛转岗无上限的成长之旅你也可以简称——“开挂”。
一进淘宝他就负责HSF的设计和实现在14年后的现在HSF每天还都承担着百亿次以上的服务调用是淘宝乃至阿里非常重要的中间件框架但后来他居然跳去做了NoSQL数据库HBase的改进和落地在接下来的2011年他仿佛预测到了容器的技术浪潮又转岗去负责淘宝私有云T4的设计和落地比Docker都要早两年。
但那之后他居然又从研发转到了运维成为了一名运维工具研究员顺带2013年做了广为外界所熟知的淘宝异地多活改造之后丝滑过渡到了更大的集团级项目——云资源统一调度同时还带着研发效能部门做研发效能工具。19年他开始带视频云的业务团队结果因为疫情视频领域爆火部门备受瞩目但下一年他却从阿里离开了。
现在他创业快一年了是一家做资源调度产品公司的CEO据说天使轮已经融完了。
这么看毕玄的职业经历,你说这个人,转岗也就转岗吧,方向判断得这么准,就像能预测下一个技术风口一样,关键是怎么还能做一个成一个?简直就是“谋事在人,成事也在人”的真实写照。
现在你是不是对他的洞察力很佩服,是不是在想,如果能搞到他判断方向的技巧和成事经验,对你的帮助一定很大。
正是因为这一点我们从今年2月份开始筹备这个专栏采访问题写了十几版但因为档期和疫情几度差点夭折。每个月我一边立一定能去采访的Flag一边因为北京杭州两地的疫情心惊胆战果不其然Flag倒了无数次。最终到7月份我们才挤出了三天完成了一场共计13个小时的长谈聊了100多个问题终于不负你的期待我们挖到了这份来自毕玄的独家秘籍。
于是专栏最有代表性的“高手锦囊”模块也就此诞生从个人成事、方向选择、团队带领、做事文化、架构修炼这5大方面把他分析问题的思路和做事情的方法浓缩给你。
当然想要把方法论化为己用,你还需要丰富的案例,这就是专栏前三章的作用了。
在“初出茅庐”“江湖风云”“创业维艰”中,你将感受到这位技术大佬独特的人格魅力,这种魅力不仅来源于他判断方向的战略眼光和驾驭复杂多变局势的能力,还有他背后的有趣故事所带来的新维度、新认知、新启发。
毕竟单看他的经历,我们可能觉得他是一个“平平无奇”的成功人士,基本没什么障碍,一路升级上去就成功了。但在看完一两讲他的神奇经历之后,你对他的印象一定会有一百八十度的大反转……
简单举几个例子吧:
面试,没写简历,也没答对几道题,他却进了淘宝?
写第一个系统HSF刚转正就差点把淘宝搞挂了
处理故障,充分锻炼了编程能力,他却说这对公司是个恶性循环?
做异地多活被广为人知,他却说做大项目,千万不要塑造一个神?
转到前景堪忧的运维团队,他表示团队价值问题自己也解决不了?
集团级项目统一调度做成了,他说可能是因为时机?
……
基本上所有我们认为有点奇怪的现象,在采访的时候他都说“这很正常”,这句毕玄的口头禅也能算得上是这个专栏的小彩蛋了,如果你好奇,可以统计一下都出现在了哪里。
所以如果要一句话介绍这个专栏这并不是一位成功人士的回忆史反而是一场20年踩坑经历的深度复盘讲的是一个很有个性的普通人如何在互联网浪潮中辗转腾挪找寻自己的发力点。当然等你看完如果有其他想法欢迎留言交流。
另外,如果你对毕玄做的一些项目感兴趣,期待了解更多的技术细节和方案,也不妨看看文末的「拓展阅读」,希望对你有帮助!
好啦,现在万事俱备,我们一起来认识下这位大神吧!

View File

@ -0,0 +1,209 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
成事:技术人最大的问题就是情怀化
你好,我是叶芊。-
 -
从今天开始“高手锦囊”板块的5场专题研讨即将展开我们会从毕玄的具体工作经历出发在“个人成事、方向选择、团队带领、做事文化、架构修炼”这5个方面希望能总结出可供借鉴的分析思路和实操方法。-
 -
毕竟对于这样一位技术敏感度如此之高的大佬,仿佛总是能提前站在下一个技术风口上,他是如何分析技术方向的,又是如何在一次次技术浪潮中求得自己和团队发展的,如果能总结出这种方法论,相信对你一定有很大帮助。-
 -
今天我们先来对HSF做复盘毕竟第一次总是印象深刻对于第一个真正自己从0做的访问量巨大且核心的系统又出了大故障他总结了哪些成事方法呢
 -
极客时间复盘一下你进淘宝做HSF的过程这是你做的第一个专业性要求高的系统之前所有人都讲做一个网站访问量从 200 万到1 个亿是不一样的,但没有人知道到底哪里不一样。经历过上线故障之后,你觉得大量级的系统到底是什么不一样?
毕玄:这一次之后我就懂了,量级其实不重要,重要的是要求。一个要求非常高的系统跟其他系统的差别是什么。
要求非常高的系统,核心是对整个系统的所有环节,你都要非常非常清楚。因为这是概率问题,你以前可能认为十万分之一的问题不会出现,但在一个大型系统里,它是必然会出现的。所以写一个小系统是容易的,写一个超大系统因为所有的概率问题都会爆发,对工程师的要求就变得非常非常高。
以前流行一篇文章,你在浏览器敲了一个回车发生了什么?这个问题其实挑战很大,说实话,到现在也没有多少人能非常好地回答出这个问题,因为背后有非常多链条。
你必须非常清楚你负责的那个部分从头到尾所有代码的细节,后来阿里对基础工程类的人都有这个要求,不能说我用了一个三方开源的东西,它出了故障,所以问题是它的,那当然不是,对我们来讲,都是你的故障。
在这个阶段,对工程师的要求已经完全不一样了,不是说你写完一个功能就拉倒,是你要能把代码维持着,这个挑战就非常非常大了。
极客时间:维持代码的成本,在开发之初也要考虑清楚。
毕玄对。一个要在生产环境跑很多年的系统未来怎么可持续地发展在设计阶段是非常重要的。如果你做一个系统面对1个用户和面对1000万个用户只跑一个星期和可能要跑10年都有很大差别的。这就是我最后交付的成本。
硬件也是一样,软硬件其实最终体现就是价格。我们看硬件,有些保修期很短,有些很长,有些寿命很长,有些寿命很短,决定了它背后的选择是差别很大的。当然,软件可能还做不到像硬件一样这么直接的映射,但差不多也是这个概念。
极客时间:所以为了保障对代码的掌握程度,大厂一般都自己写?
毕玄:如果过多用别人的东西,你是很难清楚掌握的,最好全部自己写,在出问题的关键时候,你可以迅速反应。当然你也不可能说一切都自己写,肯定会用到一些开源,所以我们会要求,你如果用任何开源的东西,对这个东西的所有代码也必须非常清楚,否则,在大规模系统里你一定会栽跟头。所以对大规模系统来讲,技术选型是很不一样的,包括对团队的要求也是。
很多开源的东西,大家觉得外面很火,阿里为什么不引入?其实很简单,引入进来,阿里又没有一个专业的团队来维护,那最好不要引入,你还不如自己写算了。这样代价肯定是也有,但对公司来讲可以接受。这个就是认知。
 
极客时间:我们继续一个系统的技术要求这个话题聊,如果说量级不是核心重要的,那对开发者来说,是什么导致了系统的高要求?
毕玄:其实本质是业务,你看现在的几个网站,业务要求的差别非常大,也奠定了他们背后技术难题的差别非常大,我后来接触了一些要求更高的公司对这一点的感受更强烈。
淘宝你说以前要求高,当然也高,但是说实话还没那么高,因为淘宝出完一个故障,如果几分钟后能恢复,交易量是能恢复的,会冲高然后恢复。所以淘宝说实话出一次故障也就这样,能发生什么?所以出了再处理是可以的,如果还能快速处理,大家就觉得你很牛了。
但像饿了么这种外卖公司很大的挑战是他的系统在11点12点的时候不能出故障关键是不能出压根不能这就不一样了跟我们出之后再弥补差很多。
极客时间:因为外卖的业务竞争太激烈了?
毕玄很简单你想我饿了么跟美团打的这么辛苦可能因为你们技术团队11点出一次故障业务份额瞬间就变了那还怎么玩因为用户一定要点外卖饿了么不能点就会去美团点。包括当年滴滴跟快的的战争快的背后是我们当时我去快的呆了一段时间处理各种问题也是为了能让它更稳定腾讯也派了大量工程师去滴滴。
这个时候技术真的是关键,因为谁稳定,就决定了用户会倾向谁,当然钱的补贴很重要,但技术也很重要。所以这个阶段,稳定性,已经是这些公司的核心能力了,本身就已经成为业务了。
这种对工程师的挑战非常非常大因为一个不能出故障的系统是很难做的但是如果说能接受出故障给我1-5分钟的恢复时间这两个系统的设计会有很大差别因为出故障以后我可以想各种办法但那个不能我也很难回答。
所以我们做其他系统就会越来越明白有些系统其实不像大家想象的那么简单。当时还有个段子因为淘宝做的比较好12306总出问题大家都说淘宝双十一都没事把他交给淘宝不就行了吗但你如果仔细了解一下会发现这些系统其实不一样的。
极客时间:什么不一样,可以展开讲讲吗?
毕玄12306这种是涉及民生类型的像饿了么也可以认为涉及民生包括共享单车都是银行、金融这种就更不用说了。
到民生这种挑战是挺复杂的12306交给淘宝也不好解决因为它和淘宝最大的区别是库存。淘宝的库存是静态的买一个商品有多少库存减1就好了比方说我能卖1000件那我减就行虽然是高并发但也没什么排队就好了。但你看12306最复杂的就是库存。
因为买一张火车票从A站到B站中间有很多种可能性是一个动态算库存的过程但库存这个东西压力是最大的还要动态算淘宝都没想过这个问题该怎么解决因为淘宝在库存上也很痛苦但那也只是单品。
极客时间所以和大家想的不一样民生相关的系统像12306、银行看着业务很简单但背后是不能出问题。
毕玄:对,包括以前我们觉得金融行业落后,像银行,你看看你们,做个变更简直了怎么这么难?后来我们懂了,如果我们是你们,估计也会变得那么严格,因为影响面是不一样的,银行只要哪一天钱取不出来,可能会立刻引发社会动荡,你说你是技术故障,别人可能都不信。
淘宝说实话并没有影响民生,而且商业竞争还不到出了问题用户就去另一个的程度。像外卖、打车太明显了,某天你份额异常飙升,基本是因为你的竞争对手挂了,根本就不是你业务做得多好。
现在,软件的核心系统对工程师的要求在直线上升,说实话新一代的互联网工程师是比我们更难的,因为我们有时间去成长,他们其实没有,上来就是必须做到这样。我们是出了无数次故障,然后慢慢学会的,知道每个地方是什么原因,但他们就真的太难了,因为没有机会。
 
 
极客时间:你说新一代互联网工程师更难,为什么会产生这个差别?和以前相比,你觉得现在这一代工程师面对的新问题是什么?
毕玄现在软件的要求跟以前的软件有很多差别以前AWS取了一个名字我们觉得很土但后来觉得这名字也还不错AWS给现在的软件取了一个新的定义叫Modern Application。
如果大家去看以前的软件一是相对来讲功能比较单一化不会太复杂现在大家要做的软件上来复杂度就比较高软件要链接的东西更多。以前是我只实现一个功能现在你看到的可能只是一个功能但背后其实是N多功能叠加起来的都是一个很复杂的公式所以软件复杂度就很高。比如说外卖背后涉及的链条非常长软件写起来就很复杂的不像以前我们很简单这就是时代发展。
第二,以前的软件都是有成长期的,因为成长期很长,它对稳定性、可用性的要求不会那么高,以前大家不能用,也能接受,不能用就不能用,我可以换人工。但现在不一样了。
现在软件的成长周期太短了在中国你从0做到1000万用户以前要很多年现在可能是几个月的事这就完蛋了淘宝当时能花一年来搞架构演进现在的公司哪有这个时间没等搞完他就倒闭了而且这种倒闭就太冤了我本来发展得很好因为我发展得太好用户量太大系统撑不住所以挂了这简直了发展不好挂了也就算了。
但现在技术侧就会面临这个问题你的成长时间非常短商业竞争非常激烈。当年不是这样的淘宝起来的时候有竞对吗自从把eBay踢出去至少在那几年是没有竞争对手的所以稳定性等等都不重要把业务、功能各种都做好就行了。
极客时间:所以还是回归到了业务、商业层面,当时如果淘宝有竞争对手,对业务和技术的态度会不一样?
毕玄我觉得很多都会不一样。但是现在中国不是这样了现在你做了A只要能起来一点点你可能会发现中国瞬间诞生了100家做A的公司那你要求的技术门槛就直接拔高了。
说白了就是利润空间的问题,一个行业只要开始赚钱,在中国绝对会卷到死。在海外这点会好很多,因为海外看你已经赚了那么多钱,那我还是不要做这个行业了,他会觉得我的机会很少。但中国不会这么看,中国会觉得,哇!他那么赚钱,我也可以做。
极客时间:不同时代的软件,以前就看业务,现在还要求技术门槛。
毕玄:以前技术真的不是核心,对业务来讲,说实话一点都不重要。
淘宝最早根本不认为技术有什么重要的,反正能用钱解决的,我全部用钱解决,技术最好不要干,最好全部是写业务代码做需求的。不要说我有一个团队是不做业务的,全部在研究什么基础技术,那完蛋了,因为这就是养人,而且这种人通常又比较贵,养一帮这种人都是成本。但现在不行。
现在很多公司上来如果技术没有达到一定的分数线可能业务都没机会做就已经挂了。因为中国用户被训练出来了对体验的要求非常高中国用户点一下恨不得立刻下一页如果还多要转几下他就放弃了太卷了但海外不会。这些背后全是巨大的投入不管是人员、还是IT成本。
这就是现代后来我们很认可AWS讲要跟原来区分开当然它也是告诉你为什么现在很多公司尤其是初创还没有那么稳定的公司应该用云其实就是分数线。因为你用至少一开始就一定达到了分数线然后你可以更专注在业务上。但以前不存在这个问题。
极客时间:系统的技术要求变高,之前和现代的界限,是什么时候开始的呢?
毕玄中国我觉得就是移动起来。在PC时代你看竞争其实不是很激烈那个时候互联网还没爆发没让大家觉得做这行有多赚钱。当然还有更赚钱的当然也不能做。然后大家突然间发现做互联网是最赚钱的中国肯定卷死这是中国最痛苦的地方。
极客时间移动互联网起来的时候大家都觉得怎么着做个5年10年的但没有想到这么快客户端没几年就发展到饱和了。
毕玄因为PC就很多年。
极客时间:为什么移动时代会发展得这么快?
毕玄:我觉得跟中国手机发展的比较好有关系,然后网络条件比较好,国外其实是因为网络太差,你想在印度点一下那么慢,那还是不要用了,手机也差。但中国这些基础设施太好了,基础设施真的是关键,基础设施越好,上面就越会爆发无数的可能。
 
极客时间关于HSF前面聊了这么多主要是超大系统对程序员开发能力上的要求在具体的技术选型上之前你也在很多文章中反思用OSGi是非常错误的决定。
毕玄:对是的。
极客时间现在你再去做HSF的技术选型会有不同吗
毕玄:不会,我觉得还是错的。这是我后来总结的,技术的人最大的问题是太情怀化。
我以前选择OSGi最大的出发点是什么就是情怀。因为所有人都知道我出名是因为OSGi很多人在我来了淘宝以后都问我淘宝用OSGi吗我说没用这个对我这种技术人还是有点伤害。因为支付宝也用OSGi我跟阿玺他们都很熟他们用我不用他们又经常找我问问题后来我就觉得那不行淘宝也得用。这就是情怀纯粹是情怀。
很多技术人做一个决定,其实他的出发点就是不对的,他的出发点就是情怀。
极客时间但大家可能会举Linux的例子很多做了最伟大技术的人可能就是出于情怀。
毕玄:但我觉得在公司的层面,肯定是不能那么干的。所有的公司都是一家商业公司,那商业公司里做的所有事情,确实应该要对这家公司意味着什么。
所以关键是反思选择把原来的东西改造成基于OSGi的对当时这家公司来讲对客户、用户来讲意味着什么到底有没有帮助是不是一个很好的长期发展选择如果他的问题你其实没有任何解决作用那还不如以前因为新方案一定会带来很多新的问题。
很多技术人做决定最大的问题就是情怀太美了。比如说很多架构师Leader他为什么做这件事可能就是技术上觉得这个东西看着不爽想把它改的更完美一点。技术人确实有这样的癖好因为技术这玩意确实可以很完美化我觉得这个架构看起来不好看这个代码看起来可以写的更好。
极客时间:但是从商业上看,把代码、架构改得更好看这些都是成本。
毕玄商业是一个妥协的问题事实上一个平台要做好架构师最大的挑战就是做平衡。所以在阿里我们面试很多P8升P9的架构师问的核心话题都是你在这一轮架构设计里面做过什么选择和平衡这才是最难的而不是你做了什么很好看的玩意一个看起来很完美的架构最后有可能对公司是极大的伤害。
极客时间这是业务上的考虑是不是也有团队上的因为后来听说你要做别的业务但HSF这个项目用的技术栈又是OSGi所以想托给其他人负责维护非常难
毕玄:是的,这个肯定有影响。因为你对整个团队的要求变高了,这很痛苦的,未来团队的招人等等都是大问题,包括团队的人出去以后,他们其实也会各种担心。
后来我跟很多人聊,包括有技术情怀的,他觉得有个语言特别好,用这个可以写一个更好的、性能更高的东西,对这家公司会有很大帮助。这个出发点看起来没错,因为出发点是对工作业务有帮助。
但这里没有考虑到一个问题,如果你离开了那个团队,这玩意谁能搞定?如果没有你在,就没人能接,那就是你给公司挖了一个坑,然后公司还不能把你怎么样,这不就是坑公司?
所以很多时候讨论语言选择是一个最无聊的话题,因为语言的选择,事实上不是单一爱好的问题,是我站在公司整个层面上,包括人才储备上,做的综合判断,不是说我觉得这门语言多牛,这不重要,每门语言都有自己很适合的地方,否则它为什么活着呢?
极客时间:你这么重视对公司、团队方面的考虑和权衡,在技术人里不是太常见,你是怎么意识到这一点的?是你在后面的项目经历里慢慢体会的?
毕玄:这一点其实是我后面一个老板对我的影响,七公,就现在淘特的负责人。
那一年我被提名P8P9的晋升写完PPT他帮我看了一下然后他说你这个PPT最大的问题就是没有讲清楚你做这个事情的意义是什么就是技术的出发点。
他说我技术层面当然没有问题,都讲的很好,但越高级别的人,越需要回答的问题是你为什么要干这件事情,而不是你怎么干这件事情,以及怎么解决里面各种各样的技术难题,这些是偏执行层面的,当然也需要,因为一家公司肯定有很多技术上非常难的事情需要人解决,但是更需要的是,有人去思考这家公司到底要做什么?为什么要做这件事?这是最大挑战。
他那次跟我聊了之后,我一定程度上开窍了,后来我所有的技术规划都是以这为出发点。很多技术的人可能很难接受这个,但这就是你走向成熟化的必然。因为我们也能看到有些技术很神的,可能有纯粹的技术立项,这种确实很好,但关键是在中国的生存环境比较困难。
 
水友讨论区
到这里今天的讨论就暂时结束了。理解了毕玄做选择的出发点,我们再回看之前他的所有转岗决定,背后的理由是清晰且一致的。
在一个要求非常高的系统,你的敌人叫做墨菲定律,开发者需要具备更高的代码掌握程度,而且现代系统,因为业务复杂度和商业竞争度在不断提升,对开发者的要求也越来越高。
但对技术人来说,最致命的障碍常常并不因为外界,而是因为自己,在技术选型上,想清楚你的出发点是最重要的,一名成熟的技术人需要从对公司、对客户/用户,以及对团队的各角度,想清楚自己做事的意义是什么。这是毕玄做事且能成事的底层逻辑。
不知道你对今天讨论的哪个部分感兴趣,我还是列了几个讨论的话题:
AWS说的Modern Application作为身处其中的开发者你有哪些感受呢回顾自己做过的系统要求是什么样的你觉得挑战是什么
毕玄做事,他认为重要的是想清楚对公司/客户/用户来讲到底有没有帮助,是不是一个很好的长期发展选择。你做事的出发点是什么呢?关于技术人的情怀问题,你见过哪些坑?你有给团队/公司挖过坑吗?
欢迎留言交流,聊聊自己当年(或者现在)炫技的那些事。
下一讲我们聊一聊到底该如何思考技术演进方向,下一讲见。
拓展阅读
之前毕玄有自曝过自己因为技术情怀犯过一些错误:-
技术人员的情结-
我在系统设计上犯过的14个错

View File

@ -0,0 +1,326 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
文化:你所在的团队,有多少人敢讲真话?
你好,我是叶芊。-
 -
今天我们要讨论的话题是文化,说“文化”这个词你可能会觉得很虚,那我们换个词——“做事风格”,这就和你们团队平时的协作习惯密切相关了。-
 -
做事风格,往小了讲,会影响团队成员对开会的认知、各成员的工作氛围,往大了讲会影响各部门间的协作成本,甚至公司人才培养的模式,乃至公司最根本的价值观。-
 -
如果你所在的团队或者公司,也在这些方面有疑问,那让我们一起进入今天的专题对谈,看看毕玄这个热衷解问题的人,会给出什么解法?
 -
极客时间:常听你讲蚂蚁的人才模式更好,为什么?
毕玄:核心是文化不一样,蚂蚁是规划文化,淘宝是赛马文化,这就决定了两家公司有非常大的风格差异。淘宝的人很难适应蚂蚁,可能勉强能适应,但也不大适应,蚂蚁的人就更难适应淘宝。
像淘宝的人喜欢折腾一些乱七八糟的事情,当然这几年更难,但以前会有人真的搞赛马,这就是淘宝的风格,跟腾讯类似,但腾讯不大一样的是它顶上那些是不大动的。
极客时间:文化背后是什么?像这种做事风格应该也不是公司一开始就定了大家要这样。
毕玄:我认为跟整个商业竞争有很大关系,就是在你的商业竞争面上,你到底认为技术在里面是什么地位?如果技术只是个支撑,那就一点都不重要了,如果技术就是你的竞争力,那你的看法就会变,会觉得技术人才的培养、存留都很重要。像蚂蚁更规划一些,也有是金融行业的原因。
极客时间:在蚂蚁,技术就是业务竞争力,所以像架构师就会培养?
毕玄:蚂蚁会刻意培养,他会有一个盘点,比如说你现在是负责这个系统的架构师,他如果觉得你有潜质负责整个业务板块,过一两年就会把你调岗,直接调去另外一个系统的团队里,这样你不就两个系统都熟了。
蚂蚁很多大架构师都是这样培养出来的,有目的地调整人员组织结构。淘宝是没有组织培养的,所以这个事情就乱套了,只能靠项目,但靠项目就很难,大家都是被临时弄上去的,就会硬做。
极客时间:直接从组织结构上调岗吗?
毕玄:否则你没有机会的,很多人就是在一个系统干到死,他根本没有机会了解另外一个系统是怎么回事,他去哪了解?所以我们觉得,架构师这玩意儿是个组织问题。
淘宝一致认为人才是靠野蛮生长出来的,你能成长就能成长起来,不能成长他觉得培养了你也成长不出来。
这两种文化我们内部也讨论过,淘宝最终能长出来的人,当然确实不错,因为他是从一个非常复杂的环境出来的。这在公司前期还可以,因为野蛮生长总会长出来几个,只是不够多,但公司变大之后,业务多元化,要横向扩张,你面临的问题就需要一个厚的人才梯队池来解决,如果你不特意培养就没有了,公司就会断岗。
阿里后来典型就是这个问题,我们想了一件什么事情,想找人派过去解决问题,就发现有点少。
极客时间:什么时候开始发现有人才问题的?
毕玄后来选Leader都有这个问题可能2017年就出现了比如说要成立一个新的团队想找一个什么样的人我们一捞最后发现能选的就这几个人而且他们进来这么多年级别居然还没变这就见鬼了。因为这些人很重要但是又都没有得到晋升。
 
 
极客时间:对于人才问题,当时你们怎么办的?也没有再去招人或者后面培养起来几个吗?
毕玄:没有,这种我们没得选,说白了,我们还是会选信任的,都是这样。
比如说架构师,如果已经有这样的架构师了,公司绝对不会冒险,他会选择我最信任的一帮人,一直做,除非这帮人全走。这也是我们一直反思的,阿里的架构师体系是一个巨大问题。
走前我做的最后一个大项目就是阿里的集团上云但我还是项目的总架构师说实话我并不是很需要这个Title而且我以前已经做过类似的大系统改造了做这件事对我没有多大成长意义所以何必呢不如让一个有潜质的新人来承担这个位置。但是最后发现还是很难。
极客时间:很难是因为什么,可以具体聊下吗?
毕玄:因为一个大系统的架构,不是光有你,你下面还有很多系统的架构师,关键是这些人听不听你的。
之前我们聊架构师的判断都是主观的,这个问题在当前阶段,我讲的所有方法,另外一个架构师可能不这么认为,他觉得我们应该用另外一个更漂亮的方法,但我可能偏务实,这样双方很容易产生冲突。所以这个大架构师能不能控制一批架构师的想法,让他们听你的,在大公司是一个巨大的挑战。
一个新人上来,别人觉得你又没做过,不靠谱。像我是老人,我干过,你们都没干过有什么权利跟我说,我就能说:“我承认你说的挺好,但是你必须按我说的干。”
所以架构师的培养为什么很难,尤其大架构师,因为他是以战培养出来的。
极客时间:但战又很少?
毕玄:对。而且有战的时候,公司在有选择的情况下不会故意培养,其实就把他用废了,因为他自己觉得已经没有任何意义了,而且干的很苦。这一点是我们以前很反对的。
我们的想法是有选择的情况下,公司你也应该故意培养。有选择就是比如一个新人,一个老人,尽量用新人,不能说你觉得他以前干过,就继续让他干,关键他也不一定想干。
像阿里双十一的大队长,这活都多少年了,还让他继续干,你说对他有什么成长意义,其实没有,对他来讲也不是个荣誉,他觉得没有任何意思。但公司觉得这个项目很重要,你干过而且成功了,所以继续让你干,是靠谱的。但这样新人一点机会都不会有,永远不会有机会。
极客时间:那你们当时怎么办的,有没有什么解法?
毕玄:我们当时就提议,公司其实不用纠结,你任命谁架构师,下面的人一定会听他的,因为我已经任命了这个人,下面就算叫的再凶,被任命的人也可以非常强势,实在不行就说我是大队长,你们就得听我的。
极客时间:这样公司承担的风险更大,能给批吗?
毕玄:换新人无非就是有点风险的,但是也能干,老人的好处无非是你可以相对控制风险,然后做好整件事情。
但这也有方法的,你可以把老人放在后面。我以前就跟他们说,我不做这个总架构师,但我可以在背后支持,前面一定要推出一个新人,我可以坐在那张桌子上在背后支持他,只要是他说的,我都说都是对的。这个人只要这一战不会出太大的问题,其实他就起来了,成为了第二个。
双十一大队长阿里不也换了好几轮后面一直换也没出什么大事。因为又不是真的你一个人能决定的除非你在这个圈子里已经有极强的信任感了你做的决定就是决定但多数新人上去做的决定很多时候根本不是决定下面要经过N轮讨论的所以你完全不用害怕。
极客时间:但集团上云还是用的你,说明这个方案还是没过。那阿里后来架构师培养这个问题怎么办的?
毕玄:阿里去年也想像蚂蚁一样搞,但关键问题是没法调,你觉得这个人有潜质成为大架构师,想让他今年做这个业务,明年做那个,下面的人会告诉你不行,这个人不能被调走。
极客时间:业务架构师的调换为什么很难?有业务风险?
毕玄其实可以调纯粹就是因为Leader好不容易有个人能帮我顶住事你把这个人给我调走了那不就我自己顶了但蚂蚁因为从上到下都贯穿了这个思想他们是没有问题的。
极客时间:到现在也没有一点改变?
毕玄:在尝试,不过感觉很难,所以我说这是文化,一家公司的文化和基因是很难改变的。
 
极客时间:你现在新公司的文化,看你朋友圈讲希望成为一家“透明平等”、“大神型工作氛围”的公司,你是怎么想要定这几个?
毕玄:这是我离开阿里最强的几点感受,就变成了我们公司的核心价值观,因为我觉得这就是关键。
极客时间:先说透明平等,你定这条是想要什么?
毕玄:这是奠定一家公司能不能做好决策,能不能让专业的人发挥价值。
阿里以前坐一张桌子上开会的时候,没有人关注你是什么级别的高管,这跟我一毛钱关系没有,我只表达我的观点,因为我相信至少在我的领域,我比你更专业,所以我应该表达我想说的。至于你最后怎么做决定,只要你讲清楚为什么就可以,毕竟你是负责那个人,又不是我。
如果谁一进去就跟别人说要这么干,我们肯定会问一句为什么?如果他不讲清楚,我们是绝对不会跟着干的,这就是以前。
这个环境就非常良好,因为高层做决定要考虑非常多因素,你应该把你自己在专业角度上的看法全部告诉他,不是说他就要听你的,他会自己再综合判断,但他会讲他的理由和逻辑,你可以不认他的决定,但你至少认他为什么这么做决定。
以前因为有这种氛围,我们都说阿里真的是一家非常牛的公司,因为做到这点非常难。
极客时间:这种文化是怎么形成的?很难是因为常常老板自己先过不了这关?
毕玄:很多老板会觉得我简直被你们挑战到极致。因为我以前给管理者培训,很多外企的人都问阿里为什么下属能挑战主管?我们说不就是这样的吗,大家本来是平等的,而且你下属在那个领域一定比你专业,他如果不比你专业,不很诡异吗?
极客时间但有些Leader可能会觉得我的经验比下属丰富所以自己比下属更专业呢
毕玄:那就没法弄。但如果一个公司非常透明平等,其实,高层做决策的准确性会高很多,因为你听到了来自各方真实的声音,但如果环境不透明平等,这个桌子就会变。
阿里后来有些人离开和这个是有些关系的。很多事情,你会觉得还是不要说好了,老板说什么就是什么,因为作为专业的人,你会觉得反正说了也从来没什么用,那干嘛说?有什么意义?这样,老板会越来越觉得我太明智、太聪明了,说什么都是对的,人都这样,肯定希望听到的是好话,我说一句你们每个人挑战我十句,很不爽的。但事实证明那样才是好的。
你看阿里近两年不断讲,要保持自己是一家透明、平等的公司。但不断讲的时候,或多或少说明肯定已经在这个地方出现了问题,但光讲是很难改变的。
以前的管理层,在宣布一个决定的时候,压力很大,很多人会挑战你很多问题,你得去思考怎么回答,总不能说我就这么决定,这样老板自己也会觉得很丢人,所以就会准备得非常充分来做宣讲。现在就没有太多人挑战,很好,你讲的都对。
极客时间:准备不充分然后被人挑战的,你经历过吗?如果想塑造这种文化你觉得核心要解决的问题是什么?
毕玄:这很正常,我就告诉他我确实没想到这点。
这本质其实是心态问题你能接受就没有什么被挑战了那又怎么样很多人可能觉得作为Leader一定要什么都懂或者是觉得损失了权威什么的。其实没有必要。
透明、平等阿里这两年做的肯定没有以前好了,不过内网还是保持了一个比较好的环境,阿里的内网应该是各家做得最好的。什么都敢讲,而且我们当年比现在还敢讲,新人看不到太多很挑衅的发帖,老人很挑衅的。
极客时间:大家都是实名,能有多挑衅?
毕玄以前马云任命博士王坚做集团CTO马云发一个贴下面一群人回帖反对你想相当于是集团最大的头说我要任命一个人然后你们下面的人都跳出来说我不同意。这简直了这就是以前的阿里现在哪有多少人敢
 
 
极客时间:一个公司的价值观变化,比如说阿里,你觉得是因为什么?
毕玄:很大的原因是加入这家公司的人的多元化。以前淘宝老人多,大家都这风格,我根本不在乎你是谁。但我们后来分析可能跟“安全感”有很大关系。
老人为什么敢?是因为老人觉得自己很安全,因为我是对事,又不是对你这个人怎么样,所以就算我对你这样了,我相信我不可能因为这个被干掉,或者你敢对我有什么绩效上的不公平等等,我们相信绝对不会发生。
但新人不敢,他可能以前在各种各样的公司,这么干一定会被人穿小鞋,那他就会先观察一下。再加上后来加入阿里的很多人,可能目的跟我们当年不一样,当年我也说不上,但我们肯定不是说来就是为了混两年拿股票,但新人有些是这样的,来镀金,股票能拿两年最好,拿到我就可以走了,但如果能再混一年多拿点,那更好。他当然不想挑战老板了,能让我混过去就可以了。
极客时间:所以当公司到一定规模,价值观或者做事的文化很容易滑坡。
毕玄:对,我也觉得,因为规模到后面,吸纳的人太多了,很难去严格挑,不现实。
尽管阿里说我们要找同路人,但问题是你要的人太多了,能招进来都行,管他同不同路。像阿里后来自己也改了,说能同走一段的也行。
现在大公司都这样,头条据说会稍微好一点,但我觉得是他们还没上市,阿里上市后有比较明显的分水岭,因为上市后股票能兑现,就意味着有钱了,大家加入的目标会有些改变。所以头条现在的状态应该最好,所有人目标完全一致,就是冲刺上市,但上完了估计也会碰到各种新的问题。
极客时间:那这个问题怎么解?
毕玄:我觉得很难解决。这种大环境一定会出现,可能就看你的比例。
比如说作为团队Leader在你的团队里如果敢讲真话的人多大家发现能挑战你而且好像也没被怎么样那这个氛围就会被养成大家也会被慢慢带过来。最怕敢讲真话的人变少那就完蛋了最后大家就一定都不讲了。
这是个整体文化,如果大家都这风格,就不会觉得这有什么问题。所以最大的老板最关键,因为最大的老板如果不大能被挑战,那你看着吧,所有人立刻就是一个风向。
因为阿里高层他们也不是不知道这些问题,但关键他们也觉得不好解。所有人都不知道该怎么解,这个问题涉及人,太复杂了。很多大公司到了一定规模,就跟人类的协作规模问题一样,你协作规模能突破多大。
我们也希望看到一家更大规模的科技类型公司,因为现在全球的大部分科技公司都是这个规模,没有谁突破,一旦突破我们估计都不怕了。所以如果一家公司能透明、平等,那大家真的应该珍惜。
 
 
极客时间:你公司的价值观除了“平等透明”,还有一个“大神型”工作氛围,这是想解决什么问题?
毕玄:这句话其实是逍遥子讲的,他希望阿里也变成这样,大神型组织,而不是大咖型。
大咖型是指因为你在这个位置所以你说的都对。阿里有些团队这个现象特别突出因为经常组织结构调整那个人以前压根没干过这事他调到那儿了就变成了权威。像我以前不做音视频后来成了视频云的Leader我就成了音视频技术晋升委员会P8P9的评委我说这合理吗难道不应该找一个专业的人来吗不能因为我是Leader所以我就专业了。这就是典型。
大神型是指因为他专业,所以应该听他的意见。当然还是一样,最后的决策是另外一回事,是个综合判断,但我们要尊重大神,他更知道你讲的那个天花板是真的还是假的。
极客时间:但很多公司可能就是那个位置上的人说了算。
毕玄:因为他在那个位置,就会有很强的信心,我调到这个位置,我就比你们都懂,就会觉得下面专业的人提的都不靠谱。
极客时间:或者我必须得表现的比你们都懂?
毕玄:也有可能,那就是他没有安全感,特别在乎自己的权威。这种对一家公司,尤其技术公司就非常要命。
极客时间:为了维护公司这样透明、平等、大神的文化,你有没有什么具体的措施?
毕玄:只能看平时做事了。像我现在的公司会强调如果有人让我们做不了透明、平等,不管你是谁,不管什么原因,都会开掉。
其实这取决于公司怎么捍卫你的价值观。为什么大家都觉得阿里以前是一家特别有价值观的公司,说白了就是下手够狠,只要出现就开掉,那所有人就懂了,有些东西真的是不能碰,碰了真的会死,不管是谁,不管是什么职位。
极客时间:公司大了之后,直接开掉也可以吗?
毕玄:也可以,只是很多人觉得好像缺了谁会发生什么。其实不会的。
但后来的人就不大敢,会有各种考虑,会不会对我的业务短期有影响等等各种各样的,所以有些事情发生,就会导致整体价值观的作用大幅下降。
极客时间:什么时候感觉价值观的作用下降了?一些奖罚?
毕玄:对,这种类似的,因为大家都会关注。一个公司想守卫文化要付出很大代价,因为更多是靠惩罚来体现的,光喊大家肯定是不信的,只有处罚,而且处罚一定要够狠。所以文化价值观其实是公司的底线,如果不是底线,就不要把它列进去。
 
 
极客时间:这种下狠手做处罚,是你之前说的“做正确的事”吗?
毕玄:那不一样。“正确地做事”和“做正确的事”大公司会比较严重。
比如说我是一个业务团队,为这个业务要做什么事情,但可能像财务、法务、安全团队等等会上来就告诉你,这个事有风险,最好不要干,这叫他们在“正确地做事”,因为站在他的角度他是对的。
但这不是“做正确的事”,为什么大公司开会都很痛苦?大家觉得根本不在一条船?很多团队纯粹站在自己的角度,而且说的还没有办法被反驳,所以我们做业务的都很恼火,你老要面对一堆不背业务责任的横向部门给你提的建议,但是他们说的确实我也承认都是对的,但这就很恶心了。
极客时间:我也不是搞你心态,我是真的在给你提我非常专业的建议。
毕玄:对,站在他专业的角度,他觉得你这样做对公司会造成风险,所以他是正确的。
但我作为业务方,承担了所有业务压力和责任,说实话,你们这些团队不是来上就告诉我不能干,是告诉我站在你的专业角度,你觉得怎样能干。比如说有法务风险,你要讲有什么方法避免或者怎么变成合规,但他怕这样说了他有风险。
但你上来就告诉我什么都不能干,那我怎么让业务做得更好,我做不了,要不你们来干业务?我要的是解法,这才叫做正确的事,大家是在一条船上的。
极客时间:这个问题怎么处理?
毕玄:处理不了。有些人的风格是做正确的事,只要这个事对公司有帮助就做,不在乎比如能获得什么利益,或者有什么风险,这都不重要,大家的目标是一致的。
但有些人的目标是,我能很好地在公司活下去就可以了,至于其他的我不关心。从人性上来讲,你是可以理解这些部门为什么要这样的,他是我不做错就行了。
极客时间:所有大公司都一定会出现的?还是说因为公司文化?
毕玄:我觉得大公司都会,但跟透明、平等一样,关键看怎么保持比例。
 
极客时间:除了做事的风格,我还有一点比较好奇,开会,你是怎么看的?
毕玄开会是没有办法的做Leader我从头到尾都在开会根本不再干别的这很正常因为很多横向的团队协作都需要你调动资源各方面的。
极客时间:有哪些你不参加吗?比如不同类型的会,信息同步的、问题讨论的、进度讨论的。
毕玄:我一般很少开纯粹进度跟进这种没太大意义的会,太浪费大家时间了,你的进展我有很多办法知道的,不管在系统上,还是一个简单的周报,其实你写几句就可以了,我就知道大概情况了。
极客时间:那有例会吗?
毕玄:我们一般双周会开周会,通常一个多小时,更多是用来跟大家分享一些感受,或者同步大家不知道的公司上层的一些信息,如果有问题,大家就碰一下,如果没有问题就不要说,就结束了。
我们开会最重要的基调,就是为了解决问题,还有同步信息。所以周会很多人很轻松,你不用汇报进度,当然有可能我会直接问你,一种是我觉得很有问题的,一种是想借机夸一下的。
极客时间:那你们会有讨论方向或者规划的这种会吗?
毕玄:但说实话我觉得很多都没有意义,因为不存在说什么几十个人讨论一个问题,这就不用讨论了,因为不会有任何结果的。
我们可能刚开始的规划会有讨论但规划这个东西在开会之前主导的人就是Leader他自己肯定是有想法的只是想让大家充分发表一下而已所以这种我们叫同步会就是我来告诉你我的决定和理由是什么你们知道就行了因为还是需要团队都知道今年核心的目标是什么、为什么要这么做这种其实要花一些时间。
极客时间:所以是开之前基本已经有一个决定了,不会什么都没有然后所有人去讨论问题?
毕玄:如果不解决问题,这种会就不要开,同步信息有很多方法,群里发一下就好了,干嘛要在这里。
以前逍遥子很搞笑的因为给他汇报多数不是同步信息肯定是希望他帮忙解决个什么问题所以老逍说看其他人的PPT他都是翻到最后两页因为最后两页才是关键前面全都是废话。
所以Leader是干嘛的Leader是帮你解决问题的其实他是你的资源有些人向上管理做得很好能把Leader用得很惨这种人非常牛是好下属。我以前的下属都很擅长这个因为像进度和执行都是他们应该把握好的我除了能解决问题还能干啥我也干不了啥了。
极客时间:你主要会提供哪些资源?
毕玄:很多都是偏横向的团队协调,另外有些可能是他自己很难判断到底要往哪走,比如一个决定他要怎么做,这种你告诉他你自己会怎么做就好,剩下他可以自己做。
大家对你的诉求肯定就是帮我解决问题如果你解决不了你就说解决不了其实没什么的很多Leader不愿意说觉得我一定得帮助他解决但很多确实不是你能解决的因为大公司有些问题就是很难解决很尴尬。
 
水友讨论区
到这里关于“做事风格”的主题讨论就结束了,小话题比较多,所以聊的也稍微散一点,我们简单总结一下。
人才培养本质是从商业竞争面上看专业人才是什么地位支撑VS竞争力
工作氛围公司能不能做好决策的基石平等透明VS老板都对
地位态度专业的人才能不能发挥价值大神型VS大咖型
团队协作各团队一起能不能做成事关键看比例正确地做事VS做正确的事
开会风格:开会是不可避免的但开会的基调是什么?讨论/同步VS解决问题
至于解决方案,很可惜,涉及人的很多问题可能就是没有解法,关键看公司的想法,从公司对一些问题的具体做法里分析一下站在哪一方。
毕玄后来也在朋友圈说“规则对每个人的影响差别可能很大所以要统一很难只能是宏观层面的ROI选择创业了的第一感受如果不计代价很多决定并不难做但事实不是这样。”
不知道你对今天对谈的哪个部分比较有感触,欢迎在留言区留言参与讨论。
不过别灰心,下一讲我们会聊一聊“架构师”这个很多程序员向往的职业,而且会有可实操的方法论哦,下一讲见。
拓展阅读
当时毕玄总结自己的2021年写了一次复盘和公司文化相关2021最大的几点感受

View File

@ -0,0 +1,244 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
方向:技术演进,到底该怎么思考未来?
你好,我是叶芊。-
 -
欢迎来到技术视野的研讨主题相信你一定非常期待毕竟在当年阿里技术牛人辈出的时候毕玄都是公认的技术方向感非常好做4个方向最少能命中3个的那种。-
 -
其实他自己也非常清楚这是他的个人优势,后来写离职复盘的时候他说:“我认为程序员的价值关键体现在作品上,作品里很重要的一点是对业务、技术趋势的判断,希望作为程序员的大伙,都能有机会打造一款世界级的作品,去为技术圈的发展做出贡献。”-
 -
那他到底是怎么培养技术敏锐度的?话不多说,我们开始今天的对谈。
 -
极客时间你对技术方向的判断力经过了很多项目的检验很多人公认你的方向感好。前面聊做决策的时候你也提到Leader需要赌未来带团队你也会团队成员讲清楚未来的方向和规划。这种判断力怎么形成的或者说有没有什么
毕玄:方法论?
极客时间:对,因为大家都喜欢,也都期待。
毕玄:但真的没有方法论。
极客时间:或者说技术敏感度?
毕玄:我们觉得真的很难培养。以前我们就想过怎么培养大家对一个事情的判断,但这是个走势问题,未来可难说了,谁也判断不了。我们后来总结最重要的可能是你要去想。
很多人其实从来没有想过未来的走向就像技术未来会走向什么一般觉得什么最火就是了。比如说从SOA到服务化、微服务到Service Mesh这是个历程我们以前经常问很多人你对这个历程怎么看每个阶段到底有什么区别
我问过很多人自己也被问得很尬因为回答不了。比如请问我们07年到09年做的服务化跟现在讲的微服务到底区别在哪没有人回答的出来那说明这根本是个瞎扯的词不就是概念嘛为了卖个概念忽悠人。包括Service Mesh很多人各有各的看法我觉得是什么看法不重要我们最怕的是没有看法的人但是你追问他为什么好如果回答因为很火就简直是瞎扯。
极客时间:既然没有培养技术方向判断力的方法论,那别人说一个技术是颠覆,判断他瞎扯和不是瞎扯,你的方法是什么?
毕玄:关键依旧是那一点,你觉得这个新东西的价值到底是什么?相比以前带来了什么变化?
极客时间:新东西的价值怎么分析呢?每个新东西出来,看它技术演进背后的那个推动力是不是一致的?
毕玄:对,以前在中间件的时候大家聊过这个话题,纯粹的技术演进到底怎么思考未来,以史为鉴是最重要的,但每个都不一样。
极客时间:是每个公司不一样,还是说每个技术的推动力不一样?可以举个具体例子说下吗?
毕玄:跟公司关系不大,主要看这个技术怎么往前走。
我们经常举例大数据因为大数据特别明显从Hadoop到Spark到Flink基本可以认为是三代。最关键的是你去看为什么大数据会有这三代的演进是因为它们都解决了用户对这玩意儿的核心诉求如果这个诉求归拢到一起还是一样的那就好办了。那用户对这几个大数据软件的核心诉求是什么
最核心的诉求是算更快。做一个大数据分析,想越快拿到结果越好,这就是我们的诉求。
Hadoop解决了什么问题Hadoop解决了0到1的问题以前没有一个大数据的东西Google发了一篇论文然后Hadoop做了一个开源版的实现有了0到1所以它一定会很成功。当然那个时候也不只有它却是它成功了这就有很多因素比如说最重要的是大厂的支持因为Hadoop是Facebook等等大力去推这是不一样的。
所以Hadoop解决能算出来但有点慢Spark解决的是我通过架构改造让你整个具备了算更快的能力Flink就更快因为已经实时化了。你看它的技术演进其实就是围绕了怎么解决掉客户的痛点然后通过技术层面的架构改造来完成这个事情当然这其中也有技术下面的基础设施成熟化的背景。
包括中间件,回顾一下这些年中间件的发展,过去为什么会有几次迭代?几次迭代解决的都是什么问题?那我们认为肯定都是解决了一个痛点。
痛点是要挖出来的,你围绕那个痛点去想,技术现在有没有可能把这个痛点往前推进一代产生很大的改变,你的新东西要解得更好,而不是小修小补。如果有,那我认,那就是技术真正的变革,而不是造了个概念。
很多人觉得自己做的是新一代,我们就问相比上一代,用户在这一代里碰到的什么问题,你帮他彻底解掉了?
极客时间:第一步想清楚用户的问题是什么,第二步想具体怎么去解这个问题,解决方案感觉也很难想。
毕玄技术演进本来就需要很多年因为技术的下一代是很难想出来的可能需要时机。数据库从关系到分布式走了多少年理论上方向提了无数年但直到现在才算是逐渐有了东西。现在数据库又在说要从OLTP、OLAP走向HTAP这是更新一代因为这也是用户的诉求他们在不断往前推进。
以前很多团队总纠结要不要硬造一个概念说我们现在做的是新一代,但是如果不到时机,其实没关系,你就维护着,只是很多人觉得维护没有什么价值。但你们造概念,公司更不会认,外面有可能被你忽悠。
极客时间:但很多公司都会强调,技术人员要具备一定的影响力。
毕玄:千万不要为了做影响力而做影响力。反正在我的评判里,这种我是绝对不会认的。我先只看你对公司业务的影响,然后如果你的方案确实在这个技术领域具备领先性,我才认为你有影响力。
因为影响力是很容易培养的,你有了结果,也有贡献,做的方法也具备引领性,说实话,剩下的只要炒作包装一下就可以,如果你的公司影响力足够大,你想成为什么都可以,但前提都是你自己得有足够的实力,等你做到了,影响力什么的都是很自然的过程。
 
极客时间:怎么判断是彻底解了还是小修小补呢?既然每个技术背后的推动力不一样,我们再看几个技术。比如说服务化、微服务,这个核心诉求到底是什么?开始阿里做服务化是为了去解什么问题?
毕玄:以前做服务化,核心要解的问题有两个。
第一,要解决系统的水平伸缩能力的问题,因为服务化了以后,说白了你的每个应用,每个系统,要承担的责任变少了,所以伸缩性就能变得很强。
第二个服务化的核心问题其实是研发协作的问题。以前100人开发一个系统大家都没有分工的我接了一个需求要改哪我就从头到尾全改这个时候有可能会出现冲突因为可能每个人都在改同一个地方大家合并代码的时候就非常痛苦效率很低。
服务化有分工了你就改这块儿他就改那块儿当然这也增加了协作成本但是它毕竟能让100人甚至上千人的研发团队可以并行做下去这一点也跟AWS说的Modern Application有关现代软件变得更复杂了做任何软件上来就是一帮人你必须考虑到一帮人协作的问题。
极客时间:“协作”这一点感觉比较少讲。
毕玄我们当年其实也没有想到是用来解这个问题的。这是Jeff Dean在斯坦福讲Google技术演进的时候说的Google做服务化的核心是为了具备千人以上的研发协作能力这看问题的角度就比我们强太多。
当时我们主要想的前一个,而且我们还是被逼的,因为不做服务化,就加不了机器,业务就崩盘了。
虽然当时100多人研发同一个系统已经很痛苦了但是我们没有想到服务化其实是用来解协作的是做完才发现解掉了后来看到Google说自己做服务化的核心目标是协作我们觉得哇你讲得有道理我们也加上了这一句
你看,服务化当年最重要是为了解这些问题,那微服务,请问跟服务化相比到底解了什么问题?
服务化现在留下的核心问题是粒度一个服务的粒度是主观的架构想切成多大粒度就多大粒度但这是有问题的还有服务里面比如说一个应用背后依赖了100个服务到底哪些服务是核心路径是必须依赖的现在都是靠人来控制的。
除非你说服务化的新一代可以解决这两个问题,那才是革命性的。但现在做不到,说什么微服务,他们就编吧,可能觉得服务化这么多年没发展也不大好,总得编个新的。
极客时间:微服务这个概念刚出来的时候不是很好理解,之前有人开玩笑解释为什么要做微服务,一般就是因为公司人有点冗余了。
毕玄:所以以前很多小公司问要不要做,我们都说你做个啥,一个系统多爽,开发效率最高,分布式会带来很多问题,包括对研发能力都是巨大的挑战。只是看起来技术不值得吹,觉得技术很烂什么的,当然这不重要,对业务来讲这都不重要。有些人就会这样,想挑战技术难度,觉得这种才叫复杂度,其实不是。
极客时间:但这种对技术难度的认知在技术团队里应该很普遍?
毕玄:很正常,因为技术的人都是有梦想的,梦想用一个很先进的技术去做一件事情。
但关键是在现今阶段,对公司来讲没有任何意义,所有公司不是不关注技术创新,只是出发点都是我到底面临什么问题。所以,这个问题除非你有一个创新的解法,可以比以前解得更好,那可以的,不能说你纯粹在外面看到一个很创新的玩意儿,一定要在公司用上,这就像拿着锤子找钉子。
而且很多人想用新语言、新框架,因为理论上来讲,这对他的职业路径可能更友好,否则他出去不好找工作。
 
 
极客时间:前面聊了大数据、服务化,现在最火的是云原生,这个技术方向我们也聊一聊,你觉得技术演进到云,本质是因为什么?云的下一步是什么?
毕玄CloudNative其实是个分布式无非是原来搭建分布式的方法现在变成基于云去搭建这是颠覆我是认的像新公司不需要投人了都是云帮你搞定。之前从单体到分布式的架构是个必然但现在分布式再走向哪里就说不清楚。
极客时间:容器呢?这个技术演进背后的推动力是什么?
毕玄:从虚拟化到容器化是革命性进步,这解决了什么问题?虚拟化无非解的问题就是怎么让一台机器能跑更多东西,容器化解的是我会跑更多。
极客时间:所以全是资源的利用?
毕玄所以我们认为容器就是个运行单位而这个运行单位不一定叫容器可能有个更小的运行单位。所以阿里后来在做轻量级容器等等方向的探索包括Serverless一定程度你可以认为就是一个更小粒度的运行单位这叫未来是一个技术趋势其实它一直都在解同一个问题只不过比前一代解得更好一点。
极客时间Serverless这个新方向可以多说一点吗对资源利用率这个问题它彻底解决的点是什么小厂完全不用买设备
毕玄肯定不用买了而且Serverless是真正的只有用了才要付钱。
比如我的业务现在没有请求量就不用付费请求量来了就只付那一点但现在我们是按买的机器付钱我可能现在根本没用但还是要付钱。如果哪家云厂商敢说能按请求量付钱那背后是不是Serverless我们都不在乎了能这么牛的话成本会省非常多那所有都颠覆了。
极客时间Serverless面临的核心难题是什么
毕玄主要是弹性的速度。比如Serverless我要拉起一个系统这不是几秒就能拉得起来的但对在线业务来讲你不可能点一下几秒都出不来大家能接受的都是几毫秒。所以Serverless都只是拿来做一些像计算这种后期的事情以前可能是一些离线的事情都是对响应时间可以忍受的。
Serverless也许是未来但还比较长远现在非常不成熟只是个补充方案就很尴尬。
极客时间:那一个技术,什么程度才算成熟?
毕玄所有的技术如果想颠覆必须进入核心业务。现在没有完全基于Serverless这种新理念来构造的在线业务的技术框架因为在线业务对稳定性是至高要求而且它完全不可预测。
尽管AWS推了无数年一直希望能推进到一个全新的技术框架阿里以前也想推因为Serverless对云厂商来讲并不是坏事如果真能做到大家肯定都来用了但很难从技术上来讲目前真的做不到这是最极致的弹性。
极客时间在资源利用这个方向除了Serverless有别的方案吗
毕玄就是混部现在混部到CPU层面了大数据和在线其实都是CPU层面的所以在离线的统一调度是这个阶段我们可以做的能把利用率提高的一个很落地的方案。
极客时间:调度的难题是什么?
毕玄之后最关键的是看GPU、FPGA这些能不能做好。
调度这个事其实阿里最早很多高管都有这个梦想博士成立阿里云的时候提出云的实际表现是统一存储和统一调度他认为云的核心是可以把所有的机器像一台机器用这就是统一调度。这个思想最早提出的应该是Google。
Google很早有篇文章叫《The Datacenter as a Computer》一个数据中心像一台机器这效率肯定是最高的事实上现在也还做不到。Borg的思路是把CPU尽可能当一台机器用但内存还不行比如A机器现在空了1GB机器有2G但你不能说用户现在有3G可以用这个真做不到因为内存有时延的问题在单机时延非常低一旦跨了网络但网络已经是光速了这是物理决定的就很难。
据说Google想探索这个方向因为Google近两年把这篇文章改了一下叫《The Datacenters as a computer》这简直颠覆了我们的想象。
极客时间Datacenters跨地的那种
毕玄:对,跨地数据中心像一台机器,我们连一个都没实现,你已经开始提下一个概念了,我们没法跟你玩。
 
极客时间:好,我们前面聊了如何分析技术演进的趋势,大概判断趋势之后,大家更关心的是在这波技术浪潮里自己能做什么。比方说现在所有人都知道云是趋势,有云了,基础设施会更集中在一批人手里。
毕玄:对,肯定是这样。
极客时间:那很多人在小厂,会担心自己之后的职业发展甚至岗位会受影响,怎么办?
毕玄纯基础技术像计算、存储、网络等等这种IaaS层面的基本会收拢到几大云厂商手里如果你要做这种技术没有别的选择加入这些厂商好了。
你看创业很少有人说我要创业做IaaS、要做计算不可能的这是需要更大规模效应的生意为什么小的云厂商越来越难因为只有你服务器规模到了多少万台的时候才可能实现盈利前期投入真的太大了。
但在IaaS之上应该会诞生很多垂直的PaaS也是做技术的但这些反而不在大厂手上全都在一些创业公司手上这其实就是美国的现状。然后PaaS更上面是做业务的。所以看你自己想怎么走去相应的公司就好了。真正喜欢做计算、存储、网络的同学其实很少的。
极客时间:很少是为什么?
毕玄因为计算、存储、网络是个非常非常专业的领域都是做虚拟化、计算资源这些东西多数人根本就没有触及到这个领域做的最多是PaaS比如中间件、框架这些而且未来外面会有好多家PaaS空间是会越来越大的不会越来越小。
极客时间就现在的行业发展进度看基础技术逐步商业化了很多人创业做PaaS包括阿里很多也都拿出来卖了这个改变是行业的进步吗对其它公司对其他团队同学也可以参考
毕玄:对团队同学的话,我觉得很难说。
极客时间:为什么,这样不是能更好地专注研究技术了吗?毕竟商业化了,团队的业务目标就是要不断追求自己产品的技术竞争力。
毕玄:我知道,但是对研发线的人来讲,很难说这是一件好事还是坏事。
好事确实是你做的东西不仅仅这家公司用了,还被全社会更多公司用了,成就感肯定更强。
但在技术层面来讲,商业化之后,很难说大家会觉得我技术上有多大更进一步的空间,因为外部更多是复杂性,而不是纯粹的技术难度问题,是你要支持的业务类型越来越多了。
极客时间:不是说技术要更先进?
毕玄:复杂性也算一种先进,只是大家怎么看待而已。
很多人觉得我支撑更高的并发量用了更低的成本这才叫追求了技术所以很多公司做晋升的时候业务技术的人会觉得自己没法跟基础技术的人PK大家都觉得基础技术在解基础问题复杂度很高我们后来说还是得区分一下业务复杂度也是难度。
做业务技术的人,他不是没有技术难度,他的技术难度在业务复杂度,能不能抽象成一个非常简单的东西,去支撑非常复杂的业务。就像阿里,阿里的营销够复杂了吧,每年双十一被吐槽最多的就是营销,但你想,写营销系统代码的人是不是更痛苦?做这套系统的人,他能不能做一个很好的抽象去支撑这么复杂的营销玩法,这也不是一般人做得到的,这也叫技术难度。
技术难度,不能光定义成纯技术侧的东西,其实还有很多是复杂性问题、抽象问题。当然每个技术人爱好不一样,有些会觉得我不喜欢面对这种,他喜欢解决技术问题,而业务是抽象,抽象是很复杂的东西。
 
水友讨论区
好,到这里今天关于技术演进方向的主题讨论就结束了。其实说实话,在和毕玄聊之前,我非常期待能不能收获一个类似灵丹妙药的方法论,虽然都说没有银弹,但人嘛总是会有幻想,今天聊完,失望多少有一点,但惊喜也意外很大。
失望是因为他说对一个事情走势的判断,最重要的可能是你要去想。这句话非常正确,但是完全没有用。
但意外惊喜是在追问的过程中,他也举例详细分享了自己的思路:所有的技术演进,其实都是围绕着用户对这个产品的核心诉求展开的,通过技术层面的架构改造,来解决用户当下的痛点。这个痛点,是你要挖出来的,你去想现在技术有没有可能把这个痛点往前推进一代,给用户提供新价值,这样才能产生很大的改变。
这个出发点很朴素但也很值得参考,你可以借鉴他的思路,找一个领域的技术演进过程分析一下,看看是否对自己有启发。
欢迎在评论区留言,也欢迎分享你自己的技术方向分析思路。下一讲我们会聊一聊带团队成事的话题,下一讲见。
拓展阅读
1. 毕玄之前就喜欢搞预测,在年末写过几篇预测文(虽然很多后来被打脸),如果感兴趣可以围观:
来一起预测2019、预测下云、AI在2018将会发生什么变化、2017年“工程时代”即将翻篇迎接”科技时代”、2014年预测行业变化对技术岗位的冲击、回顾2007展望2008
2. 毕玄非常关注对方向的判断关于IaaS、PaaS、SaaS和云写了几篇文章
IT从业者都应关注的软件行业的变化、回顾过去看IaaS的Next、回顾过去看应用PaaS的Next、云计算是新瓶装旧酒吗
3. 关于服务化毕玄之前也写过几篇文章,你可以从中看出他想法的变化:
2015年服务化你真的需要吗、2017年大部分公司并不需要微服务、2019年Serverless云时代的软件架构核心思想、服务化的过去、现在和未来、2022年应用架构演进到头了吗

View File

@ -0,0 +1,289 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
架构:架构师只是个角色,不是个岗位
你好,我是叶芊。-
 -
今天我们对谈的主题是——架构师。知道你是抱着收获一二三四条方法论的想法来的,没错,今天一定会有,而且非常具体,甚至会具体到你在系统设计文档里的“系统设计思想”这个小章节应该写什么。是不是非常期待?-
 -
不过,在讲具体的方法论之前,有几个至关重要的概念我们先要理解清楚,会对你的职业规划有巨大帮助。不然,很多人连架构师具体是干嘛的,能做到什么、不能做到什么都不清楚,就冲着那个概念高喊“我要当架构师!”,岂不是事倍功半,甚至还有可能南辕北辙了。-
 -
好,话不多说,我们马上进入对谈。
 -
极客时间:关于架构师,有一些概念大家觉得非常基础,但又好像似懂非懂,想看看你是怎么理解的,比如说到底什么是架构师?
毕玄其实就是个Title。很多公司不会有明确的架构师岗位就是做这个事情的时候需要一个架构师所以你兼任或者指定了一个人而已不会说这个人他就是个架构师很少有公司这样因为这确实会有点问题。
极客时间:那架构师部门是?
毕玄:很少有公司会有架构师部门。就算有都是很小的,虚拟的也可以。是这样,多数不是说这个人的角色就是个架构师,因为这里有个最大的问题就是架构师到底干啥。我们一直都认为架构师他不是个岗位,他只是个角色。
大家的岗位全部是研发工程师,只是说在这个项目或者系统里,我需要有一个人承担架构师的职责,承担这个角色来负责设计整个系统。
极客时间:什么叫设计系统?
毕玄:现在前面有一堆需求,不管是来自业务方还是来自技术方本身,技术方本身就是做基础技术的那群人。
需求有了以后,这个需求要被翻译成一个技术的解决方案,这就是架构师要干的,通常这个人也会承担比较核心的代码编写,其他人会遵照这个设计来完成整体落地,就这个活儿。
极客时间:但是有些好像就负责写方案?
毕玄:有些可能是外部来的,有些是做业务架构的,比如业务方有大需求,这个时候有人要提解决思路,那可能是另外一回事,他可能是不负责落地的,翻译完就随便做做。但这种是很容易虚的,比如你做架构的时候画框说要这么做,最后研发具体怎么做你根本就不知道,可能跟你想的千差万别,因为研发有自己的想法,这很正常。
挺乱的,架构师也搞不清楚到底什么是架构师,反正我们看过很多,最后还是觉得架构师不大适合实体化。
极客时间:在阿里,架构师会分级别吗?比如初级、中级、高级这种?
毕玄:这对我们来讲是负责的系统大小,但这也很主观,可大可小,比如一个小的系统里包括一些模块,更大一点的可能涉及两三个系统,更大涉及上百个,就需要很多的大架构师。
像大架构师会是一个团队,因为会跨很多专业,总架构师一个人不可能全懂,所以他只是根据整个全貌,划定一个指导思想的框架,判断出负责每个系统的架构师在设计的时候要解决好的几个问题,剩下就是你自己的事了,解的思路有时候会给出来,但具体你要跟你自己的想法结合,做好最后的落地工作。
极客时间:总架构师感觉很像导演,像张艺谋导了冬奥会。
毕玄:你可以认为他(张)就是个架构师,他讲思路,下面人支持,至于怎么确保下面执行的过程不要跟他的想法有太大的偏差,他不是靠系统去控制的,他是靠人在打。
但技术上的架构师是我必须要设立一些指标,可以确保你们上线了我也能看,这就是个很好的架构师,因为多数架构师是画完框就不管了,最后谁都不知道程序员自由发挥成啥样了。
 
极客时间:现在有很多架构师的课程,教怎么成长为架构师。
毕玄:这课简直太难讲了。外面架构师的课程讲啥的,我都很好奇,以前培训的人问要不要采购,我就说你们不要听他们瞎扯。这个话题我们都想了很久。
极客时间:但大家一般觉得架构师是从初期培养的,比如说最开始先了解架构工具,再讲架构理论等等。
毕玄这我们从来没有我之前都是用PPT给大家讲的因为架构师我觉得工具一点都不重要。架构师最重要的传达清楚你的想法就可以了至于你用什么工具一点都不重要。
架构理论,他学完了会发现一点用都没有。像设计原则、设计模式这些东西也不是完全没用,还是有点用,但这就跟数学公式一样,你知道了这些公式,就是学了一个天花板,只是那可能是一个很小的点。
极客时间:那你觉得架构师是可以培养的吗?
毕玄:我以前觉得很难被培养,因为我觉得方法论这个东西没什么用,但后来我觉得方法论还是有点用的,所以我在离开阿里前特意搞了一个架构师培训的班。
极客时间:你讲的是什么?对参加的人有什么要求吗?
毕玄:级别我们其实不区别,班里都是承担过架构师角色的人,大小都有,因为负责系统的大小是知识面的问题。但不管你是哪一级,负责多大系统,我看过我们以前所有系统设计方法都是一样的,大的无非就更复杂一点,可能是分下去有更多人组成。
所以做架构,首先做事的大概思路是可以抽象出来的,比如我的方法第一步是这个,第二步、第三步是什么;另外更重要的是我可以告诉你,我在每一步犯过的错是什么。
因为光讲方法论,最大的问题是讲完之后没有一个人能听懂,他也不会落到自己的实践上,如果你给他讲几个血淋淋的案例,等未来他真正干这个活儿的时候,他也许忘记了方法论,但他想起了那个教训,可能偏差也不大,这就是我们觉得架构师能培养的地方。但其它的,我们觉得确实培养不了,只能实战。
极客时间:讲案例倒很像分享,不太像培训了。
毕玄:因为我们觉得想成为更大的架构师,真的不是靠培训,是知识面问题。
像蚂蚁做的确实好,他们会划几个等级,上面有更大的域架构师。比如说你这个领域是交易,交易里面还有订单、优惠等等,你以前可能只负责优惠这个小系统,只能讲清楚这一块儿,如果你要负责整个,必须要清楚全部的问题。这根本不是培训的活,因为每家公司业务都不一样,而且外面培训很难帮他,只能靠他自己。
极客时间:这是业务架构师,那技术侧的架构呢,也是一样方法吗?
毕玄:对,技术架构师也一样,都是全貌问题,越大的系统,架构师就越难有全貌。因为没有一个人的角色是我来专门看全貌的,只有你干的时候才承受,你被任命了。
他们的区别只是业务架构师的需求来源于业务,技术架构师更纯粹一点,最大的挑战是想好你要解的问题是什么。因为基础技术是需要自己想的,要做什么东西,自己创造需求,业务说实话不需要你想。所以事实上做事的方法都是同一个。
 
 
极客时间:所以这个抽象出来的方法论是什么,是你之前在公众号上写的架构师套路?
毕玄:对。
自己做系统设计的套路:系统设计的目的->系统设计的目标->围绕目标的核心设计->围绕核心设计形成的设计原则->各子系统、模块的详细设计。
极客时间:这个做架构的套路,你一般是怎么开展的?
毕玄:首先必须有个最大的架构师,他是划定框的,决定了这次的协作关系。这个架构师,最重要的是定义目的,做一套架构之前他要告诉所有人,这次为什么要做架构级的改造?
因为架构级改造其实不多,这是超级大的动作,所以为什么架构师不大需要,因为老做这么大的,肯定是出了挺严重的问题,像阿里发生过大的架构其实就这四轮,哪有什么那么多架构的事情。正常情况下,在我原来的框里添添改改就行了。
极客时间:方法论有了,我们也用你开培训班的思路,举具体的案例来理解一下其中的每一个环节,第一步是目的,比如说集团上云当时的目的是什么?
毕玄第一个目的是以后采购的所有机器100%必须是阿里云的不允许自己采购了所以我们只看预算如果大家全部是从阿里云走的就说明成功了第二个像PaaS这层我们定义的目的凡是阿里云有的产品全部不允许自研了而且要用标准的云产品。
然后下面的架构师会来分解。比如PaaS因为要全部切换成云资源所有的系统架构师来看他们的系统要搬上去到底会面临什么问题这些问题提出来会由阿里云负责计算资源的架构师来看应该怎么解决这就是他们应该干的。
所以越大的架构师,其实越是个框架,是个方向性指导,下面的人都在这个框里。但是因为你定义了一个目的,最后你就可以确保这么多人协作不会走偏。
极客时间:你做统一调度也是类似,第一步提一个大的方向?
毕玄:对,像统一调度涉及基础设施、网络、大数据各种各样的团队,那我就必须说清楚我的总体思路是什么,然后你这部分最重要的是要做好什么,就可以了。你们怎么做起来的跟我没关系,你也不用告诉我,因为我也不懂。
大架构师就是这样的,其实是我给一帮人提了一堆的问题,然后你们去做掉。最难的是提问题,而不是解。
极客时间:为什么方法论的第一步和第二步会有“目的”“目标”的区别?
毕玄:目的是我做这件事情是为了什么,但是目标是我怎么考核你做到,其实是个指标。
因为通常来讲,架构设计最大的问题都是你最后做完了,发现跟当初设计是有偏差的。这很正常,因为程序员会自己发挥,像画建筑设计图一样,你一开始画成这样,最后盖成什么样谁都不知道,搞不好天差地别。所以目的、目标就指标,是做系统架构师在前面要做好的。
极客时间:所以目标这一步,比如说会给一个数字?
毕玄:对,比如说异地多活,核心目的就是把切流要封闭在一个单元里,所以我们一定会考核跨单元的交互,这是会在系统指标里定义清楚的,以后系统上线了,只用看这个就能知道有没有达到我们的设计目标,确保偏差不会太大。
极客时间:会不会有些东西用数据衡量不了?
毕玄:那不会,肯定可以的,如果不能衡量,应该是这个架构师没有想得很清楚。
像我刚讲的目的、目标,其实是应该写在系统设计文档里的“系统设计思想”部分的东西。以前很多系统设计文档里都有设计思想这一小章节,但很多人都瞎写。
极客时间:具体要写什么呢?怎么判断有没有在瞎写?
毕玄:有的人不管做什么系统设计,放进去的设计思想都一模一样,这就是瞎写。设计思想是你针对这一次改造,你觉得所有人需要遵循的最基本的原则是什么。
就像异地多活,我们给的第一设计思想指导就是数据错乱保护,你要确保你的数据不会出现错乱,在下面写各个系统实现的时候,我会告诉你大概的解决思路是什么,在你的系统里一定要把这些写上,其它都是次要的。比如要做分流,我告诉你分流的思路是什么,剩下的就是你正常解决问题而已,随便你发挥。
所以你写的其实就是解决问题的一个大思路,也不用写太细,没有多少人真的会那么细地去看那个文档,你要看你写的这些条,在下面架构师的文档里会不会承接好,会的话说明这真的是设计思想。
极客时间:目的和目标后面就是具体的设计方案了,你们在实际做项目的时候会讨论吗?
毕玄:这个我们没有,我们几乎不做架构理论,最多是在晋升面试的时候留用。
极客时间:不会找其他人看一下我的方案什么的?
毕玄:不会,你想架构师是干啥的?就是前面有个问题,要想一个解决方法而已,这是工程,多数工程师是非常擅长的,尤其是写代码优秀的工程师。
这个能力就跟数学解题一样,只是你解的方法可能有问题而已,但你不会这么认为,技术的人都这样,都觉得我的方法当然没问题。前面大家空对空谈,有可能最终落地真的被你说中了哪些地方确实有问题,然后返工,这很正常,因为他只有到那个阶段才能明白,原来我确实设计的有点问题。
 
极客时间:所以整体看架构设计,对架构师来说哪个环节要求最高?前面写设计思想?
毕玄:对,因为很多人根本没有想清楚。大家对系统架构的认知也是这样,前面一页需求,后面一页就是框,觉得架构师这活也挺容易干的,不就是画框嘛。
但最关键的是你的框为什么要画成这样?这就是你的选择,你的观点,说白了前面有个问题,你准备怎么解决,你要把这个解决思路告诉给所有人。
但大家都知道解决思路有很多种,那你为什么选择这种?你的思路是不是最好的?如果不是最好的,你要知道最好是什么。很多架构师是讲不出这个逻辑的。他为什么要把框画成那样,是因为别人把框画成了那样,他只是套用了一下而已。这就不叫做架构设计,这只是复制一下。所以架构师通常是会讲的人,因为架构师是需要传达的。
极客时间:而且前面这一步感觉是不好通过培训来学习的?
毕玄:对,我们只能讲案例,因为选择涉及很多方面,像技术选型需要你“见过猪跑”,还有工程落地问题,你要想到底哪几个地方是一定要解决的,哪些在当前阶段是不重要的,这就是架构师的取舍。你不能说我什么都要做好,那不可能。
像我们做统一调度也是当时决定做两个调度器在线的Sigma离线的Fuxi然后中间有个所谓的零层来做两层的交互后来应该是19年合在一起了就是ASI。最早我们也有纠结要不要做一个统一调度去同时支持在线和离线。
很多人从技术梦想上讲应该先统一但我坚决不同意我就跟团队讲这不光是技术问题还有工程问题。如果统一成一套光做这套调度器可能就3年了这3年里我们不会看到任何成果但我要的是3年内看到类似Borg的混部带来的整体收益有了收益以后自然有机会去实现技术梦想如果没有收益可能公司隔2年觉得这项目不值得干直接就不让我们干了这很正常。
而且关键是这个选择不是我们做到业务效果的障碍,不做统一,也能做到这个效果,统一纯属只是好看一点而已,技术上我也认,我们的方案一看就很丑陋很妥协,但从工程落地上来讲,这就是最高效的方案,因为落地才是最重要的。
极客时间:你觉得落地最重要,但在技术先进度、方案效果和工程落地等等方面上,很多人对优先级的看法可能不太一样?
毕玄:为什么很多技术很好的人在一家公司做不成事情?最大的问题是他不能接受妥协。
他觉得必须我做成这样,才可以。但很多东西都不是这样的,你慢慢其实可以做到那样子,但你要能接受前面恶心一点的过程,反正也是为了最终能做到,要慢慢来,不要太着急。
当时我们做统一调度被很多人狂喷,说你们简直了。他们就觉得你们这伙人是不是觉得太难了想绕路,就被他们鄙视,但这些我都不在乎。
因为我当然也知道有另外一套更好看的,但关键是要判断工程节奏,以及判断如果用这种丑陋的方案是不是做不到业务效果,如果做不到,当然就是另外一个事,关键它不是阻碍的点,对不对?那干嘛挑战难度。反正我觉得挺好的,能做成就行了,你管我什么方案,而且这个方案我会逐步变完美的。
 
 
极客时间:总结一下,你觉得一名优秀的架构师应该具备哪些能力?
毕玄:对架构师来讲,第一要非常清楚知道你做的这个事情的意义,这个还是核心问题,在这个意义上你再去做技术方案,思考技术上怎么去解决掉这个问题,那你肯定会有很多种方案,这就是权衡要考虑很多方面。
像早期的HSF、T4我们技术选型都出了很大的问题这其实是架构师最重要的责任如果你的解决方法有问题那后面就彻底完蛋了。如果你做比较顶级的方案还有之前讲的天花板问题。
另外就是你对未来发展趋势的看法比如说HSF我们认为就是为Java场景设计的但没有想到一家公司一定会发展成多元化一开始没留口子后面根本没有机会所以后来多元进来就不知道怎么搞了这是设计问题。
有时候架构师还会面临团队分工问题,比如说你需要的技术,有三个团队提供,你选谁?这也是架构师要解决的,我们会看平时哪些人做整个系统更有想法,而不是只是我那部分代码怎么写,也会从团队定位和长远发展看,做这个东西对哪个团队来讲是他的长期主业。但这是非常复杂的话题,你要有自己的观点,肯定会得罪一些人,这很正常。
所以架构师是有很大的挑战的,有些时候要面临一些比较复杂的问题和方案。
极客时间:但这几点也都很难培养,只能以战养兵。
毕玄:纯培养我觉得太难了,只能尽量告诉他们在做每一步的时候应该考虑好什么,比如技术选型,我们会大概告诉你技术选型的思路是什么,要注意哪些点。另外也会重点强调你做一个架构设计,千万别随便写设计思想。
极客时间:对于职业成长路径来说,现在大家好像普遍觉得不想做架构师的程序员不是个好程序员。
毕玄:因为看起来好像就是架构师负责了整个系统。
极客时间:那程序员的最终归宿是架构师是真的吗?
毕玄:不会,这成长路径有问题。程序员成长路径的一条就是继续做程序员,这还是得一直做下去的,另外确实有些程序员成长为了架构师,但其实他就是一个兼职,研发工程师兼架构师角色。
如果谁说我就只设计系统,这人很多时候没活干的,因为系统不需要老设计。万一你真的设了这个岗位,那完蛋了,因为这个人就会老想,会凭空创造出来一些需求,这就尴尬了。
因为架构师是设计系统结构的人,不是设计细节的人,细节才需要经常变的,所以之前专职架构师部门最后会变成一个很虚的部门,因为你又不实干,你讲了很多,但别人研发觉得你又不懂,他还是自己干一套,跟你的设计方案一毛钱关系都没有。
 
极客时间:对于想走架构师这条职业路径的同学,一般架构师是怎么选出来的?
毕玄:一般就是研发里写代码写得比较好就去做,一个项目比如说业务方有需求了,那你就牵头去处理这个需求去做规划,所以平时根本不存在这个人,只有这个项目出现的时候才会突然说任命了谁去负责横向的架构。这当然是基于大家日常对他的认可。
极客时间:所以即使以架构师为目标,大家也还是要从程序员正常往上走?
毕玄:对,不会因为你是架构师就给你定什么级,当然架构师肯定会比程序员更有优势,这个我们也认。
因为做过架构师的人说明你可以承担更大的责任,除非是做专业技术的像虚拟化、内核,对业务团队来讲,为什么那么多做业务研发的程序员想做架构师?说白了他只是想负起一个更大责任而已。
多数公司的发展路径是有些程序员他能兼任架构师他可能就变成Leader了可以负责这个系统了。因为架构师其实已经具备技术层面、业务层面的技能了只是欠缺的是管理、行政什么的他离Leader只剩一步。所以架构师确实几乎就是Leader的前提。
极客时间但好多人只想当架构师不想当Leader。
毕玄我觉得很多人想成为架构师的目标是想做Leader而不是想做架构师。当然有些人也喜欢做架构师就是我不想承担管理责任但是我又想负责整个系统这种人也有这也没错。
但通常来讲作为一个技术Leader最重要的当然是技术能力管理能力是可以培养的所以我们不会接受说这个团队有一个管理能力很强的人因为他技术能力差一点所以要给他配个架构师这简直太丢人了。所以通常就是架构师做了Leader。
 
水友讨论区
说实话,今天聊完我对架构师有了全新的认知,之前我一直以为架构师是一个岗位,就是有个人一路打怪升级上去最终成为了一名架构师。
毕玄认为,架构师就是个角色,有一堆架构演进的需求来了,需要被翻译成一个技术的解决方案,有个人出来干这活,根据系统全貌划定一个指导思想的框,也承担了比较核心的代码编写,来保障最终的项目效果,这个人就是架构师。
如果你还想成为一名优秀的架构师,毕玄认为应该具备几大核心能力,核心是要想清楚并且讲清楚你做这次架构改造的意义,包括目的和目标,在意义上再做技术方案的思考和权衡,包括技术选型,顶级方案的天花板问题、对未来发展趋势的看法、团队分工问题等等。
你对架构师的理解是什么呢?你眼中的架构师能力模型是什么样的,对这些能力有怎样的排序呢?如果你有自己的架构方法论,也欢迎分享,期待在留言区见到你的思考。
 
到这里5场专题研讨会就结束了我们从“个人成事、方向选择、团队带领、做事文化、架构修炼”这5大方面把毕玄分析问题的思路和做事情的方法浓缩给你不知道你收获如何。
当然想要把方法论化为己用你还需要丰富的案例所以我们接下来将坐上时光机展开一段探索之旅看看毕玄在二十多年的技术人生中做过怎样的选择又经历过怎样的波折才总结出这5大方法论。期待和你再会下一讲见。
拓展阅读
毕玄在自己的公众号上写了一个架构师系列,详细讲了方法论中的每个步骤,你可以参考:
0. 聊聊系统设计的套路-
1. 系统设计之系统建设的目的-
2. 系统设计之系统建设的目标-
3. 系统设计之达成目标的核心问题-
4. 系统设计之解决核心问题的设计-
5. 系统设计之设计原则
另外还有几篇针对自己经历的架构反思:
我在系统设计上犯过的14个错-
多个团队的技术方案冲突,怎么决策-
架构师画像

View File

@ -0,0 +1,260 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
番外:一位险些没上得了大学的青年,如何开启计算机征程
你好,我是叶芊。-
 -
今天这篇又名“大佬养成番外之——大学篇”。-
 -
毕玄的经历相信你已经非常熟悉了外界写他最吸引眼球的宣传语一般都会提到他是生物系毕业的比如“从生物系学生到阿里传奇P10毕玄是如何完成自我蜕变的”-
 -
虽然八卦,但不得不说,他相当丰富的大学生经历,是毕业后能顺利转岗成为一名程序员的必备要素,毕竟大佬也是需要从零开始养成的。-
 -
那让我们一起把时间线拨回1998年看看这位险些没上得了大学的青年是怎么居然因为太无聊和电脑结缘的
一条重要说明👉:今天的对话是基于毕玄大学经历的一场漫谈,主题是“选择”,希望了解毕玄接触计算机的初心,把他的早期想法展现出来,与他后期观点形成对比,看看是否能找到他在面临无数人生选择时的底层逻辑。
如果你对他起步阶段的具体技术学习过程感兴趣,可以结合文末链接一起看。
 -
极客时间:一直会有人好奇程序员非科班出身和科班出身的不同,你是非科班,为什么当时学生物后来转了程序员?大学那会为什么会想学生物,自己主动报进去的?
毕玄:好吧,这是一个悲哀的故事。
极客时间:啊怎么讲?
毕玄:因为我高中报大学的时候比较失误,我们以前考大学,你们不知道,跟现在差别是非常大的,当时是后出分先报志愿。
现在是先出分。关键现在是出分然后可以报很多志愿当时我们是只能报很少的志愿可能是3个志愿6所学校这样的而且先录批只能报军校第二个批才是正常。当时我因为家里以前一帮人工作的原因那个时候特别想读的是邮电大学。
1998年的理科考试理科考语文、数学、英语、物理和化学。报考顺序是5、6月份先报志愿一个月左右后高考然后出成绩最后等录取通知书。
极客时间:邮电大学?当时你的选择可以具体聊下吗?
毕玄我是1998年高考我们那个年代最火的学校是邮电大学。邮电大学里面中国最牛的两所一所北邮一所南邮北京邮电大学南京邮电大学。我们很多人都很想读邮电大学我是因为我家有很多人在邮电这个体系内所以我的志愿报的很差第一志愿北邮第二志愿南邮没了。
因为那个时候邮电大学特别火,我住江西的,江西那年南邮的录取分数线接近清华,北邮应该是超过了清华。所以其实是我报的两个志愿都没有被录取,我都以为我要重新读高中了(笑)。
但是后来被我们省的大学南昌大学捞回去了,好像以前是可以这样的,就你可以没报它,但本省的大学应该可以从现在这批没有被录取的人里面捞,它想要哪些人。然后我就被捞进去了。
极客时间:没被理想的大学录取上,你有想过重读吗?
毕玄:想了,我当时想了很久要不要重读,后来我觉得还是算了,重读还是太累了。
不重读然后被南昌大学捞进去了以后相对来讲我的分报南昌大学是比较好的所以我可以选要读什么系。在我们那个年代最火的一句词是21世纪是生物的世纪所以我就觉得那就报生物系吧。
我们这些人回头看也觉得,最大的问题是我们那一代人,不过我觉得现在也一样,多数人其实读大学前你根本不知道自己要读什么,这是中国学生可能比较普遍的,国外我觉得好很多,因为他们多数是不先选专业的,就你进去先通识教育,加上选课又很自由,后面读了两年以后再选,我觉得是有可能会知道我想读什么的。
但是中国不行我们那个时候更不行生物系我都不知道生物系是干啥的也根本不知道生物系出去以后要干啥你只是听到很多人说21世纪是生物的世纪现在也还是这句话22世纪是生物的世纪应该还能听到这句话。所以像我知道的很多人也都学的生物阿里之前有好几个人都是生物背景的多隆也是生物系的还有福贝我们三个人都是学生物的。
极客时间:你们都是被世纪口号忽悠进去的?
毕玄:也不知道,反正都是命运让我们选择了生物系,所以我就读了生物。
 
 
极客时间:那大学进去之后是生物系,你是怎么跟电脑结缘的?这个差别还挺大的。
毕玄:去学校读了生物以后,我很快可能就觉得生物不是我想读的,但电脑也很凑巧,反正有很多凑巧的因素。
最早是因为我到大学以后要军训,军训的时候很无聊,我们当时不是去军队军训,就是在学校,军训完了晚上的时候没有什么事可以干,我和另外一同学俩人就在学校里瞎逛。
逛的时候我们觉得太无聊了真的太无聊了因为1998年上网还没有应该很少有学校能上网但非常慢而且学生也不知道上网干啥1999年才比较多因为腾讯、阿里全都是1999年创办的。所以1998年的时候其实什么都没有没有娱乐生活。
我们俩在学校逛的时候看到有个机房最早机房好像可以上机玩Windows或者DOS当时我们俩觉得反正也没什么事干就进去了结果进去之后关键是我们发现也不知道玩啥。因为我俩以前在高中是没有怎么学过电脑的什么都不懂。我们去了机房也不知道玩什么我就看旁边的人发现旁边的人都在干啥呢都在打字练盲打。
极客时间:盲打?大家不是上机做实验或者玩游戏什么的?
毕玄:那个时候不像现在,那会多数人刚到大学的时候,电脑相关的背景知识都是几乎没有的,其实都是从盲打开始,大家可能也很无聊(笑)。所以一进来,你发现整个机房的人哇居然全部在练盲打,简直了,也挺卷的,搁现在肯定在玩游戏了。
然后在那个环境里你就不由自主地被卷进去,因为你发现旁边人打字好快,就觉得我也要打得更快。所以军训一个月的结果就是我竟然练会了盲打,对电脑开始有一些兴趣了,觉得也挺好的。
极客时间:所以你是起步的时候有成就感了。
毕玄:然后大学就开始了,因为军训结束以后我们宿舍就讨论要不要买个电脑,就一起买,那个时候我们都是这样的,每个宿舍的人都觉得太无聊了,得买台电脑,当然了买电脑还是得玩游戏的,大家的第一诉求肯定是玩游戏。
反正就开始买了,但买电脑的这个过程,确实让我对这个行业可能更有兴趣了,因为我们那个时候买电脑跟现在是完全不一样的。
 
 
极客时间:那个时候买电脑,是组机吗?
毕玄:对,以前买电脑,尤其学校学生,更倾向的是我买一堆的零件,自己组装,现在都是我买一台整机就用着好了,但以前不是。
我们去电脑市场买一堆的零件,开始学怎么组装起来。因为我们是生物系的宿舍,计算机系不在这个校区,他们在另外一个校区隔很远,所以我们跟计算机系的人其实不熟。但我们系有几个人,就很喜欢折腾电脑,也不知道来干啥,就觉得很好玩,所以后来这些人就开始负责各个宿舍电脑的组装。我们就开始瞎弄。但好处因为大家都不懂,你有瞎弄的空间。
那个时候大家希望是我用很少的钱买到一台还不错的电脑尽可能把这个电脑的能力发挥得比外面组装的更好所以我们会学很多硬件层面的比如说像什么CPU、调频啊各种各样但这些都是自学我们确实没有任何机会因为选修你也选修不到计算机系的课就很尴尬。反正就自己玩。
极客时间:那个时候你学硬件是怎么学的?看书吗?
毕玄也不知道我们好像没怎么看书反正就瞎弄可能有几个人会告诉你像CPU跳频主要是跳线问题什么的。我觉得最重要的是我们不怕。
跟很多人聊,现在学电脑硬件的很多人可能是不敢,比如给你一堆零件你敢不敢随便弄,你可能怕烧掉了。在那个时候对学生来讲,如果烧掉了也是很多钱的,可能几千块钱没了,哇那宿舍的人得把你砍死(笑)。但是我们好像也不怕,也不知道为什么,反正就瞎弄。
组装电脑的这段时间就会接触电脑行业的很多人,当然是偏硬件的人,因为我们那个时候经常去南昌的电脑城跟那些装电脑的人聊,后来他们说不然暑假你们来装电脑吧。那个时候装电脑挺赚钱的,因为信息很不对称的,就是看你懂不懂,你不懂我随便给你开个价,不像现在可以网上查一下,几乎不会有太大偏差。但以前偏差非常大。
极客时间:所以看你对电脑逐渐感兴趣的整个经历,大家如果兴趣不同,选择差异还挺大的,当时是你们在宿舍里面一起组机,还帮人家好多宿舍都组好,那其他人是就去玩游戏了吗?
毕玄:对,那肯定呀,因为主要目的就是玩游戏,后来就变成了上网。
极客时间:你当时有玩游戏吗?
毕玄:也玩,肯定也玩,但我可能没有那么感兴趣,我对游戏好像天生就没有那么强的兴趣,所以也就觉得没什么意思。
极客时间:这个差异性可能是大家刚开始就不一致的吗?
毕玄:就目的不一样。对我来讲,电脑可能最主要的不是玩游戏,但对于别人可能我买电脑的目的就是玩游戏。
我后来也不大玩硬件了,因为组装门槛其实没有大家想象得那么高,硬件要么就是组装,要么就是设计,因为你不可能自己做硬件,这个可能性是不存在的,所以就剩组装。那会我们觉得去电脑城卖电脑,也就帮人装装电脑,好像也不是我们想干的,就不是很有意思,因为那个时候你也不会想着要赚钱,没有这个诉求。
 
 
极客时间:你大一接触电脑之后感觉有点意思,那大二呢?后来也不玩硬件了,你找了什么新活动?
毕玄:大一可能是个开始阶段,我大二学少量的专业课,植物、动物、基因等等,这就很偏生物的,我上了几堂之后,实在不想上了,我觉得这个很不适合我。但那个时候我对计算机就越来越有兴趣了。
到了大二就是1999年、2000年开始流行做网页做网站了因为腾讯阿里也创办了外面有很多人很多公司就想做一些网站放在公网上然后我们觉得做网站也挺有意思的你可以在互联网上放个东西可以自己随便搞。但那个时候其实是个静态就不像现在是动态的网站静态是每页都是写死的里面是什么内容就是什么内容。
极客时间:写死的,类似展示页吗?
毕玄就是个展示可以认为就是把文本放到了网上。那个时候大家开始学怎么做网页就只能自学了。所以我以前还会说自己挺擅长用PhotoShop之类东西的因为以前做网站的三个东西三剑客PhotoShop、Dreamweaver还有个什么来着Flash反正就三个组合开始做的网页。
做网站,开始是觉得挺有意思,我学了一段时间之后,有家公司去我们学校想找人帮他们做一个网站。也不知道为什么我就去了(笑),虽然我是生物系的,计算机系的人去的好像还不多那个时候,当时我就去了。
去了之后,我就相当于变成在公司了,在一家江西那个时候的门户网站开始做一些网站静态的东西,我感觉还挺有意思的,哇还能赚钱,就觉得这个活简直太好了,所以越来越进坑了。
那个时候做网站是特别特别赚钱的因为是按页收钱的不是现在我给你做个网站多少钱以前是我给你做一个网站这个网站总共有几页比如说有3页你打开能点开的总共就3页哦这样的网站大概要800块在2000年800块对一个学生来讲还是很爽。后来我跟那家公司有些销售特别熟他们会私下给我一些单子说我手上有个单子你去做吧给你多少钱就不走那家公司。
极客时间:跟销售的关系特别熟,这个在程序员中还挺少见的,你是平时会跟人家聊吗还是怎么?
毕玄:那没有,其实这个是互利。销售他寻求利益最大化,对他来讲,找公司的其他同事肯定会要他更多的钱,这很正常,但学生嘛,也无所谓,给多少钱就多少,因为我完全不在乎多少钱。
加上我又不准备靠这个来赚钱我只是需要做点东西就好了如果顺带还能赚点钱对学生来讲那就更好。而且对学生来讲钱其实也不少干几天就能赚几百块简直太好了因为我后来大三的时候正式上班一个月就2000。
极客时间:所以你就冲着做东西去,顺便赚点钱,但是后来很快网页就不赚钱了?
毕玄:那个时候我做了一些小网站,你的技能就会越来越熟练,但这个技能很快就升级了,这种好日子大概持续了一年,一年之后就不再是这种报价体系了,就变成你的网站是要带动态的。
极客时间:所以是做了一年,技术就迅速升级了。
毕玄:对,我们回顾会发现很多技术是会非常快被平民化的,阿里后来的很多技术也都是这样,开始的时候它显得特别高端,其实是因为大家都不懂。
但很快尤其中国懂的人就会多因为说白了是大家都会发现一个行业这么赚钱就会涌入一大批人如果学习的门槛又没有那么高很快人才就饱和了、溢出了所以大家就开始卷。以前说做3页是800块后面可能变成了不管你多少页总共800块那就不一样了迅速市场价格就下去了。
当然也不是坏事,因为平民化了所有公司就开始做,以前太贵了不是所有人做的起,但对很多有技能的人来讲,我当时就是,会觉得哇这个太难了,太卷了。
极客时间:技术升级之后,你去学做动态页了?
毕玄:恩后来我们就发现这个时候有另外一个门槛更高的东西是更赚钱的,那个东西就是做动态页,不再是原来的静态页。
因为静态页其实是很简单的大家通常的做法是先用PhotoShop做一个完整网站的图片做完以后开始切割切割完写HTML就构成了整个网站所以熟练的人一天就可以做完速度非常快。但后来这个门槛上去了大家开始学动态了动态就写要程序。
所以我开始学习写代码就彻底走向了“码农”方向了。以前只是个PhotoShop艺人甚至只是去抄一下而已因为那个时候很多人的做法是去抄韩国的网站因为韩国做的特别好他们网站设计都非常精良中国的都很土所以很多人就去韩国网站打开截图把里面的字全换掉搞定那个时候也不存在版权。
极客时间:这会你是怎么学的?
毕玄到动态这个阶段开始学习一些代码我只能自学了。那个时候用的还是ASP现在应该是ASP.NET就Windows的我们最早其实全部是微软体系因为微软做的东西特别容易上手。然后我们开始学ASP学习一些新闻发布的网站、留言板啊这种比较常见的动态程序开发其实这个也还好。
但你能看到,这个门槛确实比前面是高很多了,就是前面学的人是非常多的,很容易进来,但到了这一步你会发现从静态变成写程序的人,确实是少了,就这一关就少了很多人,刷掉了很多人。
 
 
极客时间:从那之后,你开始搞动态网站写代码了,有一点好奇,你的学校和外面是怎么平衡的?
毕玄:学会了以后,我应该是大三的暑假就正式开始写程序了,因为那个时候我已经觉得未来我肯定不会做生物了,真的没有兴趣,而且一开始的时候我混的就是外面的计算机圈,跟南昌做计算机网站的一帮人比较熟,他们都是工作的人。后来因为我在外面做了一些东西反向和学校计算机系的人认识了不少,我们当时有个工作室,就在南昌大学,是负责给南昌大学做网站的,所以第一版南大的网站是我们做的,里面就我一个生物系的人,其他全部是计算机系的。
所以我就变成了准计算机系的人了,但我也没有上过计算机的课,主要是我觉得大学上课也没什么意思,外面更实战,外面是有一家公司,我给了你个需求,你在多少天就必须做出来,这个可能逼着你反向更快地学习,因为这是必须的,你做不出来,后果不堪设想。
大三暑假,我就开始正式去一家专门做这种网站的公司,那个时候应该算上班了,都不是实习,我跟上班的人一样非常正式地干了几个月,那个公司的程序员特别少就三四个,后来干着干着就变成我是主力了,可能学生的学习动力更强一些。后来我就做他们那家公司相对大一点的网站项目,断断续续都在那家公司做,包括开学了以后我都在那做,所以生物我可能就学的很糟糕。
极客时间:那个时候上班是?
毕玄:正式工资,不是实习工资。
极客时间:那学校的课程呢,不太去了吗?
毕玄:几乎就不上了,所以在期末考试的时候,我老师还问你是我们系的?我说我是你们系的(笑)。
极客时间:考试是怎么解决的呢?
毕玄考前还是要稍微突击一下的那个时候我们系专业课其实老师对我们很好一般来讲不是很过分的专业课老师在期末考试的时候都会出去然后剩下就可以自由发挥了所以一般我的专业课是可以踩线过关的看我大学的成绩专业课基本是在60-70之间就是这样没有更高了没有一门会超过这个分数线算是混过去了。
所以到了大三我已经算一个很职业的程序员了,应该算,因为我其实是正式公司的正式员工,跟别人没有太大区别。到大四是因为就不能了,要写论文,我就没在公司上班。另外也是因为到了大四我也不想在江西继续工作了,如果想的话也能继续呆,但我想离开,觉得还是应该去大城市。
 
 
极客时间:关于人生选择,在毕业之后,你是转成程序员了,那你同生物专业的同学们,有跟你一样换专业的吗?
毕玄我们班应该只有2、3个后来是不做生物的有一个应该也是对计算机感兴趣他是研究生直接就读计算机系了可能因为我已经在公司工作所以我觉得这玩意没有必要读研究生我觉得还是社会可能更能让你学到东西。
因为我以前去计算机系了解过一点,跟计算机系的一些人聊了一下,我觉得他们好像也没学什么东西,而且他们很多人学了很多年,反而是不大想做计算机这个工作的,因为读的很枯燥,就不想学,但不在这个系的人,像我们可能就有很强的兴趣,然后会很主动。
极客时间:所以学习新领域,在一开始的阶段怎么激发自己的兴趣,可能很重要?
毕玄:我大学做计算机只是觉得好玩,就这个原因,也没有什么,然后觉得自己学起来也很轻松。因为学生物我觉得太难了,学的很累,就算专业课认真听,我也就只能考到那个分,那我觉得我太难了,但计算机我随便搞搞,好像比多数人会好那么一点,当然这个兴趣就上来了,成就感就在。
我现在觉得为什么海外很多教学会好很多,因为他们大学是非常知名的教授来上本科生的课程,这个是不一样的,他会让你看到学这玩意到底有啥用。因为我们多数是不知道的,就是说你让我学物理,如果我不知道学物理有什么用,能够解决什么问题,那我就觉得这学来干啥,不就是考分,而且还那么难考,我才不考嘞,但是如果你发现哇学这个东西,原来能解决现在人类面临的问题。
极客时间:就有种使命感。
毕玄:所以我跟我家小孩说你就应该学生物。
因为他本来对动物、昆虫非常感兴趣,喜欢养各种昆虫,再加上我会跟他说生物里面对人类史有影响的很多问题,像看《人体简史》、脑神经科学家的采访什么的,听他们讲你就会知道哦原来研究这些的意义是对人到底能解决什么问题,你就会觉得,哇如果我真的能够研究出这种问题,那在人类历史上,跟计算机系的人根本不是一个档次的。
可能很多人都没有讲清楚这个问题就是我学这个到底是干啥有什么用。总得有点用吧你不能说我学了个东西就为了考个60分还是90分这个意义很小没有多少人是这个动力的。
极客时间:当年你那些同学,后来没有转行业的继续走生物路,你觉得他们有找到学生物的意义吗?现在大家的近况如何?
毕玄:有些有,有些可能也没有。其实大部分人读这个专业不知道我出来能干什么,我们系的很多人毕业了问自己到底能干啥,没有人知道。
但我们那一届比较幸运我们2002年毕业的当时生物刚被列入了高考科目那高中就有师资需要了。但生物系在江西是非常少的那个时候江西师范大学还没有生物系只有我们是正统的尽管大家可能学的也很烂但毕竟大学专业是生物工程所以很多高中都是立刻来我们学校要生物工程的人只要愿意你就可以去大学是多少分都不重要。
然后你竟然就此就进了江西的名校,现在我同学大部分都在江西非常重点的高中做生物系的教导主任,因为他们是第一届,这就是命运。第二届就不是这样了,因为江西师大就有了,那别人肯定是倾向师范大学的人,毕竟专业老师,我们这都是外行。
但我们有少数几个同学继续读到博士了,因为生物要非常好的话差不多都要到博士,然后开始领导实验室做一些研究,我们同学有的在北大带一个实验室。但做研究的比较多,大部分是做医药的,或者更危险的就是武器、军工。
 
水友讨论区
今天我们就轻轻松松地随便聊点。现在你有在学什么东西吗,目的是什么呢?在学习过程中有挖掘到自己感兴趣的点吗?如果你是一名开发者,你和计算机的缘分是从什么时候开始的,当时有想用计算机做点什么吗?
欢迎积极讨论参与盖楼,我们留言区见。
到这里我们和毕玄的所有对谈就结束了非常感谢你的支持希望这场毕玄的20年技术人生复盘对你有帮助。
最后为了能更好地了解你对专栏的看法,我也特别准备了一份问卷,欢迎你提出建议或意见,期待听到你的声音。
拓展阅读
从业余程序员到职业程序员如果你对毕玄在起步阶段的技术学习过程感兴趣可以看这篇他的复盘程序员的成长路线Remix