我,程序员,32岁,距离退休,只剩3年了!
共 5485字,需浏览 11分钟
·
2020-04-01 23:32
本文经授权转载自微信公众号:IT人的职场进阶,文中的“我”并非Hollis本人,观点谨代表原作者个人,与君共勉!
昨天听罗胖的跨年演讲,主题是:基本盘。意思是不要受到人云亦云的情绪影响,而是转过头,看手中的资源,基于基本盘看清自己的努力方向,非常感慨和受启发。中国互联网经过过去十多年野蛮式的发展似乎这2年开始慢下来了,程序员35岁的退休年龄虽然只是贩卖焦虑的一种说法,但是整个行业对人的要求越来越高是不争的事实,要求我们的成长速度必须跟上。2020年开始,希望自己在技术、管理、业务3个维度再做更深层次的学习,体系化个人的认知,做一个有特点的IT人。
下面要写的主题是关于『工程师如何从技术转型做管理』,这是我在团队管理上第一篇系统性的总结。之所以选择这个主题,一方面,个人觉得转型做管理是当前环境下大部分程序员会选择的职业路径,另一方面,自己亲身经历了比较漫长的转型过程,应该能写出点心得体会。希望下面的内容对于『正在转型挣扎期』或者『后续有规划往管理转型』的同学,让你们有所启发,内容大概分成以下4个部分:
- 什么样的工程师会被提拔做管理?
- 你选择做管理的初衷是什么?
- 转型期你会遇到哪些困惑或者挑战?
- 转型期应该具备哪些心智?
1 什么样的工程师会被提拔做管理?一般来说,满足这3个条件的工程师会被提拔做管理:技术能力强、业务熟练、软性素质达标。(当然还要看公司是否有管理岗位的空缺以及你个人的意愿),下面分别展开说下重点。
技术方面:常用技术的深度和宽度缺一不可,架构能力非常关键。否则技术方向都把握不好,技术决策也容易出问题。如果技术能力没达到一定水平,不建议太早转管理(个人感觉能力至少要接近阿里的P7,腾讯的T3-1,百度的T6)。
业务方面:不了解业务,技术没法落地,不仅要求熟悉业务而且应该具备比较强的业务意识,(如果能从技术维度提出好想法,帮助业务拿到更好的结果,这种leader是非常受欢迎的)。
软性素质达标:软性素质这个词有些泛,我个人觉得最核心的两点,沟通协调能力和做事靠不靠谱。软性都是可以锻炼的,但是一定要有意识去提升。著名管理学家陈春花老师说,“一个人被组织提拔,其实不是因为能力,而是因为信任”,聪明的人很多,但是靠谱的人很少,比能力更重要的是工作的投入感和靠谱的态度。如果你觉得上述3个方面都达到要求了,我觉得只是差一个机会,否则好好提升自己吧。
2 你选择做管理的初衷是什么?之前有人问过我一个问题,“你觉得我适合做管理吗?能给我些建议吗?”,我当时没有正面回答他,而是反过来问他,“你能先告诉我,做管理对你意味着什么?它能给你带来什么呢?”。当然我不是在质疑他,而是想让他反思他做管理的初衷。我觉得『最原始的动机』会决定你在管理路上能扛多大的压力以及能走多远。关于初衷,我见过最普遍的说法有这么几种:
- 技术不能做一辈子,很多前辈在能力达到一定水平后都转管理了,自己也这么想
- 在技术路线上遇到了晋升瓶颈,想尝试下管理方向,看自己是否合适
- 公司发展太快了,老板让我带团队,自己也没办法
- 管理者工资高,在别人眼中是优秀的代表
- 指挥做事即可,可以脱离执行层面,越往上走越轻松
再来看另外一个问题,作为技术管理者,对于公司、团队以及你个人,你觉得它的价值分别是什么?我个人的解读是这样的:
- 对于公司:能带领技术团队支撑好业务,帮助业务实现公司定的战略目标。
- 对于团队:规划好方向,别让组员瞎忙,同时能帮助他们成长。
- 对于个人:提升自身的技术和管理能力。
3 转型期你会遇到哪些困惑或者挑战?转型期会经历心态、工作方式的转变,很多事情会刷新你的认知。下面几点,我认为是绝大部分人在转型过程中会遇到的困惑或者挑战:
- 时间不够用:成为团队leader后有很多日常事务要处理,要参加各种会议,有时候还需要分出一部分精力在一线coding上,时间完全被碎片化,根本不够用。
- 嫌组员效率低:一个你认为简单的需求或者技术问题,交给团队成员后,他们的处理时间远超出你的预期,当外界施压时,你忍不住抱怨和责怪,并开始自己动手处理,久而久之,习惯自己冲在一线,觉得这样效率最高。
- 恨人际关系复杂:对内对外、对上对下,每天需要和不同职位、不同level的人打交道,有靠谱的,有不靠谱的,某些你认为很简单的事情推动起来却很难,感觉情商不够用。
- 成就感不强:偶尔会收到上级、平级、甚至下级的负面反馈,你开始质疑自己的管理能力,不像做工程师那样经常被认可,落差感强。
- 不敢放弃一线:担心自己不合适做管理,如果脱离一线执行,感觉技术能力会停滞不前。不放弃一线,精力又跟不上,这个度把握不好。
4 转型期应该具备哪些心智?从技术转型做管理,更多的不是能力的变化,而是思维方式和行为的改变。很多刚转型的leader管理做不好,绝大部分不是因为能力不行,而是出现在了认知上。以下几点,我认为是转型期leader一定要具备的心智:
- 学会从团队的角度考虑问题
- 注重执行细节
- 学会用人所长,具备包容心
- 重视情商,做好自我情绪控制
- 做好时间管理
团队能力不提高,leader永远不会解放,这是作为leader应该具备的意识。如果通过这个问题能够提升组员某方面的能力,leader应该扮演好教练的角色,放手让组员自己去做,你要做的仅仅是观察、给一些指点、适当给予时间上的支持。这次处理也许效率不高,但是下次碰到类似的问题,团队是不需要依靠你来解决的,另外组员也有自己的发挥空间,觉得团队在帮助他成长。
注重执行细节对于刚转型做管理的一线leader,切忌被放权式的管理方式洗脑。放权式管理对于对管理者的经验要求很高,它比较适用于工作流程清晰,团队骨干目标认知以及自驱力很强的团队。
当你个人的管理水平还处于菜鸟期时,一定要从细节抓起,通过手把手带员工,教会他们如何正确的做事,怎么才能达到你的要求,以及如何培养出团队骨干,搭建出团队的核心组织架构,所有这些都经历过了,你在管理上才会有自己的心得体会,才会走得更扎实。
通过观察执行细节,你能非常清楚团队每个人的优劣势,深入感受自己的管理方式是否存在问题,然后再辅以leader思维去思考和解决问题,管理上才能真正获得成长。这个过程,你可能会收到上级、平级、下级的很多反馈,清楚细节后其实你就有了自己的判断,知道是否是自身的问题,是否要调整,而不是沮丧抓瞎。
学会用人所长,具备包容心知人善任、人尽其才,是每个管理者都懂的道理,但是能做到的不多。尤其在技术管理岗上,我见过有些leader在技术上非常强势,技术权威不容有任何挑战,当组员提出更合理的技术方案时,他会用职级强制要求按自己说的执行,根本不做任何解释。
对于新晋leader,团队对你的信任感还在磨合期,上述做法很容易打击组员的积极性,消灭他们的创造力,这对你带团队来说是非常致命的。如果组员的方案更合理,leader应该倍感欣慰,包容并鼓励这种行为,因为组员某方面的专业能力超过你了,你不再是团队各方面最强的人,你需要做的是调整自己的心智,学会用人所长。另外,还有一种情况是:组员和leader的技术方案都可行,我个人倾向将选择权交给组员,毕竟他们是真正的执行者,应该给他们自由发挥的空间,最后就算出问题对他们来说也是很好的经验积累。
重视情商,做好自我情绪控制
管理上能做多大事情,真的和情商有非常大的关系。IT界的技术人员由于工作性质的原因,普遍注重技术上的提升,而忽略情商的培养和维护,作为新晋leader必须从一开始就意识到情商的重要性。管理是一个复合型的岗位,当你的专业技能和处理问题的方法论已经形成后,越往上发展,为人处事的软技能占比会越来越重。
每天和不同的人打交道,这个是管理者的日常工作,因为你需要调动所有可能的资源去解决团队的困难。面对不同职位、不同level、不同性格的人,你要反复琢磨采取何种沟通方式和沟通技巧。上一节提到一种情况:一件你认为很简单的事情,推动起来却很困难。可能是因为你对外的沟通方式太生硬,别人不想配合你,或者别人确实有其他更重要的事情,但是如果私下关系建立好,你再当面软磨硬泡,多半也是可以解决的。人际关系上,难免会有碰壁的时候,不要气馁,这跟技术同学写出1个bug一样,是家常便饭的事情,但是一定要注意积累经验。线下和关键的配合方维护好私人关系,多吃饭喝酒,别人有困难能及时伸出援手等等,套路有很多。
情绪控制,是一个比较难的事情。情绪很容易传递,如果leader碰到不爽的事情,把组员当做出气筒,这是非常伤士气的,之前建立的信任感很容易消失,受不了的组员也可能就离职了。另外,对外沟通上,如果leader控制不好情绪,不将重点放在解决问题上,只是抱怨或者发火,也非常容易引起配合方的不满,认为你不专业,久而久之,你的团队也会被打上这种标签。
个人在情商方面目前做得也很差,踩过很多坑。提供3点建议:
- 保持积极乐观的心态,同时提高自己面对问题时的承受能力,想清楚情绪化是解决不了问题的,只会加大解决问题的难度。
- 能够自我反省并吸收别人的反馈,做得不好的地方要勇于正视并且持续改进。
- 培养亲和力,不要觉得自己是leader就带着架子,要有一种鞠着的姿态,能够尊重人并且真诚待人。
做好时间管理
时间管理的4象限理论可以百度一下。重点说下我个人遇到时间管理问题是怎么解决的,以及技术和管理两个维度如何分配时间。
第1步,可以拿过去一周或者一个月的时间跨度为例,详细列一下你的时间花在哪些具体事情上了,以及每类事情大概的时间占比。对于技术leader可能的事情包括:需求评审,资源规划和项目排期,技术评审,团队周例会,研发规范制定和落地,项目管理,技术调研,架构设计,coding,紧急任务协调和处理,业务以及新技术充电等等。
第2步,针对第一步列举的每类事情,考虑下哪些是非必须的,哪些是可以授权给团队骨干去做的,哪些是可以优化提高效率的。比如一些简单的需求评审或者技术方案评审让骨干把关即可,项目管理制定好流程规范同时培养一些scrum master或者项目经理下放给他们来做。不用凡事都事必躬亲,leader应该把时间聚焦在对团队最关键的事情上,学会授权和放权。
大部分时间leader是不需要亲自写代码的,但是如果有需要,leader要能够随时顶上,所以不能长期远离一线,纸上谈兵。长此以往,技术判断可能容易出现失误,而且如果管理不合适再转型回去代价太高。
- 技术维度:可以将重点放在架构设计、代码审查、技术调研、以及一些框架性的代码开发上,这些事情对于维持技术优势是足够的。
- 如果管理维度的时间占比超过60%,个人觉得比例是有些失衡的,要么团队太大了(比如超过了10人),要么自身的管理存在问题或者时间管理存在问题,需要关注并考虑做出调整。
在 GitHub 更新中,欢迎关注,欢迎star。
直面Java第305期:TLAB带来的问题?
深入并发第013期:拓展synchronized——锁优化
- MORE | 更多精彩文章 -
- Java 14 发布了,再也不怕NullPointerException 了!?
- 阿里巴巴招聘,社招校招都有
- 因为我说:volatile 是轻量级的 synchronized,面试官让我回去等通知!
- 互联网公司没有中年人
如果你喜欢本文,
请长按二维码,关注 Hollis.
转发至朋友圈,是对我最大的支持。
好文章,我在看❤️