下载
第1 3 章 设定需求优先级
关于“化学制品跟踪系统”的大部分用户需求编写成文档以后,项目经理 D a v e
和需求分析员L o r i 接见了两个产品代表。 Ti m 代表了药剂师群体,而 R o x a n n e 则代表
了化学制品仓库人员。
“就像你们所知道的那样”,D a v e开始说:“产品代表为化学制品跟踪系统收集了
许多需求,但我们不能在产品的首发版中包含你们所需的全部功能。由于大部分需求
来自药剂师和化学制品仓库,所以我想与你们谈一谈关于设定需求优先级的问题。”
Ti m感到很困惑。“你为什么要设定需求优先级?它们全都很重要,否则我们不
会向你们提出这些需求。”
D a v e解释说:“我知道它们都很重要,但我们不能做到同时交付一个包罗万象并
且具有高质量的产品。由于没有更多的可用资源,所以我们需要为下一季度末就要
交付的产品确定最重要的需求。我们希望你们帮助我们把首发版中必须包括的需求
与可以放入以后版本的需求区分开。”
“我知道卫生和安全办公室已向政府提交的化学制品使用和销毁的报表必须在这
个季度末完成” R o x a n n e 指出,“如果有必要的话,我们可以多使用几个月化学制品
仓库现行的存货清单系统。但是条形码标签和扫描功能是必须的,这比药剂师所需
的可查找的供应商目录更为重要。”
Ti m提出抗议:“我已向药剂师保证,为他们提供在线的目录查询功能,以节省
他们的时间。所以目录查询从项目刚开始就必须考虑”。
分析员L o r i 说:“当我与药剂师共同探讨使用实例时,有一些使用实例似乎经常
执行而其它的则很少有人使用。我们可以分析全部的使用实例,并确定那些你们不
会马上就用到的使用实例吗?如果我们可以这样做,那么可以推迟决定那些高优先
级的使用实例。
对于必须等待系统部分功能的实现, Ti m 和R o x a n n e 并没有感到很惊讶。然而他
们意识到如果开发组不能在发行 1 . 0 版本时实现全部需求,那么最好每个人都赞成首
先实现需求的子集。
每一个具有有限资源的软件项目必须理解所要求的特性、使用实例和功能需求的相对优
先级。设定优先级有助于项目经理解决冲突、安排阶段性交付,并且做出必要的取舍。本章
将讨论设定需求优级的重要性,并且提出一个基于价值、费用和风险的设定优先级方案。
13.1 为什么要设定需求的优先级
当客户的期望很高、开发时间短并且资源有限时,你必须尽早确定出所交付的产品应具
备的最重要的功能。建立每个功能的相对重要性有助于你规划软件的构造,以最少的费用提
供产品的最大功能。如果你正在做时间盒图或者进行渐增式开发,那么设定优先级就特别重
要,因为在这些开发中,交付进度安排很紧迫并且不可改变日期,你需要排除或推迟一些不