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