一次迭代式开发的研究:迭代开发从这里开始
程序员文章站
2022-03-02 18:29:19
...
古人云:“运筹帷幄之中,决胜千里之外。”一次成功的软件开发,制订完善的项目计划是决定性的第一步,迭代式开发更是如此。前面我们提到,迭代式开发与传统开发方式差异不小,迭代式开发其过程更加复杂,协调各方协同工作的步骤也就更多。
迭代式开发的特点就是迭代,在每个迭代期都包含需求分析、设计、开发、测试。因此,迭代式开发从一开始就要求开发中的各方人员,需求分析员、设计师、开发人员与测试人员,几乎同时开工。如何组织协调呢?另外,整个开发过程被划分为一个又一个的迭代期,那么,如何将所有的工作合理分配到每个迭代期里呢?这些都是一个迭代式开发项目计划必须考虑的问题。
那么,我们应当如何制订迭代式开发的项目计划呢?制订计划前的分析是其关键之所在。
我们采用迭代式开发的目的就是希望我们的开发获得成功。一次成功的软件开发主要需要解决的是三个问题:“What is needed, on time, on budget.”也就是需求、时间与经费。客户看待一套软件是否成功,就是三个标准:功能是否满足需求,是否按期交付,耗费的经费是否在预算内。功能是否满足需求,是在迭代开发整个过程中逐步解决的问题,而开发周期与经费预算却是软件开发初期的项目计划中就必须考虑清楚的问题。
工作量评估是预计开发周期与人员投入、制订经费预算的关键步骤。将软件划分为若干模块,将模块划分为若干功能,再将功能划分为若干项工作,仔细评估每项工作的工作量。合计每一项工作的工作量,就是整个项目的工作量。但实际的工作量评估并非如此简单,后面将会深入讨论。
工作量评估的直接作用就是评估开发周期与人员投入。一般认为开发周期与人员投入成比例,其实是一种误解。增加人员投入并非能够缩短开发周期。随着人员的增加,培训、沟通、协调的成本都将会增大。用户期望的开发周期与可以投入的人员是一对矛盾,最终需要寻找一个平衡点,当然这也是与客户反复讨论的过程。有时,当这对矛盾无法协调时,分期开发也许是一个不错的选择,毕竟客户始终是希望软件系统尽可能早地上线使用。最后,当开发周期与人员投入确定下来时,经费预算也就是计算出来了。
为每一项工作评估工作量的另一个重要作用就是将工作合理分配到各个迭代期中。迭代开发,迭代期就如同一个又一个的格子,而评估后的每一项工作就如同一颗又一颗大小不一的石子,被投放到每一个格子中。而它们孰先孰后,则是由工作的优先级决定的。靠近主营业务的、用户使用频率高的,优先级高;远离主营业务的、用户使用频率低的,优先级低。优先级决定了工作安排的顺序,它是制订计划前分析的另一个重要内容。
总之,迭代开发始于完备的项目计划,完备的项目计划的关键在于计划制订前的分析,也就是分解后的工作项目列表,及其工作量评估与优先级评估。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
迭代式开发的特点就是迭代,在每个迭代期都包含需求分析、设计、开发、测试。因此,迭代式开发从一开始就要求开发中的各方人员,需求分析员、设计师、开发人员与测试人员,几乎同时开工。如何组织协调呢?另外,整个开发过程被划分为一个又一个的迭代期,那么,如何将所有的工作合理分配到每个迭代期里呢?这些都是一个迭代式开发项目计划必须考虑的问题。
那么,我们应当如何制订迭代式开发的项目计划呢?制订计划前的分析是其关键之所在。
我们采用迭代式开发的目的就是希望我们的开发获得成功。一次成功的软件开发主要需要解决的是三个问题:“What is needed, on time, on budget.”也就是需求、时间与经费。客户看待一套软件是否成功,就是三个标准:功能是否满足需求,是否按期交付,耗费的经费是否在预算内。功能是否满足需求,是在迭代开发整个过程中逐步解决的问题,而开发周期与经费预算却是软件开发初期的项目计划中就必须考虑清楚的问题。
工作量评估是预计开发周期与人员投入、制订经费预算的关键步骤。将软件划分为若干模块,将模块划分为若干功能,再将功能划分为若干项工作,仔细评估每项工作的工作量。合计每一项工作的工作量,就是整个项目的工作量。但实际的工作量评估并非如此简单,后面将会深入讨论。
工作量评估的直接作用就是评估开发周期与人员投入。一般认为开发周期与人员投入成比例,其实是一种误解。增加人员投入并非能够缩短开发周期。随着人员的增加,培训、沟通、协调的成本都将会增大。用户期望的开发周期与可以投入的人员是一对矛盾,最终需要寻找一个平衡点,当然这也是与客户反复讨论的过程。有时,当这对矛盾无法协调时,分期开发也许是一个不错的选择,毕竟客户始终是希望软件系统尽可能早地上线使用。最后,当开发周期与人员投入确定下来时,经费预算也就是计算出来了。
为每一项工作评估工作量的另一个重要作用就是将工作合理分配到各个迭代期中。迭代开发,迭代期就如同一个又一个的格子,而评估后的每一项工作就如同一颗又一颗大小不一的石子,被投放到每一个格子中。而它们孰先孰后,则是由工作的优先级决定的。靠近主营业务的、用户使用频率高的,优先级高;远离主营业务的、用户使用频率低的,优先级低。优先级决定了工作安排的顺序,它是制订计划前分析的另一个重要内容。
总之,迭代开发始于完备的项目计划,完备的项目计划的关键在于计划制订前的分析,也就是分解后的工作项目列表,及其工作量评估与优先级评估。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)