在和身边的开发人员及开发面试者谈话中,经常会聊聊大家以后的职业规划,多数人会回答做技术管理,而当我问到何为技术管理的时候,绝大多数人都会说分配任务、合理利用资源等等很泛泛的东西。在结合了多年成功和失败的例子、仔细思考后,觉得技术管理也许不是表面上看到的那么书本化。

   从字面上看,技术管理肯定和技术有关,同时还需要加入管理的方法论,他是一个结合的产物,单纯的说管理可能不适用于这个行业,单纯的关注技术可能也无法达到管理的预期。

   技术管理的核心是管理,同时结合软件技术的某些特点而得出的一套方法论。这些只是简单的对技术管理的一个定义,而结合到实际工作中,其实远远不是一句两句话能描述起来的那么简单。

   技术管理是一种艺术,他需要打破常规,实践出真知,不同的现状需要不同的管理方法,不是结合结合书本上的知识就能玩儿的转的。而管理者如果过多的纸上谈兵或者形而上学,那么一般结果是比较悲惨的。

   有些人觉得技术管理管的就是人,有些人觉得技术管理管的就是事儿。多数情况下他们都是经过了阶段性成功后得出的一个结论,成功之后总结发现自己就是这么管的,所以就认为这就是技术管理了,这样下结论可能还有些早。

   对于某个小项目,规模不大,一两个人就能开发完成,那么个人能力就相当重要,多数情况下是一个能力强的人搭配一个能力弱的人,这个时候管理事儿就很重要,项目的技术架构,总体设计,核心技术攻关等很多技术难点都是这个人完成,另外一个人在这个人的指导下顺利完成任务,这种情况下,很容易让这个人产生个结论,只要把控住技术,把控住需求,做项目就没什么难的,客户不提出难为人的需求,基本上都能做好。

   对于某个小团队,平常不用和别人沟通,同时完成几个小项目,遇到的技术难题,能解决的解决,不能解决的就绕过去,最后得到了客户的认可。他就会觉得,只要把控住人,什么事儿都是可以做的,有什么难的呢。

   专门管理人和专门管理事儿就成了这个行业的两个极端。专门管理人发展到一定程度发现人好像根本管不住,总有些人干了几年后会有自己的想法,要么觉得达不到预期开始跳槽,要么觉得找不到方向很失落积极性不高,所谓十年树木百年树人,培养人是及其耗时耗力的,而当我们费尽心思培养了某个人之后,一旦这个人走了,想培养一个配合默契、相当水平且忠诚度高的人是很难的一件事儿,人走了,事情也就没法做下去了;专门管理事儿发展到一定程度就会发现人员及其匮乏,同样的一个事儿在原来的项目中可以做的很好,为什么这个项目做的这么差,技术上没难点啊,需求也都控制了啊,怎么还是做不好呢?这批人真差劲……做东西太慢了……东西做出来质量太差了……

   那么是不是即管理人又管理事儿就能解决问题了呢,是可以解决,但是做到两者兼顾及其困难,一个管理者的精力是有限的,很难做到既费劲心思培养人,同时又很好的管理那么多事儿。

   那么如何去做呢,技术管理的精髓就在于此,把握两者结合的度及其关键,不同的事儿结合的程度又不同,对于某个难度大但是规模小的事情,完全可以交给一两个能力强的人去做,对于某个难度不大但是规模大的事情,可以交给一堆能力弱但是责任心强的人去做。对于难度大规模大的事情,就需要忠诚度高并且能力强的人牵头,带着少数有能力和多个有责任心的人完成。

   那是不是把握住了管理人和管理事儿,就可以做好技术管理了呢。也不一定,我们要做的事情总是有着他自身的条件、限制和要求的。如何在规定时间内完成上层领导安排下来的任务,单单一个管理能力可能还不够,还需要有风险鉴别和控制的能力,批评自我改变自我的能力,抑制内心想法的能力,还需要一点儿阿Q精神。

   做好管理是很不容易的一件事儿,极端主义者是很难做好管理的,管理需要的是和光同尘,需要的是内心强大,需要的是持之以恒。人是最难控制的东西,事情也总会有意外发生,凡事不能过早的下结论,多想想意外情况,多想想Plan B,才能做好管理。