一次迭代式开发的研究:功能的优先级评估
程序员文章站
2022-05-14 12:49:23
...
前面我们提到,迭代式开发最重要的两项前期分析就是工作量评估和优先级评估。工作量评估不仅能够确定整个项目的开发周期、成本预算,而且能够确定每项工作的开发周期,为工作的时间分配提供了依据。
但是,如此多的工作,谁先做谁后做,如何安排它们的先后顺序,则是由工作优先级来决定的。
迭代式开发的特点就是持续集成,也就是首先开发最重要、最基本的功能,而暂时忽略掉分支的、次要的功能。正因为如此,迭代式开发需求将优先级最高的功能放到前面最先完成,然后安排次优先级的,依此类推。总之,优先级评估决定了迭代式开发的工作安排。
那么,如何决定每个功能,每项工作的优先级呢?其决定因此很多,但通常来说,有两个因素是最基本的:是否靠近主营业务,以及用户使用是否频繁。
一个组织想上线一套管理系统,我们首先要分析它的主营业务。一个医院的主营业务是门诊系统,一个ERP的主营业务是进销存。越靠近这些主营业务的功能优先级越高。
同时,我们在需求分析过程中还应考察用户对各项功能的使用频率。一般来说,一个事物处理系统中,完成各项业务操作的功能必然使用频率最高,对各项业务操作的查询次之,而那些各种各样的统计分析报表则是频率最低的。频率高的功能优先级高,频率低的功能优先级低。
当然,决定优先级的因素还有很多,比如每项功能的成本与收益、紧急程度、战略意义等。我们可以绘制一个优先级表,一边罗列出所有影响因素,一边罗列出所有的功能,一项一项地分析,最终综合评估各项功能的优先级。
优先级评估的最重要的作用就是排列各项功能的开发先后顺序。前面我们提到,迭代式开发的最大特点就是迭代。整个软件开发过程被划分为数个迭代期,每个迭代期结束时应当提交一份可独立运行的程序,向用户演示。按照这样的思路,当软件开发第一个迭代期结束的时候,我们提交的是一套完整的程序,只是不够健壮,操作不方便,没有那些辅助的、次要的功能而已。这些剩余的功能,我们将在之后的迭代期逐渐完成。
根据这样的思路我们就明白了为什么我们需要进行优先级评估。将主营业务的、使用频繁的功能首先开发出来。在开发时,也主要考虑主流程而忽略分支流程。经过第一次迭代,一个可运行的、主要功能都有的软件雏形就出来了。之后,再在此基础上继续丰富、完善,直到整个项目的完成。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
但是,如此多的工作,谁先做谁后做,如何安排它们的先后顺序,则是由工作优先级来决定的。
迭代式开发的特点就是持续集成,也就是首先开发最重要、最基本的功能,而暂时忽略掉分支的、次要的功能。正因为如此,迭代式开发需求将优先级最高的功能放到前面最先完成,然后安排次优先级的,依此类推。总之,优先级评估决定了迭代式开发的工作安排。
那么,如何决定每个功能,每项工作的优先级呢?其决定因此很多,但通常来说,有两个因素是最基本的:是否靠近主营业务,以及用户使用是否频繁。
一个组织想上线一套管理系统,我们首先要分析它的主营业务。一个医院的主营业务是门诊系统,一个ERP的主营业务是进销存。越靠近这些主营业务的功能优先级越高。
同时,我们在需求分析过程中还应考察用户对各项功能的使用频率。一般来说,一个事物处理系统中,完成各项业务操作的功能必然使用频率最高,对各项业务操作的查询次之,而那些各种各样的统计分析报表则是频率最低的。频率高的功能优先级高,频率低的功能优先级低。
当然,决定优先级的因素还有很多,比如每项功能的成本与收益、紧急程度、战略意义等。我们可以绘制一个优先级表,一边罗列出所有影响因素,一边罗列出所有的功能,一项一项地分析,最终综合评估各项功能的优先级。
优先级评估的最重要的作用就是排列各项功能的开发先后顺序。前面我们提到,迭代式开发的最大特点就是迭代。整个软件开发过程被划分为数个迭代期,每个迭代期结束时应当提交一份可独立运行的程序,向用户演示。按照这样的思路,当软件开发第一个迭代期结束的时候,我们提交的是一套完整的程序,只是不够健壮,操作不方便,没有那些辅助的、次要的功能而已。这些剩余的功能,我们将在之后的迭代期逐渐完成。
根据这样的思路我们就明白了为什么我们需要进行优先级评估。将主营业务的、使用频繁的功能首先开发出来。在开发时,也主要考虑主流程而忽略分支流程。经过第一次迭代,一个可运行的、主要功能都有的软件雏形就出来了。之后,再在此基础上继续丰富、完善,直到整个项目的完成。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
下一篇: flex去掉panel边框