一直从事互联网行业,前几年主要做的还是技术相关的工作,最近的几年,慢慢的转到管理岗位。
从技术转到管理,对个人的认知挑战还是比较大的。
技术转管理一般有两种情况,第一种情况,这个人的技术能力在团队里面比较强,很多的技术问题到他手里就解决了。慢慢的,他就成为了团队的核心,然后有一天老板大手一挥,现在技术团队还缺一个管理者,你技术能力最强,你来吧。
还有一种情况是这个人技术能力中等,但是人缘很好,很多需要合作的工作到他手里就能比较顺畅的推进下去,可以很好的协调好,工作完成的也比较好。老板知道后,同样大手一挥,现在技术团队还缺一个管理者,你协调能力最强,你来吧。
这两种情况中,第一种情况给管理者带来的挑战会比较大。
一个人技术能力强,是他的优势。对于技术管理者来说,程序设计能力、编码实现能力、技术攻坚能力当然是需要具备的硬技能,没有这一项,技术团队的人员怎么会服你。
但是成为了技术管理者后,你的重点已经从「怎么做」转变为「为什么要做」和「做什么」。如果你还是聚焦在「怎么做」,那么很可能会一直充当的是救火队员的角色。
技术能力强的人,对代码实现是否优雅、代码格式是否规范、逻辑设计是否合理会比较看重,会特别关注底层的实现逻辑。之前一个人的时候因为工作都是自己可控的,所以问题不大,但是成为管理者后,思维上第一个转变就是我现在开始带技术团队了,所以会按照他的标准去要求下面的员工。然而事实是他是当前技术能力最好的一个,所以下面的员工能力往往达不到他的要求。
怎么办?最先想到的是:亲自上。这个功能逻辑我最清楚,交给别人不放心,还是我直接上吧。这个代码格式怎么写成这样,算了,我来写吧。
所以,你会看到这样的技术管理者是公司里最忙的一个人。任何一家公司,需求永远是做不完的,bug 也永远是改不完的,他一直在充当的是救火队员的角色。而人的精力是有限的,慢慢的,就对这个岗位产生了厌倦情绪。
其实如果是因为技术(业务)能力强而成为管理者,往往会有这样一个潜意识:这个事情我熟悉,有点复杂,交给别人我不放心,没有自己处理来的高效、来得快和稳妥。
其实从一线的开发者到管理者,解决问题这一点始终没有变,但是解决问题的方式发生了变化。之前的一个人解决问题,现在是一帮人一起解决问题。所以这里面发生的变化是一个人到一帮人的转变。所以在观念上,也需要从一个人转变为一帮人。
技术管理者是带着一帮人在解决问题,技术管理者的成功当然也是看解决问题的能力,但是这个能力重点已经不是在于管理者自己的 代码能力有多好,能力有多强了,他的能力是简历在团队的基础之上。只有团队不断成长,这个团队才有可能做成更大的事情,而你才可以在团队的基础上,站的更高,看的更远。