有一个朋友前几年通过猎头进入一家公司做研发负责人,他之前在一个软件外包企业做开发团队负责人。刚进公司时,公司对其非常重视,也是统领三军,但是过了一年,虽然职位没变,但是只负责一个团队的研发了,而且奇怪的是他只做和项目管理、外部沟通相关的事情,团队内还有一个技术负责人,所有技术人员的上级是这位技术负责人,这位技术负责人的上级是他。此时你会想到什么?如果那位技术负责人不是项目管理或者沟通能力太差的话,这位朋友基本上在这家公司没有位置了。最终,这位朋友被动辞职了,着实可惜。
其实朋友是一个非常称职的项目管理人才,经他手的项目不论是对内外的沟通,还是项目的过程的控制都还是非常到位,但是他很多年不写代码,不做技术,平时也忽视了对于技术的关注,同时也缺乏产品思维,这估计和他之前一直在外包公司工作的经历有关。所以在一个产品型的团队里,他的长板无用武之地,而他的短板却被放大了,做不了产品,又无法掌控技术决策,也无法统一公司内不同的技术体系,提升团队的技术及架构能力,导致老板不满意,下属不服气,虽然在技术管理的岗位上,但却无法胜任。
通过这个案例,我们真正成为一名管理者后,自己扪心自问,我是一个技术管理者还是只是一名项目管理者呢?二者的差异在哪呢?
了解二者的概念
无论是春秋战国时候的丞相,还是三国时候的谋士们,技能大概分成两种:谋略和理事。谋略重在想办法,理事重在做事情。现代的技术管理者需要的核心技能仍然是这两样,只不过体现形式有些变化。
谋略:技术架构搭建、新技术演进选型等,解决该做什么和怎么做的问题。
理事:任务和人员协调、分配等,解决谁来做、哪件事先做的问题。
首先我们先了解一下项目管理和技术管理的定义:
项目管理
指在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件下,实现或超过设定的需求和期望的过程。项目管理是对一些成功地达成一系列目标相关的活动(譬如任务)的整体监测和管控。这包括策划、进度计划和维护组成项目的活动的进展。
--百度百科
技术管理
用于计划、开发和实现技术能力,完成组织战略和运营目标。技术管理通常是指在技术行业当中所作的管理工作,管理者一般具有较高的技术水平,同时带领着自己所管理的团队完成某项技术任务。技术管理的实际操作当中,强调的是管理者对所领导的团队的技术分配,技术指向和技术监察。管理者用自己所掌握的技术知识和能力来提高整个团队的效率,继而完成技术任务。技术管理是技术和管理的融合,是较高知识容量的高深行业。
--百度百科
从项目管理和技术管理的定义来看,项目管理更侧重单一的理事,而技术管理则重在谋略,并兼顾理事。所以一个优秀的技术管理者虽然不一定是一名优秀的项目管理者,但也是一个不错的项目管理者,但一名优秀的项目管理者并不见得能成为优秀的技术管理者。
谈谈项目管理
要想成长为一名优秀的技术管理者,项目管理是我们必经的阶段,因为要成为团队的领导都是在一件件具体的事情中不断磨练而崭露头角的,事事皆项目,项目管理将是我们成为一名管理者的起点。
项目管理关注的事情如何更好的完成,所以项目管理是以项目交付为工作核心。对一个项目来说当然最理想的情况就是“多、快、好、省”。“多”指工作范围大,“快”指时间短、“好”指质量高,“省”指成本低。这就是项目管理的四要素。
但是众所周知,项目管理中著名的铁三角理论,提高一个指标的同时会降低另一个指标,他们之间是一种此消彼长的关系,所以实际上这种理想的情况很难达到。
想想那些豆腐渣工程是怎么产生的吧。进度一赶再赶,成本一压再压,需求一加再加,这时候不牺牲质量又该如何完成?如果客户或者老板再要求要保证质量,你可以直接把这个图丢丫脸上!~~且慢别冲动,一个合格的项目管理人员不就是要把这几项关键要素管理好吗?
下图是我们产品研发项目的主要流程:
另外,外部客户的项目和内部研发自身的项目其实差别还是很大的,相比于研发内部项目,外部项目对于项目管理的要求更高,比如沟通能力更强,控制需求的能力更强,危急事件公关能力更强,这也是一个专业的项目管理人员在团队中不可或缺的原因。
如何成长为技术管理者
在技术管理的定义中明确知道技术管理是技术和管理的融合,如果说技术不好却不妨碍成为一名优秀的项目管理者的话,那技术不好就一定很难成为一名优秀的技术管理者。(当然这里的技术是指广义的技术,比如技术能力,技术决策,技术领导力等,而不仅仅是运用某些技术解决问题的能力。)
在一个项目型的公司里,项目管理者的角色非常的重要,薪资待遇,发展通道都要胜过技术管理者,但在以研发或者技术主导的企业里,技术管理者才是拥有绝对话语权的人,引领团队技术的发展方向。我在前面的章节中提到程序员的职业发展规划,而技术管理者也是很多程序员趋之若鹜的发展方向。
如何成为一名优秀的技术管理者呢?首先我们要了解技术管理者的主要工作或者职责:
- 项目过程中的人力及技术支持
项目是临时的,短周期的,项目交付后项目的生命周期就结束了,所以在很多公司的团队管理不是以项目为核心的。项目上的资源来源于技术部门的支持。技术管理者要以公司利益为出发点,合理的分配自己的人力资源到具体项目上,并在这个过程中充分提供技术支持。
- 开发质量的把控
一些大型的项目上,一般会有架构师之类的角色来把控技术开发的质量,架构师是技术管理者的一种,完全从技术角度去引导技术的走向,控制技术开发的质量。项目经理往往更侧重于进度的把控和内外部的沟通协调。
- 技术平台的建设和应用
如果说项目管理者工作成果是项目正常交付,那么技术管理者的工作成果则是团队技术的积累,技术资产化,所以一般打造优秀的技术平台则是技术管理者最直接有效的产出。
- 技术人才的培养
技术管理者要承担起新技术的分享应用、技术人才的能力的培养,团队的能力建设是技术管理者区分项目管理者最大的区别,因为项目管理者为事负责,而技术管理者更多要为人负责。
- 技术体系和规范建设
作为中高阶的技术管理者,为了更好的指导技术开发工作正确的,高效的,稳定的执行,需要建设一套完整的技术体系和技术规范,通过将自己的经验和学识转化为制度和规范,从而更长远的指导技术团队的工作。
- 技术战略的制定和督导
作为团队最高的技术管理者,比如CTO或者技术总监等,如何确立团队的技术路线,如何技术创新,如何顺应技术发展的趋势,如何通过技术战略保持团队的核心竞争力,引领团队技术走向未来,创造更大的效益,是不得不思考并付诸行动的重大事情。
了解了技术管理者的工作内容以后,你自己就可以决定你要不要成为一名技术管理者,如果要,应该如何去锻炼呢?
- 要转型技术管理,需要清楚自己的特点和特长,技术管理者要在技术和管理能力上都要保持出色才行;
- 要在平时的工作中,多去解决技术问题,帮助其他同事解决技术方面的问题,并能够形成团队内的知识库;
- 培养自己的核心能力,加强对技术的整体把握能力,提升对业务的理解和把握能力;
- 技术管理者要一专多能,平时要加强广泛技术的学习,理解他们的技术原理及应用场景;
- 把握每次负责项目的机会,提升自己项目管理的经验,在一次次的胜仗中获得领导认可。