软件项目管理是"以过程为核心、以度量为基础、以人为本"的,在此过程中需要充分地集成技术方法、工具、过程、资源(人力、资金、时间等)等要素,谁来领导这个集成工作呢?是项目经理。项目经理是项目组的灵魂,是项目组中很重要的一个角色,无论是对于个人英雄的时代,还是基于过程的管理时代,都必须依靠人来实现管理,这是"以人为本"。无论管理多么正规,过程是对形式的管理,而内容的管理必须依靠个人的能力。
项目经理,是大多数软件公司中难选的人。为什么呢?有实践经验又有理论知识的项目经理少之又少,而且即使有身价也比较高,所以在软件公里面"勉强的项目经理比比皆是",有一定的开发经验,程序写的很好,有一定资历,虽然没有受过正规训练,也可能没有做过管理人员,但是没有办法,公司缺人,只好选他做项目经理了。当然,也不排除不具备上面的条件做的很好的。99年我主管过1个成功的项目,该项目是为我们的一个老用户开发一块外围的采购模块,挂接在财务系统中。该项目组的成员都是刚参加工作的本科毕业生,他们是第一次用DELPHI开发应用软件,项目经理也是他们其中一个比较有管理思想的员工,在上学时是学生干部,比较有组织能力,我做为项目主管,对项目组进行管理的指导,因为我也从未用DELPHI做过开发,可想而知,该项目的人员风险有多大!项目的需求分析请了一位有经验的老员工来做,并由该员工做出概要设计,详细设计、实现与实施都是由项目组来做,他们竟然在规定的时间里按照需求完工了!在去现场实施之前我都以为不应该这么顺利,结果在他们实施完毕的几个月里面,用户用的很好,只有几个小的地方对界面进行了调整,没有进行软件的正确性维护!真是难以置信。为什么呢?在事后进行总结时,大家得出得结论是:我们是严格按照公司的软件工程规范做的。并非有经验的员工才可以做项目经理!新手一样可以成功!
那么,究竟如何来选择一个项目经理呢?我们先看一下项目经理的来源。
(1)专职的项目经理,比如说在公司里有项目管理部,专门是项目经理的派出机构,项目经理经过专业的培训与认证。
(2)兼职的项目经理,来源于某一个技术部门,如开发部或事业部,同时可以兼任其他岗位。
对于专职的项目经理,如果项目组中的成员有兼职的情况,即同一个项目成员可能同时参与多个项目,这时存在资源竞争的问题,需要项目组之间进行协调,由于组员与项目经理没有行政的隶属关系,因而项目的协调很成问题。对于第二种方式,往往项目经理只会对他熟悉的作业内容、熟悉的人员进行管理,名义上是项目经理,实际是个局部经理。因此在选择设置公司的组织结构时,在选择
项目经理时要充分考虑上述的两种情形。
选一个合格的项目经理 ,下面的要求是必须的:
公正无私
99年我主管过一个项目,该项目的项目经理在分配奖金时论资派辈,不按业绩,使得项目组中资历浅但是干活多的员工怨言很大,导致整个项目的积极性很差,后不得不由我出面制定新的业绩评估办法。如果一个项目经理不能做到公正无私,他难以服众,无法带好项目团队。
有良好的职业道德
2002年在我经手主管的一个项目中,由于项目经理蓄意隐瞒了项目的真实进展情况,对用户的承诺没有兑现,而导致用户不信任他,向公司提出了撤换项目经理的要求。用户对于项目有知情权,给用户暴露出问题不一定是坏事,因为只要大家能够互相理解,才能保证项目的顺利进展。如果明知完不成进度,而故意隐瞒了真相,当然是要受到惩罚的。
具有管理的基本技能与知识
要做一个好的项目经理,他肯定要好好的学习一些关于项目管理的基础知识,进行项目管理的技能训练,既要有管理意识,还要有管理的基本技能,要"心有余且力也有余"。
具有很好的沟通与表达能力
项目经理要和方方面面的人员沟通,包括项目组内的人员、市场人员、用户、上级主管,也要和各个层次的人员打交道,为了项目的成功要通过沟通交流消除来自各方面的阻力。譬如,一个系统集成的项目,在用户现场布线时,你可能要和用户的工程主管、电工、施工队等各种角色沟通,否则,可能因为很小的问题,你的系统要失败。
有很强的分析问题解决问题的能力
项目经理要能够通过现象看到本质,通过细节发现大问题,发现问题后要果断采取措施,而不是延误时机。如果一个项目经理对问题比较麻木,不能防微杜渐,那么谁都可以做项目经理了!
懂技术,不要求精通,但是要全面
这可能是争议比较大的一个原则,因为如果按此原则执行,那些拿到PMP证书的专职项目经理如何找工作?使用不懂技术的项目经理我也曾经尝试过,用过一个不懂开发的人来做项目经理,他主要对项目的进度负责,进行项目组内外的协调,但是为了弥补其不足,必须还要给他配一个助手专门负责技术。对于大的项目这种方式是可以的,对于小的项目而言肯定不能这样做,否则会出现资源浪费,项目经理的工作量不饱满。所以我的意见还是要使用懂技术的项目经理,这样他能清楚地知道组员在做什么、做的怎么样,能够发出正确的方向性指令,而不是瞎指挥,外行领导内行。
谦虚,不能不懂装懂
有的项目经理搞一言堂,听不进去大家的意见,而且不懂装懂。有一位软件公司的人力资源部经理向我诉说了他们公司由于软件项目经理选择不当而带来的烦恼。2001年他们公司聘用了一位项目经理,该项目经理被程序员们冠以"外行领导内行"的帽子,团队中绝大多数成员对他非议很多,他也听不进去别人的意见,从而使项目团队的效率很低,项目的质量很差,系统开始实施后,陷入到大量的纠错改错的"外行领导内行"的帽子,团队中绝大多数成员对他非议很多,他也听不进去别人的意见,从而使项目团队的效率很低,项目的质量很差,系统开始实施后,陷入到大量的纠错改错的泥潭中。
平易近人,不要摆架子
如果你的项目经理不能做到这一点,你肯定会对这样的项目经理很反感的!你也不会去和他很好地沟通的,当然项目组的效率也不会很高的。
以上是对项目经理的基本要求,如果他能够在此基础上还有其他更好的优点,当然应该选中他。
选了一个好的项目经理,如何用好他呢?
给项目经理充分授权
在软件企业里面,一般有2种类型的组织结构:
(1)事业部制:在事业部里面包含一个产品生命周期的所有职责:产品开发、产品客户化、项目实施、产品的售后服务、市场、渠道等。
(2)功能部门制:即将市场、销售、产品开发、项目开发、实施服务、研发管理、测试的职能分散在不同的部门中,按功能划分部门。
无论是哪种组织结构,对于项目组而言一般都需要采用动态的项目组方式,即项目组的成员是由不同部门的人员抽调到一个项目组中来,当项目完成后,项目组的成员再回到各自的部门中。对于静态的部门它的职责是提供合适的人员,培养人员的专业技能,进行专业职能的标准化工作,各职能部门象人才的蓄水池,而项目组简单来讲是用人。在动态组织的项目组中很容易出现的问题是项目经理的权力不够或者项目经理的权威不够,所以一定要充分授权。
不要轻易撤换项目经理
2002年初,我接手了一个项目,该项目已经换了3任项目经理,导致该项目的工期一拖再拖,每换一次项目经理要和用户协调一次,每换一次项目经理,用户要将项目的需求重新讲一遍,用户何其无辜!
所以在项目执行过程中,不要换项目经理。但是,换项目经理的情况在企业里是比较常见的,有时候企业也确实是不得已而为之,如项目经理离职了或者生病了。在项目初期要识别出这一风险,为了规避此风险在项目组内部可以实行AB角的方法,即有一个组员,他能够和项目经理一样熟悉项目的整体进展情况,一旦项目经理离开了,他随时可以补上。如果必须换项目经理时,也要选择一个恰当的时机,比如说系统开发完了,进入了实施阶段,可以将项目经理换成善于做实施工作的项目经理,再比如说在需求调研完了,可以换项目经理。
牢记上面的原则,相信您的项目的成功概率会大大提高!