几年前,一个资深经理打电话给我,说道:“我们有个项目出问题了。在启动的时候,我们充满了希望,但是现在看来已经不可能了。”我问了几个问题,发现他们之前从来没有做过类似的项目。相对以前,这个项目的规模更大,使用新的开发语言,基于新的平台,而且日程安排更短。
整个公司的未来都押在这个项目的成功上,问题是它比以前做过的项目都要复杂,而且要求也更高。他们唯一的策略就是“希望”。
他们没有安排任何关于项目所在领域、使用的开发语言或新操作系统的培训。他们对这个项目希望能够达到的时间要求,也是以前从未做到的。
仅有希望,不足以交付一个成功的项目。
讲求实效的项目经理会这样做:
- 识别风险并记录下来。风险可能来自于技术(新的开发语言、新的平台)、日程安排(时间过短、人太少),很多时候两者皆有。
- 不到万不得已,不要选择瀑布式生命周期。为什么?因为你没有任何数据足以成功支持瀑布式需要的前期计划过程。要是你从未做过类似的项目,用迭代进行原型化,或者通过迭代开发几个功能,看看会是怎么样一个情况。
- 可以用“哈德逊湾式启动”看看是不是能做出些什么东西。要使用即将使用的新的开发语言、操作系统、数据库以及类似新技术,这样做效果尤其好。“哈德逊湾式启动”能够让团队了解要做的东西,而且可以揭示一些目前尚未发现的风险。
- 确保大家具备相关的技术能力,还有解决问题必备的领域知识。有必要的话可以进行培训。让大家学习项目中要用的开发语言,这些投入比起白白浪费时间所付出的成本要低。
- 考虑所有工作都采取迭代的方式进行,特别是项目规划和日程安排。
- 由于缺少经验和专业知识,可以寻求相关的帮助和信息。跟团队成员一起商量如何能让别人了解他们的工作进展。
- 制订里程碑条件(里程碑也可以是迭代的)。在管理层复审会议上审查这些条件。即使管理层或出资人不愿意做复审,项目经理也可以主导这些会议。如果不知道怎么样才能让项目正常运转,可以按里程碑周期性审查项目进度。
不要指望仅凭希望就能得到好的结果。
作为项目经理,你的工作就是要计划、再计划,并努力工作,以得到最好的产出。以下这些实践可以帮你达到目的。
- 使用有时间盒限制的迭代,这样所有的人都可以看到项目的进度。
- 使用速度图表展示项目进度。要让大家都能很明白地看到进度(或匮乏的资源)。这样一来,特别是在需要帮助的时候,这些数据可以拿来使用。