前些年,笔者做了不少大型软件项目。现把这些年做项目时的成败得失和大家分享一下。笔者认为,优秀的项目经理要有责任心、要善于沟通、能引导客户、能预测风险、善于总结、随需应变、善于激励团队、同时也要懂技术。
责任心
作为项目经理首先要有责任心。有了责任心,你会把项目当成自己的孩子,倾注你的全部心血。责任,会驱使你关注项目的进度,千方百计去寻找各种资源,推着项目往前走。甚至吃饭、睡觉,走路、坐车,都想着整个项目团队,想着他们还在加班加点,你可能很自然地给他们带点夜宵、冲杯咖啡,犒劳员工。
有了项目经理做表率,整个团队会鼎力支持工作,士气非常高,技术问题也迎刃而解,得到领导称赞和客户肯定,项目将朝着预想的方向发展。
许多开发人员抱怨项目经理一天没干多少事情,而工资还挺高。其实,项目经理一刻都没闲着,他总在想着怎样更好的执行项目计划,调整项目进度等,脑子一直在不停地运转,所以说项目经理是心累。
善于沟通
PMBOK(项目管理的知识体系)指出,项目经理75%~90%的时间用在沟通上。沟通无处不在,项目经理要具备良好的沟通能力。如:跟领导报告工作进度、跟客户介绍产品及说明工作成果、跟项目成员交待工作、跟公司内的其它人员争取支持、跟合作厂商协调配合事项等。对项目经理来说,每天大部分的时间是跟人沟通。项目经理上有老板、客户,下有项目组员,属于夹板层,沟通不好,容易出事。
沟通的关键在于:在什么时间,用什么方式,将什么信息,传达给什么人?特别要强调的是要做好沟通计划。同时,要掌握项目干系人的沟通需求,满足他们的期望!
当然,沟通的方式有多种,正式的、非正式的。正式的有:各种评审会议、周例会、项目启动会议、项目总结会议等,非正式的如:个人谈话、餐桌上的聊天,MSN聊天等。要结合着使用各种沟通的技巧。有时候,非正式的沟通反而能获得项目的实际信息,尤其是开发人员对项目的期盼、想法和思想。
引导客户
“客户是上帝”,但客户不一定全对,而且有的时候是错的,尤其在项目还没开发出模型的时候,客户有时根本不知道自己需要什么样的东西。所以,在项目启动会议后,双方要“把丑话说在前面”,分清责任。
项目经理要站在客户的立场,努力满足客户的业务要求,让软件真正为客户创造价值。但是,如果项目经理总被客户牵着鼻子走,就很容易陷入被动的局面,结果是客户的需求一直在变化,造成程序不停地返工,项目总在原地打转,很难推进,久而久之,大家筋疲力尽,积极性严重受挫。最后,项目做得一蹋糊涂!
开发方和使用方,要讲究“职位相当”,要找有话语权、能拍板的客户,统一接口人员,对需求的变更,不能说改就改,要做适当的变更控制,笔者一直建议要做到“落到纸面上”,有时需要客户签字确认。
对于客户提出的需求,项目经理要凭借优秀的技术水平、充沛的业务知识快速估算需求的变更需要多少开发工作量,有没有更好的解决方法。理想的情况是程序基本不做改动,又能满足客户的需要。但笔者往往是采用变通的方法,换一种方式实现客户的需求。这种情况下,需要项目经理对系统结构有全局的认识,尺寸一定拿捏得很准。
项目经理有时充当白脸、有时是黑脸,但无论如何,一定要维护组员的利益,笔者经常看到很多项目经理有意无意地在客户面前说开发人员的不是,遇到客户不满意的地方,就指责开发人员。这种方法欠妥,笔者一般是跟客户表态,向客户承认“错误”,回头再找开发人员讲道理,做到“内部的问题内部解决”。
不过,这些年笔者做过很多项目,不少是大型项目,作为项目经理,笔者和客户关系处理得很不错,双方合作很愉快,最后客户变成了朋友。坦诚相待,有礼有节,“双赢”是项目经理努力的方向和追求的目标。
预测风险
风险贯穿项目之始终。作为项目经理,必须具有预测风险的能力,如技术储备是否满足项目需要,人员是否充足,项目预算够不够等。
随着项目的推进,项目经理要预测哪个环节会有风险,并及早采取规避措施。很多风险都是在和客户、和老板的私下接触才能获取的,比如跨年度可能会换领导,国企的当年预算必须当年使用,跨年度将作废等。
如果项目经理像程序员一样忙于整天的编程,而不关注项目风险的变化,就会很被动,甚至措手不及。记住,风险无处不在,作为项目经理要引起足够的重视,要有风险意识,能预测风险并控制风险。
善于总结
笔者常说,“总结是为了提高,思考是为了做得更好”。尤其是年轻的项目经理,经验不太丰富,只能一边做,一边总结,在总结中前进。经历不等于经验,经历总结、沉淀后才能成为自己的经验。孔夫子说的“吾日三省吾身”,主要是多用心,经常向经验丰富的前辈请教。
很多项目经理,尤其是刚开始自己负责项目的项目经理,总把项目的一些过失归咎于外部因素,有时自以为正确,其实,常常犯先入为主的错误。其实要多从自身找原因,勇于自我批评,很多环节可以做得更好。
随需应变
“凡事预则立,不预则废”,做任何事情都必须有清晰的目标和计划,以目标为导向。有了计划,项目成员就看到了努力的方向,有“奔头”和干劲,唤起员工的工作热情,整个团队士气很高。
当然,软件这个行业,尤其是做国内项目,因为市场、客户、软件改进等需求,需要调动各种资源,所以即使规模很大的专业化软件公司,也没有一成不变的计划。虽然“计划赶不上变化”,但项目经理不要以此为借口而不重视计划的连贯性。做计划要留有适当的缓冲空间,松紧适度,随需应变!
市场主导研发,研发促进市场。项目的三驾马车:技术、业务、管理,哪个都不能少。项目的三要素:进度、质量、成本,项目经理要牢牢贯彻。有的项目经理没有“成本”的概念,一味地追求完美,痴迷于技术,而忘记及时交付,这是软件开发人员的通病。
激励团队
项目组就是一个团队,项目经理作为一个团队的领导,首先要认知自己的角色,明确自己的职责,逐步加强与团队成员的关系,善于激励别人,建立友好关系,要用不同的方式和不同的人打交道,同时要帮助绩效不佳的人。所以说,项目经理不能只是埋头于技术钻研,更重要的是带动整个团队,燃起团队的激情,俗话说“兵熊熊一个,将熊熊一窝”。
其次,要明确团队目标,制定团队守则,增强团队成员间的信任关系,给予员工挑战性的工作,让团队充满生机和活力,给予表扬,协调人际冲突,处理危机。
最后,项目经理要善于评估绩效,做到奖惩分明,让不好的倾向和行为习惯扼杀在初始阶段。
懂技术
项目经理只有懂技术,才能估算工作量,制定的计划才能相对可行。其次,懂技术,才能和别人沟通,尤其是和客户沟通,客户才能信任你。在软件开发领域“外行领导内行”不太现实。最为关键的是,即使主要技术人员走了,项目经理能随时补缺,不至于让项目瘫痪!