决定成为一名专职管理者,还是持续走技术路线非常难以抉择。这个问题因人而异,我不可能告诉每个人如何做出这个决策。然而,作为一个曾经经历过这种抉择,也同时承担过这两种角色的人,我可以描述一下我对这两个角色的设想与现实情况。不过别忘了,这也只是我的片面之词,不一定完全适用于你。
01
理想中资深成员的日常作为团队的资深成员,你可以和其他资深成员合作,有充足的时间深入思考,攻克那些有挑战性、新颖的,又非常有趣的技术难题。软件开发过程中难免存在一些杂活和低级劳动,但是你可以将大部分时间都专注在那些技术性难题上。你有充足的时间做自己最喜欢的事情,写代码、修订问题,以及尝试新的技术。在项目初期,管理层需要依赖你的丰富资历来制订项目计划,所以你可以掌控全局,同时又无须面对那些细节性的小问题。重要的会议缺你不可,你又不用参加那些没有意义的会议来浪费自己的时间。团队内的新人唯你的意见是从,又不敢占用你的太多时间,打乱你的工作计划。
技术永无止境,而你面对的问题也越来越庞大,你所带来的影响力与日俱增。你工作勤奋,又无须加班。因为谁都知道,真正的深思熟虑是不能靠加班得来的。如果你真的需要加班,那也是因为灵感爆发,实在太想把手头的工作做完。
工作之余,你还可以写书、演讲、发布开源项目,甚至在业界获得一定的知名度。没有人关心你的人际交往能力,也不会强求你提升自己的沟通能力,因为你总能一语中的。团队中的每个人都了解你,知道你的价值,同时非常尊重你的意见。
总的来说,你在工作与理论中找到了最佳平衡点,多年的累积使你成为组织内不可或缺的人才,影响力深远,报酬丰厚。
02
资深成员的真实日常当你在对的时机加入对的项目时,生活还是不错的。你能在压力中学到一些新东西。你对自己的工作计划有一定掌控能力,同时你在大部分工作时间内都可以旁若无人地专心处理问题。在每一个项目中,要么你是在向团队成员“推销”自己的设计和理念 ;要么你就是已经完成了系统的实现,需要说服其他团队使用。你需要和这些团队整天泡在一起,向他们解释系统的每一个细节,以及为什么这样做是最好的。这样你才能说服他们去和上级领导沟通,在研发日程表中留出一定的时间,让你完成构想。资深成员的职业上升并没有想象中那么快,曲线也没有那么陡峭。事实上,大部分情况下都进展缓慢。那些可以展示你架构能力的大项目很难找。大部分团队并不需要一个新的编程语言,也无须采用新的数据库或一个新的 Web 框架等。你的上级领导也不能总是按照你的能力在团队中给你分配重点项目 ;事实上,他其实更需要你自己去主动寻找这样的项目。找项目的过程更像碰运气。如果项目选择得不好,那么不管你如何努力,你的几个月,甚至几年的全身心投入都会随着项目的取消而烟消云散。这时,你难免会眼红那些已经走上了管理路线的朋友们,他们的团队不断扩大,自己的晋升也飞快。
你的合作伙伴也有好有坏。总的来讲,你还是一个善于待人的人,所以一些团队成员对你十分尊敬,但是其他人可能对你的地位有些眼红。团队的新人要么占用你过多的时间,要么对你敬而远之。在团队中,大家总要争抢由谁来主持那些重要的、有影响力的项目。
你的上级领导对待你的态度也飘忽不定。每次你提出要开源一个内部系统、一个新的日志框架的时候,他总是不太情愿。而你想花时间办讲座或写书的时候,他会委婉地建议你尽量别占用工作时间进行。有时候他会主动咨询你的意见,而有的时候他又好像忽视了你的存在。你总是怀疑有些重要的会议没有叫上你,有些信息你没拿到。不过,每次上级领导叫你开会的时候,你却发现这些会议那么无聊和低效,还不如花时间专注于自己的事情更有价值。另外,他总是催你做那些烦琐的事情,比如回复邮件、面试候选人,以及及时回复别人的代码评审需求。
不管怎样,大部分时间你还是可以自主控制的。大部分时间内你可以关注于技术问题、系统设计、软件工程难题,而无须处理人事问题,也不用参加无聊的会议。你的项目灵活度比较高,甚至可以自由地在团队之间迁移。并且,你刚发现,你比顶头上司的薪资还高!生活还算不错啦。
03
理想中的管理者日常作为一个团队的管理者(团队经理),你有很强的控制权,可以自主决策,同时你终于可以让别人按照你的想法行事了!你的团队对你非常尊敬,在一切事务上都尊重你的决策权。你认为团队应该增加更多的测试?直接告诉他们 :写更多的测试,然后他们就真的那么做了!你想确保每个团队成员都获得应得的尊重,不分性别、年龄、种族等,那么你就可以直接开除在团队中不尊重别人的人!由于你真诚对待每一个团队成员,因此,即使他们与你意见相左,他们也能认可你是为了他们好。他们认可你的善意,在你做错的时候,会给你提出直率的意见,同时也会完全接受你给他们提的意见和建议。与人相处很难,但是他们都认可你的真诚,所以也会真诚以报。你可以眼看着自己的员工在自己的耐心辅导下快速成长。
当你看到另外一个同级经理做错了什么的时候,你可以像和另外一个工程师讨论系统设计一样去直接向他提出意见。你的同事非常乐于接受你的反馈,他们能看到你带领团队的高效之处及你对整个组织健康的深切关心,接受你的帮助可以让整个团队变得更好!
你的上级领导给予你充分的辅导,又充分授权,让你放手去做。在你觉得自己可以带领更大团队的时候,你的上级领导就会给你增加新的人手,扩充你的团队。他会给你制定一个明确目标,并且不会经常改动。虽然你肩负重任,但你还是能找到一些时间写一些 Blog 文章,以及做一些演讲,甚至你的上级领导会鼓励你多花时间在这上面,因为这样可以帮助你招聘到更多的人,以及提升你自己的知名度。
总的来说,你有充分的决策权,可以左右团队文化。自己工作的高效之处显而易见,职业生涯平步青云,让人羡慕。
04
管理者的真实日常作为团队经理,你确实带领着一个团队。虽然你有一定的决策权,但是你很快就发现,想要人们按照你的想法行事可没那么简单。你的一天日程完全不在自我掌控中,大部分时间你都要开一整天的会。虽然你对此有所准备,但是直到真实发生,你才意识到这意味着什么。当团队规模较小的时候,你还有一定的时间写代码 ;但是随着团队规模的扩大,你完全没有时间再看代码了。你知道自己还想做点技术工作,但是真没有时间!每次你抽出几个小时写一段代码,就马上意识到把这段质量不高的代码丢给团队去支持是非常不负责任的行为。所以,充其量,你也就是能写一个脚本,处理一个小问题,等等。你不可能有时间去处理大型的系统问题了。你有一定的决策权—虽然不多。真实的情况是,你能做的是引导团队将可选项变少。你可以在短期内让团队专注于某个小目标—例如,写更多测试用例 ;但是团队仍然需要承担产品需求的开发任务,同时每个团队成员对哪些事情更重要都有自己的理解。所以,与其说你亲自做出决策,不如说你在帮助团队达成共识。你的上级领导有时候会在中途彻底改变你的任务,而你必须亲自去和团队成员解释为什么要这样做。
你确实在一定程度上可以以身作则,成就自己团队的文化标准,但是这有好也有坏。好的一面是,团队成员采纳你好的那一面 ;而坏的一面则是,你的团队也同样具有你身上差的那一面。
你的团队不会自觉地尊重你、接受你的意见,甚至理解你。你逐渐意识到,你所谓的权威不过只是一个名头而已。项目进展不顺利的时候,你需要使出浑身解数来激励团队前行。想想那些你需要告诉下属他们这次不会升职、不会加薪,又或者今年没有奖金的时候吧。甚至,有些团队成员根本不会和你明说他们的不满情绪,只会突然提出离职,而你压根不知道他们为什么这么做。当公司业务良好、人员薪资充足、各种项目纷纷上马的时候,一切都好极了。而在公司情况不佳时,你才会意识到自己根本就没有什么能力让大家高兴。更糟的是,你想开除任何一个人,都需要经历噩梦一般的人力资源流程!但是,你还是能够察觉到自己的用心辅导对一些成员产生了正面的影响,他们更开心、职业更成功了!只有这些小成功才能帮助你走过那些低谷时期。
其他经理压根不关心你的意见和建议。事实上,如果你开始侵蚀他们的领地,他们会非常警惕,并且充满戒心。你自己的上级领导不同意让你带领更大的团队,也不向你解释为什么。他对你的辅导,可有可无。也许他正担心你会盖过他的光芒!他肯定不想你花时间去做什么演讲—你如果经常不在公司,他就会觉得很烦—不论你做的事情是否对团队有益。如何平衡与自己的上级以及与自己的平级的关系比你想得难多了。但是有一点很明确,如果你的团队规模扩大,你就知道自己肯定会升职。当你发现自己麾下的一个资深员工比你薪资还多的时候,你差点崩溃了。怎么才能扩大自己的团队规模呢?否则你这么辛苦,都是为了什么呢?
我的最后建议是 :记住,你是有选择的。在职业生涯发展过程中的某个阶段,选择走上管理路线,又发现自己不喜欢,再换回技术路线是很正常的。这不是什么不能改变的决定,但是也要慎重考虑。每种职业路线都有自己的优缺点,全靠你自己用心选择。
欢迎阅读《技术为径:带领公司走向卓越的工程师》一书了解更多相关内容。
这本《技术为径》的内容融合了“技术”与“管理”。从普通软件工程师,成长为技术导师,再到技术小组长,之后继续晋升并管理一个团队,再到多团队管理,最终升至 CTO,作者这一路的经验及感悟一定可以让你产生了很强的共鸣,并对自己未来的技术管理职业生涯有了更多期待。书中涵盖了少见的针对 IT 团队技术管理的经验之谈,在此,强烈地将它推荐给同行们。