具备沟通意识。
很大程度上甚至可以说IT项目管理是对人的管理。一个不善于与人打交道、总是引起部属与自己对抗的项目经理是很难开展工作的。
尊重他人。
不论面对任何人(公司领导、投资人、客户、项目员工……),项目经理必须懂得尊重他人。这不是说一些表面上的漂亮话,而是要项目经理能够真正尊重他人的投入,尊重他人的劳动,能够在对方的立场上为其考虑问题,解决事情。“谋人之事,解人之危”,“己所不欲,勿施于人”,这些古老的格言仍值得项目经理恪守。
懂得团队建设。
在进行“团队作战”的,项目经理的团队建设能力十分重要。项目经理需要懂得如何搭建一个团队的组织结构,懂得如何引导和激励一个团队。
掌握一些编程技术。
项目经理应该对项目所涉及的编程技术掌握到何种程度,这一直是业界争论的一个热点。这里不妨先分析两个看法:
(1)项目经理一定要精通技术,精于编程。
分析:这个看法对项目经理的技术要求似乎高了一些。不管采取何种软件项目管理方法(瀑布法、原型法、迭代进化法……),对于某一个具体阶段而言,项目总是处在一个生命周期管理过程中:可行性论证→立项→需求分析→系统设计→编码→测试→版本发布总结。
项目经理作为项目的实际控制者,主要的工作任务是充分考虑与项目相关的各种要素(PTCS),制定项目生命周期各个过程的详细计划,根据不同的阶段对相关人员进行有效管理,成功地推动项目的进行。
显然,这表明项目经理的工作重心是对各种资源的规划,对项目成员的激励,而不是技术研究。所以,项目经理并不需要对编程技术达到精通的程度。
(2)项目经理不精通技术(特别是一些阻碍开发的技术细节)将难以服众。
分析:实际上这个问题可以换一个说法:项目团队中,谁需要向谁证明技术实力?
按照TSPi(the introductory Team Software Process)的看法,项目小组中有以下角色:小组领导、开发经理、计划经理、质量/生产经理、技术支持经理、软件工程师。由于各种原因,实际中我国软件企业中项目小组典型的角色设定如下:项目经理、系统分析员、高级程序员、程序员、测试经理、测试人员。二者的对应关系可以参考图3。
分析参考图,答案已经很清楚:项目小组中系统分析员、高级程序员、程序员是把握技术问题的核心人员,他们向项目经理证明其技术实力,表明项目已经获得所需的基本技术资源。
注:虚线表明其对应关系因企业不同有较大差异
总之,项目经理的工作重心是项目管理,而不是编程。项目经理对编程技术需要有一定的掌握,但不必要求很高。当然不可否认,精通技术的项目经理可以在管理过程中更好的发挥其影响力。
其他管理技能。
譬如:冲突管理、数据分析(PERT分析)、谈判技巧、风险管理、合同管理等。这些技能涉及的范围比较广,对于项目经理而言也不必一开始全部具备,可以随着项目管理经验的积累逐步掌握,慢慢融会贯通。
以上对项目经理的定位问题从4个方面进行了讨论。总之,项目经理作为项目PTCS的实际控制者,其具体定位不可避免要受到软件企业的发展阶段、管理理念等诸多因素的影响。不过,随着项目管理理论的日益发展成熟、企业管理的日益规范,项目经理必然愈来愈职业化,其定位也必然日趋一致。