团队干好 vs 自己干好
当我们还是一线编码程序员的时候,对自己的要求就是把技术干好,完成上级交代的任务,对自己负责就可以了。
但当我们转为技术管理的时候,我们就不单单要管好自己了,我们要带领着团队往前冲,要更多的关注团队成绩,要对团队整体负责,推动团队的成长。
主动规划 vs 被动执行
当我们还是一线编码程序员的时候,我们的工作大多是听从安排的、被动的执行的。上级安排我做什么就做什么,更多的关注执行过程。
而当我们转为技术管理之后,更多的工作需要自己去规划,需要去关注整体目标,将目标进行分解形成计划,而不是等上级安排活儿。如果你自己都没有规划,那你的团队就会更加没有方向了。
技术工具 vs 技术实现
当我们还是一线编码程序员的时候,我们会全部关注在技术编码的实现上,这些就是我们的工作的大部分以及核心竞争力。
而当我们转为技术管理之后,我们要把技术当做实现任务目标的一个工具,做一名技术的应用者,需要更擅长于技术评估而不是技术细节实现。
更大的协作范围 vs 团队内协作
当我们还是一线编码程序员的时候,我们的协作对象一般是团队内、平级之间,真正的跨团队跨部门的协作比较少。
而当我们转为技术管理之后,需要更多的与跨团队的协作、需要寻求上级、下级、跨不同职能部门的资源合作,对管理者的沟通协作能力有更高的要求。
合作关系 vs 竞争关系
这一点稍微略有点现实。当我们还是一线编码程序员的时候,我们与团队成员的关系除了协作以外,可能会带有一些竞争的味道,同在一个团队内,谁的技术更好、谁的效率更好、谁的完成情况最优。
而当我们转为技术管理之后,团队的所有成员都是来支撑我们的工作的,我们与团队内成员没有任何竞争的关系,全部都是协作共赢。有些刚从程序员岗位晋升管理的同学会遇到这样的情况,「团队中某某成员技术水平非常好,他会不会不服我呢,应该怎么跟他共事呢」,其实如果换个思维想一想就明白了,你跟他已经不再一个层面上工作了,没有任何的竞争关系,也无需从技术水平层面去比较,你需要的是与他协作好,让他辅助你,一起完成团队目标、一起实现共赢。
多维视角 vs 单一思维
技术管理工作不能像敲代码一样非0即1了,管理工作中有很多中间态,不确定的因素,这些往往是对程序员之前单一习惯性思维的一个颠覆。转为技术管理之后,我们考虑问题,就需要从多个维度多个视角去思考。
合作思维 vs 分工思维
当我们还是一线编码程序员的时候,处理问题往往习惯于依靠自身独立去解决。而做为技术管理者,往往遇到的问题可能会比较复杂,靠单人很难突破,就必须处处想到团队的力量,遇到问题,要汇聚团队的智慧、要寻找外部的资源多方的协助,要有合作的心态去处理工作。另外,当我们做编码的时候,经常讲究高内聚低耦合,所以习惯于模块之间职责分割清晰,甚至在与身边同事工作分工的时候也会带有强烈的边界意识。但是作为技术管理者,就更需要以全局的目标为己任,边界问题可能就不会那么明显了。