转型技术管理?Yes or No

摘要: 其实对于程序员而言,有很多的转型发展方向,每个发展方向中,成功的人都大有人在。而在这众多的职业发展选择中,最合适的发展方向想必就是技术管理了,无论是项目经理、架构师还是CTO,相比于底层的技术人员,他们对于项目的影响能力往往会更大,所能够改变的东西也会更多,也往往更加有成就感。

前面的文章谈到了很多关于程序员在而立之年需要对于自己的职业发展方向进行重新考虑,其实对于程序员而言,有很多的转型发展方向,比如转型成为技术管理,或者成为运维甚至也可以自己进行创业,每个发展方向中,成功的人都大有人在。而在这众多的职业发展选择中,最合适的发展方向想必就是技术管理了,这也是大多数从程序员做起的同学最希望的发展方向,无论是项目经理、架构师还是CTO,相比于底层的技术人员,他们对于项目的影响能力往往会更大,所能够改变的东西也会更多,当然收入也会比一般技术人员更高,也往往更加有成就感。

9b4c7744f7ebeee7dbb1e6084431c59b7d5c5a0c

但是从程序员成长为技术管理者并不那么简单,首先对于程序员而言,他们的工作更为简单,大部分内容只是和机器打交道,最多也就是和同团队的成员或者测试人员有所沟通,只需要关注于自己的工作,而不需要对于全局进行考虑。而当你成为一个技术管理者时,你不仅需要具备比较强大的技术能力,能够让团队中的成员对于你的领导信服,也需要具有良好的沟通能力以及领导的智慧,还需要具有掌控全局的能力,技术管理者或许不会对项目中的任何一个部分都非常了解,但是他会知道团队中谁能够胜任什么样的工作,团队的配合怎样才会最高效,以及每个项目的整体进度是怎样的,权力大了,同时责任也会更大。或许在技术上,你并不能改变人们做事情的方式,除非你有那个能力、权力和机会。有了这些条件,并且找到正确的位置来发展,你才有可能摘星揽月。其次,想要从程序员成为一个架构师或者项目经理,你往往需要付出比别人更多的努力,每天都写业务代码,难以从工作中得到足够的养分,你需要利用一切可以利用的机会去学习和成长。当然,这并不是说坚持在一线深入地研究技术成为技术专家不是一条很好的职业发展道路,也并不是所有的程序员都适合做技术管理者,本文就为大家分享对于技术管理转型的思考。

首先和大家分享一个“一子错,满盘皆落索”的故事。这个故事的主人公兢兢业业干了35年的程序员,最后却认识到,程序员的力量太过微小。无论你写程序有多厉害,你都很难有权力真正改变一些失败的产品、失败的项目。尤其是当他看到,当年跟自己同上节目展示开发软件的Mike Slade,最后走上管理层,创立了包括ESPN在内的一大批公司,成了乔布斯的好朋友,那种失落更是莫名的强烈。至今都对自己当初贪图安逸、没有走上管理层而懊恼,走技术管理还是继续当程序员,这是个问题?

8c1ef107e7628c513d4faaedfdf519a7cd3839c8

以下为故事内容:

约摸20多年前的时候,我面临着一个人生的交叉路口。当时我的第二家公司正在走下坡路,我们给一家出版商客户开发了五年的Deltagraph软件项目终止了,因为对方想要转移到方兴未艾的互联网世界。当时的我当了13年的程序员,其中有9年左右也身为管理层参与经营公司。

我不想再兼顾这两种工作了。此前在85年到87年期间,我的第一家公司不仅开发了一款新的电子报表制作软件,还自己搞定了软件的发行工作。我领导公司,接受媒体采访,维护和投资人的关系,基本的公司事务都是我在做,同时我还是全公司的3个程序员和UI设计师之一。到了87年初终于成功发布产品的时候,我紧张兴奋得最终进了医院。想要同时干好领导和编程,实在是超负荷的工作。

到了1994年,当时我有机会选择职业方向,可以进行技术管理也可以继续当程序员。我选择了当程序员,因为工作更简单。今天我才明白,自己的选择有多么地错误,尽管我在当程序员的20年间也参与了许多很棒的项目。如果当初选择了首席技术官、首席信息官、工程副总裁这样的路线,那将是好得多的决定。

1995年前后,我在旧金山湾区工作了一年,其中后半年是在苹果公司。苹果公司当时看起来快要倒闭了,我不想看着自己最爱的公司分崩离析,于是就离职回了德州。那时的我太年轻太天真,乃至大错特错。苹果公司在一年后乔布斯回归之后东山再起,互联网风暴也在那时开始席卷全球。

作为一个经验丰富的程序员和领导者,我完全明白开发一款产品是怎样的一个过程。我们曾经做过九次应用的重大发布(major release),所有软件的核心都是我写的,都不需要后续加修正程序——反正当时补丁也很难写。我摩拳擦掌,心想那些公司是多么需要我这样的人才。一旦有机会坐到高位,我就可以平步青云了。我的姐姐也在30年前开始了她的程序员生涯,但她在工作的第一年就跳到了管理职位,此后在一个大公司当副总裁,一干就是15年。我几年前在一家旅行社工作,其母公司的CEO就是15年前干程序员起家的。当然这类管理工作可能很困难也没啥意思,但他们的报酬要好得多。我姐姐的资产大概是我的10倍。

这些年来,我认识到程序员的力量太过微小。无论你写程序有多厉害,你都很难有权力真正改变一些失败的产品、失败的项目。我当时就是没看明白,作为一个程序员(乃至建筑师这样的岗位)的晋升空间有多么小。在这样一个干苦力的岗位上,你改变事情的力量注定是微乎其微的。再算上管理层在财务上的福利、更有可能深入参与公司IPO以及其它种种可能得到的机会,选择当程序员,就意味着你必须满足于开发好产品,其他就别想太多了。

这些年来,我工作过或作为顾问咨询过的那些最差劲的企业,基本上都是因为他们的技术管理层的不称职,甚至是彻头彻尾的技术白痴。这类公司简直多到写不完。举个例子,一家银行的工程副总裁曾声称,作为一个管理者的他不需要懂得那些技术细节,因为他管理的是人,而且仍然认为自己可以做技术方面的决策。同一家银行的首席信息官从来不相信他手下跟他说的话,反而把卖方的话全盘兼收。我们当然都知道他从中获得了提成,虽然我们买的都是根本用不到的东西,他却总是写文章称赞那些产品对我们来说有多大用处。我离开那家公司一段时间后,他也被开除了,但转头就又找到了另一家公司里类似的职位。

我做过最差劲的一份工作,恰恰是我本以为会是最好的一份。当时一个已创业一段时间的企业在他们的领域里取得了一定的地位,他们和定位不同的竞争对手都想占领更大的市场,于是竞争开始白热化。我被雇佣为第二程序员。原来的一个程序员和经理的职责是开发一个新的在线商店, 因为原来的商店网站太不灵活,而且访问量一上去速度就变慢。整个公司没有其他技术方面的领导,CEO和另两个创始人在技术方面没有任何经验和知识。另一个程序员一直在吹捧自己的后台代码写得多好,管理层也支持他。

我开发了一个前端,架设测试,每天签入代码。当我觉得是时候把我的代码整合到系统中时,我发现另一个程序员在10个月里啥也没干。我把这件事告诉经理,他却对我说,“他在做到完美之前从不会签入代码。”。然而,其他人都不觉得这种做法很愚蠢。在接下来的两个月里,我一直努力让三个创始人聘请真正能做事的程序员(我认识几个合适的人),但他们很害怕做出改变,也不肯承认聘请那两个人从一开始就是错误的选择。最终我选择放弃,离开了那家公司。

一年后,那家公司在仍然没有从那两个员工那里看到一点进展,于是终于决定开除他们。他们尝试去找一个咨询公司,但仍然一无所获,当时已经为时已晚。他们的竞争对手已经成了估值十亿美元的上市公司,我还在电视上看到过他们的广告。而每次在电视上看到他们的广告,我都想拿一只鞋子砸过去。那时候的我们万事俱备,就差一个在线商店,和一个真正的技术领导人。如果当时的我身处管理层而不是一名小小的程序员,我肯定会让整个公司走上另一条路。但我只是一个程序员。

这样的事还有很多,但在技术上,你并不能改变人们做事情的方式,除非你有那个能力、权力和机会。有了这些条件,并且找到正确的位置来发展,你才有可能摘星揽月。

1987年年初,我在电视节目中展示自己开发的Trapeze软件,上节目的另一个展示人是Mike Slade,他是Excel 的产品经理。当时的我还太年轻,以为他也不过是一个无名小卒。然而他后来创立了一大批包括ESPN在内的公司,曾在苹果公司担任许多领导角色,成了乔布斯的好朋友,并创立了自己的风投公司。但是,今日的我还是一个程序员,籍籍无名的技术工。我甚至觉得,我永远都不会有真正退休的一天。还好我技术不差,现在的这份工作就是以前的一个经理招我进来的,因为他了解我的能力。但在我老到做不动之前,我仍然只是一个小小的程序员。

干了35年的程序员,保证按时完成任务,我也依然觉得推出新产品是很有趣的工作,这些年我也有机会开发了许多不错的产品。但是,我仍然能够感受到对当初贪图安逸、没有走上管理层的懊恼。在某种程度上,当程序员是一份简单的工作。然而,一想到我曾经距离互联网风暴的中心那么近,离乔布斯回归那么近,我也有一定的领导经验,我就无法不懊恼,我完全可能是另一幅模样。所以,我真的很后悔没有直面挑战。当然,如果走的是另一套路,我就会失去写代码的乐趣,也无法感受写不出来的绝望感。但是在人生的分岔路,我选择了行人稀少的那一条,它改变了我的一生。现在我大概明白了。

故事完


故事讲完了,作为程序员的你是不是摩拳擦掌,立志成为一个技术管理者了呢?先别急,其实不是所有人都适合成为技术管理者。技术和管理是两个完全不一样的领域。技术做得好,不见得管理就能做好。对于很多程序员来说,与机器沟通要比与人沟通简单得多,所以能不能成为优秀的技术管理还要看个人的性格。管理者表面上很风光。其实你要明白:权力有多大,责任(和压力)也就有多大。管理者每天要面对杂七杂八的很多问题,很难做到专注,一门心思只做自己喜欢的事情。如果你追求的是简单的快乐,做程序员更能让你得到满足。思维方式需要很大的转变。作为管理者,你的职责是帮助团队成功,你的成功也需要依靠团队。没有团队很失败而个人很成功的管理者。

除此之外,懂技术的管理者是很有优势的,但从技术向管理的转变过程中“坑”也很多。技术注重的是细节,而管理需要的是大局观。这一点对于很多人来说特别难把握。对于技术管理者而言,也不要轻易放弃写代码。因为从技术转向管理的过程中,是有一段危险期的。不要荒废了技术,管理能力又不够强,这时候如果公司出点变故,你将很难再找到一份理想的工作。找一份好工作,实力是一方面,运气也很关键。

原文地址:https://www.cnblogs.com/jzy996492849/p/6890068.html