每一个项目都是独特的,然而项目失败的根本原因通常都是相同的。当我们知道这些原因后,我们可以最小化发生问题的几率,增加项目成功的概率。

那么,当我们面对粗糙的项目启动、过弱的控制、缺乏资源、项目风险和不切实际的期望时,应该怎么做?以下是五个常见问题和解决方法可供借鉴。

简单粗糙的项目启动

也许最常见的问题是没有正确地启动项目,而这其实只需要花点时间去收集客户需求、同意客户要求、创立一个良好的项目计划以及设定客户的期望。而人们总是倾向于迅速开展项目工作。但是,一个简单粗糙的项目启动阶段经常会导致问题的发生,甚至项目的失败。

解决方法

在正确的项目启动过程完成之前不要开展项目工作。如果客户为了尽早得到可交付成果而推动你基于假设开展项目工作,请不要同意。事实上,简单粗糙的项目启动会带来返工、错误、疏忽、只会令项目变糟。所以,当项目被不合理推动时,只能说”不“,并且绝对不可太早开始。

过弱的项目控制

即便计划再周密、启动再充分,如果不能有效地进行管理,也是没有意义的。缺乏控制导致的典型问题包括:范围渐变、过于简单的工作计划、缺乏变更控制、缺乏沟通和风险问题的管理。

解决方法

(1)建立变更管理过程并且令所有人都知道这些控制。使用这些过程与保证你的团队保持关注与交付关键的东西。

(2)使用异常报告。这样可以保证当风险和问题出现的时候可以得到更好的关注。

(3)定期与客户、发起人以及其他重要的项目相关方进行沟通。

(4)定期评审、更新项目计划。如果项目计划没有评审和更新,那其实也没有必要制定计划。

缺乏人手和技能

项目人手不足,或者配足人员的数量却配错了技能组合,这些问题经常导致项目失败。当你的项目没有足够的、具有合适技能的人员,那确实是令人沮丧的。这个问题在当前的项目管理中非常普遍。

解决方法

坚持要求管理层提供合适的人员,无论是从内部调配还是雇用外包合同员工。使用可靠的项目计划来说明在哪些方面你还需要投入人员来支持你的要求。不要保持沉默并且苦苦支撑,这对你和你的团队都不公平。

没有强调风险和问题

在项目的生命周期中,有很多场合风险和异常会导致问题,甚至失败。这些例子包括:

(1)没有清晰的定义需求,结果不能满足客户的期望。

(2)使用前沿的新技术导致无法预料的问题。

(3)过于简单的技术设计使得未来的方法没有变更与伸缩的可能。

(4)无效的变更控制使得变更要求导致项目偏移原来的目标。

(5)测试不充分导致错误和缺陷遗留到产品上。

(6)在关键时刻缺乏关键人物的支持。

解决方法

在项目开始的时候对风险和问题列表进行评审。其中一个好办法是使用头脑风暴列出可能的风险和问题,参与人员包括项目成员、其他参与过类似项目的项目经理等。在整个项目过程中不断对风险和问题进行评审。

对上面例子中的解决方法包括:

(1)雇用商业分析人士勾画出客户的需求,并使用清晰、明确的文档进行记录。

(2)提问是否必须使用前沿的新技术,后者是否有能提供相同功能的更多方法。

(3)由你的团队进行技术设计。这样有很大的机会获得一个可靠和灵活的设计,而且你的团队也有了可以继续使用的基础设计。

(4)在项目启动之前与客户达成一个变更控制的流程,并且严格根据流程执行。

(5)将测试计划与根据客户要求制定的测试场景放在一起。保证你有足够的资源以及保证客户承诺进行测试。

(6)制定一个针对失去关键人物的风险的应急计划。

不能有效管理客户期望

通常项目开始都是在一个有很多乐观估计的基础上。在项目的生命周期中,客户期望会膨胀成为根本不现实的程度,当客户不知道他们应该期待什么或者他们不能看到项目的实际进展情况,他们就会对你感到失望,你们的关系就会破裂。

解决方法

将期望值管理到一个合理的水平是项目经理的职责。其中一个方法是将项目分解为有多个里程碑的各个任务块或者项目阶段。你可以通过发布周期性的可交付成果给客户,让他们看得到他们将要得到什么。

通过这种方式让客户在早期就能看到你们在做什么,从而保证项目可交付成果能符合客户的期望。