《软件过程与管理》案例讨论

具有清晰策略的快速开发

  仍是CRM3.0项目,现在由张莉承担项目经理。
  在项目组的第一次会议上,她介绍了项目组的成员,而后切入主题,"我在整个公司范围内收集了其他项目的总结报告。"她说:"我已经列出足有1英里长的公司其他项目在运作中发生的所有错误,我将把这个单子贴到会议室里,我想在我们开始犯其中某个错误时,就在上面画一个标记,如果你们还知道上面没有列出的其他错误或我们可能会犯的任何潜在的错误,请加在上面,我们不想重蹈覆辙。"
  "选择你们参与本项目是因为你们每位都有开发技术基础,我想你们一定知道做好需求分析和设计以使我们能够不必返工而浪费时间意味着什么,所以,我要求项目组的每位员工要用心工作,而不是辛苦工作,工作太辛苦会导致出现更多的错误,我们没有时间处理这些错误。"
  "我也同时制定了配套的风险管理计划,我们面对的是一个具有挑战性的进度计划,所以我们不能让能够防止的风险发生。我们现在面对的最大风险是计划的进度无法实现,我想我们应该在本周末在对进度计划进行一次评估,如果认为进度计划无法实现,我们将讨论提出一份更现实的计划。"
  每位项目成员都点头,对经过"死亡进程"项目的人员来说,张莉的讲话让他们长出了一口气。
  1周后,张莉约见了她的上司陈键:"项目组已经很仔细地审视了项目计划,陈健,得出的结论是,我们只有5%的机会在项目截止日期完成当前定义的功能,这是假设没有任何改变的情况下,当然,有些事情总是要改变的。"
  "真是糟透了。" 陈健说。"我们至少需要有50%的机会按时交付软件,并且我们还要能够针对今后10个月市场的变化随时修改项目要求,对此,你有什么建议?"
  "我们还没有完成对产品定型,所以,我们还是有一定灵活度的。"张莉说。"但我认为即使根据目前的需求分析,我们也需要花8~30个月时间,我知道这个时间跨度是比较大,但这也对我们在产品完全定型之前的工作很有利。我们需要10个月后提供产品,对吗?我认为,可以考虑再加入一些开发人员,然后建立一个渐进式的交付计划,今后我们每2个月推出一个交付版本,第一个交付版本决定在第6个月末完成。"
  "听起来不错。" 陈健说:"除此之外,我想对这个项目而言,功能比进度更重要,我会在找一些人员谈谈,然后我们再定。"
  当陈健再找张莉时,他告诉她公司愿意将软件计划时间延长到12个月,并还是希望实现所要求的功能,另外,为安全起见,可以采用渐进式软件交付计划。张莉轻松了许多,并说她认为这是一个很现实的目标。
  项目经过初期的几周后,她的项目组已经建立了详细的用户界面原型,并与潜在客户进行交流,根据客户回馈对原型进行了几次修正。
  张莉继续维护她的风险列表,并确定了这个项目的3个主要风险:1)可能导致大量重复工作和进度延期的质量低下风险;2)具有挑战性的进度本身的风险;3)因市场竞争,要求软件功能不断增加而导致的竞争功能风险。张莉感到质量低下风险可以通过渐进交付计划来消除。他们将在第6个月时将第1个交付版本送交到测试部门,他们会对软件按用例进行测试。
  进度计划风险可以通过产品功能的优先级次序由项目组自己来消除。他们在12个月内会尽可能开发更多的功能,而通过每2个月交付1个版本,他们可以确保在需要的时候有东西可以交付。
  项目组采用两种方式来消除竞争功能风险。他们花了大约3个月的时间开发设计方案,该方案包含了所有已定义原型的功能和其他一些他们认为应该包含在3.0版中的功能的框架。这种设计使系统更容易适应可能产生的各种改变,同时他们还分配出时间在第10个月分析竞争对手的产品,修改原型,并在最后的2个月中实现必要的竞争功能。
  在第4个月时,随着设计方案的完成,项目组制定了一组细化的里程标志,制定了到第6个月时,发布第1个可交付测试版本所遵循的原则与途径。第6个月交付的版本并不完善,但应该保证质量,这可以为下一步工作打下坚实的基础。在项目组顺利交付第6个月的版本后,项目组又为第8个月交付制定细化的里程标志,并使用同样的方法到达了第10个月的里程标志处。
  在第10个月结束时,项目组按计划对竞争对手产品进行研究。竞争对手已经在第8个月发布了一个好产品,它已经包含了一些CRM3.0出于竞争目的而需要包含的功能。项目组立刻将这些新功能加入到优先队列中,重新分配优先次序,并制定了最后2个月的细化的里程标志。
  几乎同时,蒋华,一个初级开发人员发现了一种可以将产品对话框进行更好的组织的方法,并建议提交到项目组成员碰头会上。会上,高级开发人员唐国刚对此做出的反应是:"这是一个非常好的想法,我认为我们应该采用这一方法修改我们的设计,但不是现在,蒋华,对你来讲,进行这样的改变只是一天的工作量,但会影响文档编制进度达一周或更多时间,将其放到4.0版本中如何?"
  蒋华说:"我没想到对文档进度有这么大的影响。这是个好的方法,我想请求在未来修改设计时采用。"
  在达到第12个月的里程标志时,项目组按计划交付了终版软件。由于从第6个月开始测试时CRM的质量就是优秀的,所以,文档在等待正式版软件交付期间,已经可以基于详细的用户界面进行编写了。文档与软件同步准备就绪。开发人员没有实现一些低优先级的功能,但他们实现了所有的重要功能,CRM3.0是成功的。