IPMS(Integrated Project Management System),是一个为上海贝尔阿尔卡特某移动事业部门定制化开发的多系统集成项目管理系统,其目标是通过对该部门整个开发管理工具环境的集成来达到对项目的实时跟踪和管理,以及数据的采集和度量。然而,一个客观事实是,国内大量的中小型项目中的绝大多数都存在着需求不明确性的问题,伴随而来的是大量需求变更所带来的开发 风险。那么面对这样的客观事实,是否意味着 项目经理根本无法应对这样的问题呢?真正优秀的项目经理又会如何挑战需求不明确和需求变更所带来的开发风险呢?
[案例背景]
背景描述1: 随着阿尔卡特与朗讯科技的合并,该移动事业部门也将与原两家公司的多个部门进行合并。合并后的新部门将采用全新的产品线定义,并实施新的项目管理流程。在这样的情况下,以前的IPMS系统已经无法满足该事业部门对项目的流程管理,IPMS系统三期开发势在必行。
背景描述2: IPMS系统作为一个集成化的管理系统与众多功能强大的软件系统集成,其中包括ClearQuest,一个强大的事务状态管理软件。原先IPMS与ClearQuest通过一组ClearQuest软件预先定义的API进行数据通讯。
[提出问题]
由于合并的时间过于仓促,以及部门之间的项目数据定义和管理流程的不同,导致IPMS三期开发的需求极不明确,整合后的新部门内部还在为部门的项目管理的流程定义和系统可能的功能修改争论不休,在这样的情况下,项目进展十分缓慢。
IPMS三期的第一个迭代中有这样一个非功能性需求,即ClearQuest的版本升级,随之而来的一个风险便是,伴随着ClearQuest的版本升级,没有人知道原版本中与IPMS数据通讯的API接口是否可以向下兼容。
[解决方案]
1.基于现实的问题,即该事业部门确实无法在很短的时间内协调和构思出统一的系统需求,以及部门希望尽快将部分功能使用起来的愿望,项目组采取了基于需求基线化管理的迭代开发。项目组采用了合适的开发步骤,首先基于目前的需求不稳定性项目组决定了以一个月为开发的迭代周期;然后在策划期提取出一组客户的高端需求,通过对需求的简要分析和工作量估算,并依据一组参数(比如重要性,紧急程度和需求的稳定程度)规划出一个月内(一次迭代期)的项目需求;对这些需求建立基线,一旦需求的基线确立,那么在这个迭代周期内的需求应该是稳定的;最后项目组在一个迭代周期内,通过依据 CMMI的流程对系统进行三期开发。
通过这样的方式,能够尽可能的降低需求不明确所带来的开发风险,增强需求的可管理性,但是如果在迭代内部发生了需求的变更又该如何处理呢?
2.项目组通过对风险可能的发生时间点和阀值的控制,来管理风险的危机。
项目组首先识别出了ClearQuest升级后的API兼容性风险;同时,通过讨论,项目组确定了这个风险可能转化为问题的时间点,即一旦完成三期对项目注册功能的修改后,必须在测试时确定IPMS中注册的项目数据是否可以正确的被保存入ClearQuest中,我们可称那个时间点为A时间点;当项目的开发活动快到达A时间点之前,项目组安排人力对新版本ClearQuest中的相同API进行了简单的功能原型测试,测试结果表明确实存在兼容性问题;项目组立刻决定修改项目计划,并在原先的风险预留的时间段内增加了对API兼容性问题的处理事务,从而解决了ClearQuest版本升级可能导致的系统无法正常注册项目的重大问题,使得项目得以平稳开发。