软件开发项目失败的元凶是人员问题,而不是技术。这是 Computerworld 上的一篇文章提出的观点。尤为值得关注的是,文中特别指出项目经理是多数问题的罪魁祸首。来自 Change Strategists Inc 的 Billie Blair 认为,很多公司提拔某个重要的技术人员,让他来担任项目经理这一关键角色,然而直到最后,公司才发现这个人根本不具备做好这项工作所需的技能。他们完全没有准备就绪。Blair 说道,
在公司里,任何过失总能追溯到某个经理身上。
技术人员能成功转型为管理人员吗?许多公司意识到这两类角色所需要的技能有点南辕北辙的感觉,于是他们就制定了一些双重职业发展 (dual career track) 模型。技术职业发展路线通常专注于鼓励技术知识、能力和技巧方面的提升,结合一些必要的人员管理知识。相反地,管理职业发展路线则强调候选人朝着增进人员管理职责、财务监管和战略眼光方向发展。
关于往哪个职业方向发展这一问题,估计对于每一个人来说都是一个很纠结的决定。 Pawel Brodzinski 曾经撰写了一篇博文,描述了一个人在面对这样的选择题的时候,是如何“左右摇摆而又非此即彼的”。他提到:
从另一个角度来说,如果你要成为一个很棒的工程师,那么通常同时你也会是一个很差劲的经理。
那么是不是有例子可以证明,一个人是可以同时担当技术和管理的双重角色呢?这样的讨论在网上比比皆是。以下是其中的一些节选:
ChrisF 说:“这取决于你必须要完成的编程工作的工作量和方式,以及你担任的管理职责的工作量和方式。”
Martin Wickman 则提到:“在我曾经工作的一个团队里面,就有一个程序员同时担任了我们的经理。这种模式使得生产率以及所有类似指标都惨不忍睹。简单地说,所有的决策都是那个人做的 + 他就是个彻头彻尾的管家婆,大事小事都要管。”
“我认为,在多数情况下,这可能不是个好安排。但还是有很多文章讲述了开发能人是如何被提拔,并成长为团队管理者的,即使这并不是他们擅长的技能方向,甚至不是他们渴望的工作。他们很纠结于纯粹的‘管理’工作,因为他们认为他们的‘工作’就是完成编码,而不是写报告和开会。”David in Dakota 说道。
敏捷方法论中的角色定义正改变着这场讨论的走向。由于敏捷理论改变并弱化了传统项目经理的角色,同时又重新让开发人员来承担项目成败的责任,于是有些人就在质疑,这种变化是否会降低一旦失败了就归咎于团队某个单一角色的可能性呢?
关于项目经理这一角色, CA Atreya 还引出了另外一个话题。引用 2005 年 ESI 调研报告,关于项目失败原因的数据则显示,劣质的需求定义才是唯一的罪魁祸首。
查看英文原文: Are Project Managers the Problem?
评论