用户需求开发优先级排序

概述

       任何一个项目都存在客户的期望值很高、开发时间短并且资源有限等问题,项目经理必须尽早确定处所交付的产品应具有的最重要的功能。建立每个功能的相对重要性有助于项目经理规划软件的构造,以最小的费用提供产品的最大功能。

      项目经理必须权衡合理的项目范围和进度安排、预算、人力资源以及质量目标的约束。权衡的方法是:当接受一个高优先级的需求或者其他项目环境变化时,删除低优先级的需求,或者把它们推迟到下一版本中去实现。

       如果客户没有以重要性和紧迫性来区分他们的需求,那么项目经理就必须自己做出决策。由于客户可能不赞成项目经理所设定的优先级,所以客户必须指明哪些需求必须包括在首发版中,而哪些需求可以延期实现。

      让每一个客户都来决定他们的需求中哪一些是最重要的,这是很难做到的;要在众多具有不同期望的客户之间达成一致意见就更难了。人们都存在个人的利益,并且他们并不总能与其它群体的利益相妥协。

        客户和开发者都必须为设定需求的优先级提供信息。客户总是让可以给他们带来最大利益的需求享有最高优先级。然而一旦开发者指出费用、难度、技术风险,或其他与特定需求相关的权衡时,客户可能会觉得他们最初所想的需求似乎变得不必要了。开发者也可能认为在早期阶段必须先实现那些优先级较低的功能,因为他们会影响系统的体系结构。设定优先级意味着权衡每个需求的业务利益和它的费用,以及它所涉及到的结构基础和产品的未来评价。

我们规定了两种设置优先级的方法,项目经理可以根据项目的情况进行选择。

模式一

      把需求陈述分成三类,下表描述了三类的含义。

类别

描述

一个关键任务的需求

支持必要的系统操作;最终所要求的,但是可以推迟到下一个版本

功能或质量上的增强,如果资源允许的话,实现这些需求会使产品更完美。

        如果选择了模式一的划分方法,需求分析人员只需要把需求优先级分为高、中、低就可以了。这种方法简便易行,但是划分结果一定要取得的客户的认同。

      但是这种方法是不精确的,因此,所涉及到的每个人必须在每种类别的含义上达成一致。如果人们混淆了高、中、低这样的术语,那么就要更多地使用如提交、允许时间、将来发行版本等确定的词语。

       每个需求的优先级必须写入软件需求规格说明书或用例文档中。另外还需要说明,分配给高层需求的优先级是否被其所有下层需求所继承,或者每个用户需求有它自己的优先级属性。

      即使是一个中等大小的项目也会有成千上万个功能需求,以至于不能从分析和一致性角度对这些需求进行分类。为了使需求便于管理,必须为设定优先级选择一个合适的抽象层次----用例、特性或详细功能需求。

模式二----基于价值、费用和风险的优先级设定

     在小项目中,风险承担者可以随意赞成需求的优先级,但是对于大的、有争议的项目则需要一种更加结构化的方法,采用这种方法可以消除一些情感、政策以及处理过程中的推测。这些方法包括建立每个需求的相对价值和相对费用,优先级最高的需求是那些以最小的费用比例产生出最大产品价值比例的需求。

设定优先级的矩阵

相对权值

2

1

 

 

1

 

0.5

 

 

特性

相对利润

相对损失

总价值

价值%

相对费用

费用%

相对风险

风险%

优先级

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

角色

项目经理:指导全过程,解决冲突,并且在必要的时候调整其他参与者的方案。

重要的客户代表:提供受益和损失程度;

开发者代表:提供费用和风险程度。

设定优先级的步骤

  1. 在一个表格中列出要设定优先级的所有需求、特性或用例。所有项都必须在同一个抽象级别上,不要把个人需求和产品特性混合在一起。如果某些特性有逻辑上的联系,比如只有包括特性A的情况下才能实现特性B,那么只要列出驱动特性就可以了。这种模型可以容纳几十种特性。如果有太多的项,那么就把相关的特性归并起来。必要时,也可以在更详细的级别上进行第二轮分析。
  2. 估计每个特性提供给客户或业务得相关利益,并用1—9划分等级,1代表可以忽略的利益,9代表最大的价值。这些利益等级表明了与业务需求的一致性。客户代表是判断这些利益的最佳人选。
  3. 估计出如果没有把应该实现的特性包括到产品中,将会给客户或业务上带来的损失。使用1----9划分等级,1代表基本无损失,9代表严重损失。对于具有低利润低损失的需求只会增加费用,而不会增加价值。
  4. 总价值栏是相对利润和相对损失的总和。缺省情况下,利润和损失的权值是相等的。
  5. 估计实现每个特性的相对费用,是用1(低)----9(高)划分等级。
  6. 估计与每个特性有关的技术或风险相对程度,并用1(低)----9(高)划分等级。1级表示可以轻而易举地实现,9级表示需要极大地关注其可行性、缺乏具有专门知识的人员,或者使用不成熟的工具和技术。缺省情况下,利润损失、费用和风险的权值是相等的,但是调整。
  7. 利用公式计算出每个特性的优先级:优先级=价值%/(费用%*费用权值+风险%*风险权值)。
  8. 按照计算出的优先级降序排列表中的特性。处于列表最顶端的特性是价值、费用和风险之间的最佳平衡,因此必须具有最高的优先级。

     这种半定量方法并不严密,并且准确程度受到对每个项目的利润、损失、费用和风险的估算能力的影响。因此,只能把计算出来的优先级序列作为一种指导策略。开发者和客户应该讨论整个列表,从而在评价和优先级排序结果上达成共识。利用先前项目中一系列完整的需求,根据你自己的使用情况来校正这个模型。你可以适当调整每一因素的权值,直到所计算的优先级序列与后来对测试集中需求的重要性评估相吻合为止。

模式三---基于时间优先和业务价值优先

(以十分制打分为原则,综合得分高开发顺序优先)
  技术实现难易 客户价值 客户进度要求 业务逻辑
先后顺序
KPI项 比例 模块开发
顺序得分
模块1 7 8 7 10 技术实现难易 25% 7.8
模块2 5 4 6 8 客户价值 20% 5.75
模块3 8 8 4 3 客户的进度要求 35% 5.6
模块4 4 6 3 5 业务逻辑顺序 20% 4.25
模块5 3 7 6 4 比例合计 100% 5.05
模块6 4 6 3 5     4.25
模块7 4 5 2 7     4.1
模块8 6 7 8 4     6.5
模块9 4 3 2 7     3.7
  人工打分 人工打分 人工打分 人工打分      

你可能感兴趣的:(需求工程)