【IT168 技术文章】
在国内,软件项目经理的要求与国外相比一般有相当大的差别,查看一下招聘信息,对项目经理的要求通常首先是熟悉某些工具,某几种语言,其次是某一行业的背景,而项目管理的技能则显得不是那么重要。所以,对大部分的国内企业来说,软件项目经理首先必须是技术专家、行业专家,而后才是管理者。无可否认,这就是当前国内软件业的环境,正因为这样,软件界充满着失败或基本上失败的项目,以及失意的项目经理。本文要谈的是,现在的软件项目经理面临这种可以说是恶劣的环境,如何才能成为一个成功的项目经理:
一、责任心
取得项目的成功无疑是项目经理的责任。因为我们绝大部分软件企业运行在相对混乱的状态(CMM一级),组织不大可能对项目以及项目经理的责任做出明确、合适的界定,所以,影响项目成功的一切因素都是项目经理的责任,包括客户、环境、考核、激励等等。有些项目经理把满足用户的需求作为项目成功的唯一标准,这一观念往往成为项目最终成功的障碍。结果通常是客户不满意(表面上是需求变了,实际上客户的需求并没有改变,只是陈述的需求变了),程序员抱怨多(工作没有成就感),系统没有扩展性、可维护性。项目经理只有把客户的满意和企业长期利益作为自己的责任,项目成功才有可靠的基础,对于公司的战略性项目尤其如此。
二、常识和直觉
大多数有违常识和直觉的做法最终会被证明为错误的,项目经理要积累足够多别人已犯的错误充实自己的常识。如果发现项目中有违反常识的现象,应该把它作为一个问题来解决,看一看是自己的常识需要改变还是这个现象需要改变。项目经理要尽量使项目按照常规运作,不要故弄玄虚,或过多使用程序员不熟悉的新名词来表现自己的水平,这样不仅无助于程序员形成良好的心态,而且无谓增加了项目的混乱。
有一本书叫做《微软项目求生法则》,其实国内的项目才更象是在丛林求生的猎人,项目经理面对的是不断变化的环境和未知的将来。早上去上班,也许某个关键程序员要辞职,客户的需求发生了重大的变化,或是老板又有了什么让你头疼的新主意。面对这样的环境,项目经理必须保持敏锐的嗅觉,准备弹性较大的项目计划和设计方案,在大部分变化到来之前有所准备,以免项目受到重大的打击。
三、学习的心态
软件技术的发展日新月异,项目经理必须了解最新的发展方向,如:J2EE或 .NET,UML等等,看看能否应用于项目之中。而且项目经理还得学习管理方面的知识,CMM,PMBOK或是RUP,学习这些理论体系对于国内的大部分小企业来说,最重要的不是完全的导入,项目经理首先应该从这些先进思想中看到差距,在关键问题上做好改善工作,逐步推动项目管理和技术的进步。每个程序员都有其独到之处,项目经理应承认程序员有强于自己之处,并尽力促进成员间知识、技能的交流。
四、尽一切力量去维护项目团队
国内的软件企业一般没有很好的文化和管理去构造一个富有凝聚力的团队。维持项目团队的稳定和战斗力更多成为项目经理的责任:
1、项目经理必须关心程序员:尽力让程序员专注于自己的工作,杂事造成的影响远比这些事本身花的时间多。相对说来,程序员在处理杂事的时候效率会比一般人更低,也更容易犯错误,从而导致情绪变坏,影响工作。项目经理有时候应勇于承担勤杂工作。
2、要有宽容的心态,特别是对程序员。现在的程序员都比较年轻,自己觉得有点骄傲的资本,又处在一个浮燥的环境中,所以,有时候会做出一些过分的行为,项目经理千万不能太过在意。
3、甘做幕后英雄,不斤斤计较。项目经理经常要在技术上支持程序员,但不能到处宣扬,而要把成绩更多归功于程序员。在项目紧张的时候,项目经理有时间的话要参与到繁琐的测试和调试工作中,或做一些代码工作。
4、维护公平原则。项目经理在分配工作、对项目成员进行考核评估时必须做到公平合理,让大家心悦诚服。
五、沟通与交流
项目经理应该了解参与系统设计开发的成员,他们的特长和兴趣在哪里,以便更好地进行交流,这种非正式的项目外的交流对于团队的建设是至关重要的。此外,成功的项目经理也要善于与公司领导层的沟通,这是获得必要的资源支持的保证。有些优秀的软件项目经理可以与项目成员、相关部门或客户进行很好的交流,但没能与上级进行良好的沟通,他们在领导一个或几个项目取得成功之后,却发现在新的项目中缺少了基本的来自领导的支持。最终,有些项目经理选择了离开公司,而另一些则不得不放弃项目经理的角色。沟通与交流能力基本上是技术出身的大部分项目经理的致命伤。
十年前,软件界最需要的是天才的开发人员,最近几年管理的重要性日益凸现,软件公司开始寻找优秀的天才项目经理。事实证明,天才总是可遇不可求的,而管理系统不能建立在小概率的基础上。解决软件企业的问题最终将依赖于组织管理水平的提高,比如说薪酬与激励政策、开发流程的优化、完善的培训制度,在一个管理良好的组织环境中,项目经理的责任以及履行责任的难度会大大降低,企业将不必再寻找天才的项目经理,相反,企业会成为优秀项目经理成长的基地。