Skip to main content

你想在硅谷一线科技公司做管理

 
最近跟朋友聊天,朋友说起在国内做IT就是和时间赛跑,35岁之前转不了管理之后就很困难了,做技术会被后来者淘汰。我并不是特别同意这样的看法,我想结合硅谷科技公司的实际情况,和大家探讨一下技术vs管理的两条发展路线之争。
. From 1point 3acres bbs
技术路线
关于职业和事业的境界,网上有种说法,叫做“奴徒工匠师家圣”七层境界。对于程序员来说,虽然不尽恰当,但也可以找到一些有趣的对应,基本描述了P4-P10的进阶路线。
“奴”可能对应于实习生,打打下手,干一些fulltime不是很乐意做的小活。
“徒”刚毕业的学生,基本由组里的人带着,需要学习大量的经验。
“工”就是有3年左右经验的初级工程师,团队的好帮手,老板的好工具
“匠”就是高级工程师,输出主力,大多数terminal level指的就是这一层。能够产生group level的impact
“师”对应技术大拿,tech lead,能够产生org级别的impact
“家”就是公司的希望,能够独当一面,或者是小公司的CTO,产生公司级别的impact
“圣”,江湖上流传的传说,能够引导整个行业的走向,比如Jeff Dean,Linus Torvalds等等
.google  и
从待遇角度来说,我个人觉得可能纯靠刷题跳槽,5年左右工作经验可以拿到400k美金的待遇,获得一个terminal level的职级(比如Google,Facebook的IC5,Apple的IC4),再向上就需要对于某个领域的专业知识,管理经验,或者说比较巧合的机会了。在硅谷一线科技公司,始终奉行的是能力越大责任越大,上一级的收入增加与随之而来的压力,绝对是成比例的。尽管如此,和国内相比,我觉得在美国做纯技术其实也不失为一个选择。首先和管理路线相比,工程师的工作相对纯粹,自己能够掌控的部分也比较多一些。其次,美国这边的年龄歧视目前来看没有那么明显,在terminal level浑水的也大有人在。如果没有特别大的目标,大公司的senior engineer可以过得很不错,只要保证手里这摊活始终有需求就行。
. 1point 3 acres
当然多数国人的目标都是转管理,所以我们重点来聊聊管理路线。
.google  и
管理路线
首先先说一个误区,很多人包括我自己也觉得individual contributor -> tech lead / tech lead manager -> manager 是一个自然发展的路线,但往往从IC到manager的转变是一个比较突变的过程。大公司把IC和manager分成两个track是有原因的,两者需要的技能点完全不同。好的工程师不一定是个好老板,反之,好老板也不需要技术实力很强。这一点可以和球员与教练的关系钟窥见,好的教练当年未必是顶级球星,而马拉多纳那样的球星执教水平也不过如此。硅谷公司通常把manager称为people manager,核心在于people,目标就是让组里的成员开心,能够各司其职地工作,至于技术问题,不是可以招人来干的嘛。这一点不单单对一线管理适用,甚至对CTO也适用。CTO技术不强没关系,能够把业界技术最强的人找过来,让其开开心心地干活,就是一个称职的CTO。
. 1point3acres
那么科技公司的manager应该干什么?我觉得就是social,和peer manager social,和组员social,和老板social,增加自己和自己组在org的影响力,专业术语叫navigate through the organization。管理一个组其实就像是运营一个小公司,你的资产就是组里的工程师,你的目标就是扩张,获得更多的项目,招更多的人,挖出新的坑或者不那么明显地抢走别人的地盘。这里顺便说一句,manager的升级路线不管HR怎么吹,公司PR怎么吹,就是和手下管的人数直接相关,人越多,级别越高。人少了,manager自然也就混不下去了。说到这里,manager看起来似乎就是一个“人生在世,全靠演技”的职位,和别人处好了关系,就能平步青云,好像并不需要什么硬实力。这不就是看看职场厚黑学,搞搞办公室政治嘛。但我觉得,就是这办公室政治,反而是一个好的manager的硬实力,并且是比技术实力更难获得,更虚无缥缈的一种实力。

再说办公室政治. Χ
Manager需要的办公室政治分为两部分,“安内”和“攘外”。“安内”是指为组员争取最大的利益,“攘外”是指巩固自己组的地盘,有节操或者无节操地舔上级,扩大在org内部的影响。 ..

先说“安内”。组员和老板的1 on 1, 估计80%都在谈升职加薪和季度/年度表现,这从大组的角度来看恰恰其实又是一个零和游戏:不管HR怎么吹,公司PR怎么吹,绩效考评就是有曲线的,不可能人人都好评,人人都升职。于是绩效考核的会议室成了manager们的角斗场,一个工程师半年一年的业绩要浓缩在几分钟的presentation里,想想都知道manager的描述对你的前途有多重要。并且,由于考评曲线,某个组里的组员表现得好,基本就说明会有人垫背。那么谁垫背,谁升职,其他manager支持不支持,都是politics。高级别的升职,前期作为manager就需要和其他manager沟通,和上级打好招呼。并不是说你做好了自然有人会看到,哪有这么公平的好事。把考评结果不好的组员哄开心,在表现好的组员面前说好话,继续画下一个饼,就是manager要做的“安内”。

 

 人数比较
因为一个M管理x个IC, 所以肯定必须IC人数比M多的
但是同级别的情况下就不一定了,我自己当IC和当M的时候都特意取过公司数据,仔细比较过这件事. 1point 3acres
取决于公司自己的tenure,和规模。
稳定成熟的大公司内会有足够数量的高级IC,但是不够大(比如工程师只有几千人)的时候,高级M多过IC。

在L5的时候,IC数目 > EM,否则这个公司恐怕结构有较大问题,这时候恐怕要多看看公司finance,还能否一直坚持下去,别纠结IC vs. M了
因为毕竟EM并不是写代码的人,中层管理太多则效率恐怕有问题。-baidu 1point3acres
.
在工程师团队几千人以下的公司,L7以上,IC数目 很可能 << EM,因为VP拉,sr director, director, sr manager 之类纯中层管理职位一直都要在,大体上是看人数决定的(虽然不完全是),但是高级IC是scope和impact决定的,不在一定规模,不处理足够复杂业务的公司就没有那么大的scope需要一个Principle engineer. . check 1point3acres for more.

所以前面讨论里面很重要的一个点就是:
想当EM,最好去扩张快的小公司,基本上想当M没有不能当的。当有2-30个IC需要协调工作的时候,必须有EM出来做管理,无论如何都需要find an EM的。. .и
想在IC ladder专心做技术的,最好去大公司,才有足够的scope, complexity和需求,让IC好好发展。
同级别的IC and EM 很多公司pay是一样的,大公司的很多高级IC pay是比EM高的。
一个EM管理的IC不记得比自己级别低。一般可以管理同级别的IC,非常高级的IC有时候也汇报给比自己低一级的EM。

至于WLB取决于怎么看待这个问题。
一个fact是EM的raw hours投入是没法压缩也完全不flexible的。因为需要跟别人开会啦什么的。
IC 可能更有flexibility,但是高级IC除了工作上投入hours,其实很多隐性时间是用在学习新技术,搞技术交流上面--- so more flexibility but not necessarily fewer hours. . 1point3acres
很多人会觉得有时间了,宁可在晚上自学技术,看看博客,做做新东西,也不愿意开无聊的会 --- 这也是选择IC over EM path很valid的一个concern.


选择
IC vs EM 没有绝对的好或者不好,只有哪个更合适个人。世界的美妙就在于不同的人有不同的偏好,合起来就能把事情做成了。选择ladder的时候,除了看外界因素,也最好是尽量遵从内心,喜欢的东西比较容易最好,也容易取得发展。

 

  由此可见,不管是技术还是管理,都不好混。总而言之一句话,钱难挣屎难吃,要想在职业上有所突破,不花时间去研究肯定是不行的。但职场又往往不是一分耕耘一分收获,瓶颈期的突破可能来自一些机缘巧合,或者说运气。我个人比较相信的是,所谓的运气,就是在关键时刻,有机会付出努力;而所谓的努力,就是指在关键时刻,有机会看看自己的运气。找到合适自己的位置,比总是看着上一级但一直求而不得要开心得多。至于钱,不是还能靠投资和被动收入的么。

Comments


  1. wfh这一年多里,组里的工作越来越没有impact,越来越operational,和其它组的engagement越来越political。以至于现在每周的sprint planning都变成了讨论怎么和partner team玩politics。组里的staff eng们 (2 levels above)一如既往地试图control everything and claim credit,自己scope不够,promo无望。

    ReplyDelete

Post a Comment

https://gengwg.blogspot.com/

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...