确定需求优先级的方法文档修订记录版本编号或者更改记录编号变化状态简要说明(变更内容和变更范围)日期变更人批准日期批准人C初次创建张海彦V1.1A对文档内容进行重新维护,形成v1.1版本2015-04-24赵景越变化状态:c——创建,一一增加,——修改,——删除目录1.模式一12.模式二基于价值、费用和风险的优先级设定22.1设定优先级的典型参与者22.2设定优先级的步骤2确定需求优先级的方法1任何一个项目都存在客户的期望值很高、开发时间短并且资源有限等问题,项目经理必须尽早确定处所交付的产品应具有的最重要的功能。建立每个功能的相对重要性有助于项目经理规划软件的构造,以最小的费用提供产品的最大功能。项目经理必须权衡合理的项目范围和进度安排、预算、人力资源以及质量目标的约束。权衡的方法是:当接受一个高优先级的需求或者其他项目环境变化时,删除低优先级的需求或者把它们推迟到下一版本中去实现。如果客户没有以重要性和紧迫性来区分他们的需求,那么项目经理就必须自己做出决策。由于客户可能不赞成项目经理所设定的优先级,所以客户必须指明哪些需求必须包括在首发版中,而哪些需求可以延期实现。让每一个客户都来决定他们的需求中哪一些是最重要的,这是很难做到的;要在众多具有不同期望的客户之间达成一致意见就更难了。人们都存在个人的利益,并且他们并不总能与其它群体的利益相妥协。客户和开发者都必须为设定需求的优先级提供信息。客户总是让可以给他们带来最大利益的需求享有最高优先级。然而一旦开发者指出费用、难度、技术风险,或其他与特定需求相关的权衡时,客户可能会觉得他们最初所想的需求似乎变得不必要了。开发者也可能认为在早期阶段必须先实现那些优先级较低的功能,因为他们会影响系统的体系结构。设定优先级意味着权衡每个需求的业务利益和它的费用,以及它所涉及到的结构基础和产品的未来评价。我们规定了两种设置优先级的方法,项目经理可以根据项目的情况进行选择。1.模式一把需求陈述分成三类,下表描述了三类的含义。相对权值2110.5确定需求优先级的方法2次用例、特性或详细功能需求。2.模式二基于价值、费用和风险的优先级设定在小项目中,风险承担者可以随意赞成需求的优先级,但是对于大的、有争议的项目则需要一种更加结构化的方法,采用这种方法可以消除一些情感、政策以及处理过程中的推测。这些方法包括建立每个需求的相对价值和相对费用,优先级最高的需求是那些以最小的费用比例产生出最大产品价值比例的需求。设定优先级的矩阵2.1设定优先级的典型参与者项目经理:指导全过程,解决冲突,并且在必要的时候调整其他参与者的方案。重要的客户代表:提供受益和损失程度;开发者代表:提供费用和风险程度。2.2设定优先级的步骤1.在一个表格中列出要设定优先级的所有需求、特性或用例。所有项都必须在同一个抽象级别上,不要把个人需求和产品特性混合在一起。如果某些特性有逻辑上的联系,比如只有包括特性A的情况下才能实现特性B,那么只要列出驱动特性就可以了。这种模型可以容纳几十种特性。如果有太多的项,那么就把相关的特性归并起来。必要时,也可以在更详细的级别上进行第二轮分析。2.估计每个特性提供给客户或业务得相关利益,并用1—9划分等级,1代表可以忽略的利益,9代表最大的价值。这些利益等级表明了与业务需求的一致性。客户代表是判断这些利益的最佳人选。3.估计出如果没有把应该实现的特性包括到产品中,将会给客户或业务上带来的损失。使用19划分等级,1代表基本无损失,9代表严重损失。对于具有低利润低损失的需求只会增加费用,而不会增加价值。4.总价值栏是相对利润和相对损失的总和。缺省情况下,利润和损失的权值是相等的。5.估计实现每个特性的相对费用,是用1(低)9(高)划分等级。6.估计与每个特性有关的技术或风险相对程度,并用1(低)9(高)划分等级。1级表示可以轻而易举地实现,9级表示需要极大地关注其可行性、缺乏具有专门知识的人员,或者使用不成熟的工具和技术。缺省情况下,利润损失、费用和风险的权值是相等的,但是调整。7.利用公式计算出每个特性的优先级:优先级=价值%/(费用%...