当我问起无数人,什么是迭代式开发时,人们总是抛来一副不屑的神情:“迭代开发!这还不清楚?就是按迭代的方式进行开发嘛,开发过程采用持续集成的方式。”但我再详细询问怎么进行开发,甚至谈到如何制订计划,以及计划前的分析整理时,人们却投来诧异与迷茫的神情:“啊!迭代开发这么复杂呢?”
所有对迭代式开发的实践与研究中,工作量评估往往是最令人头痛、最大的难题。当人们信心满满地决定尝试迭代开发时,工作量评估就让不少人望而却步了。工作量评估真的有这么难吗?我们应当怎样进行评估呢?
毫无疑问,工作量评估的第一步应该是工作分解。将整个系统划分为数个模块,每个模块划分为数个功能,每个功能划分为多项工作。再逐项分解工作,直到确保每项工作能够正确评估为止。一项为其10天以上的工作是不能够准确评估的,所以应当分解,直到分解为2~3天以内的小块工作。完成工作分解以后,最终合并每项工作的工作量,就是一个功能的工作量;合并每个功能的工作量,就是一个模块的工作量;合并每个模块的工作量,就是整个系统的工作量。
但是,即使将工作量适当地进行了分解,由于每个人对需求理解的不同,对设计方式的不同,技术熟练程度的不同,对同一项工作的工作量评估也是不同的。因此,要客观地评估工作量,应当采用多人共同完成的方式,而不是一个人全搞定。
首先,将分解好的各项工作,按模块按功能罗列在一个表格中,依次描述每项工作的业务需求和工作任务,使每一个参与评估的人都清楚每项工作。然后将工作量评估分配给多个人,保证每项工作都有2~3个人同时给予评估。
该阶段的评估应当是独立的,即每个人的评估结果都不会影响另一个人。当每个人完成了自己的评估以后,项目经理收集每个人的评估结果,组织会议进行讨论。
在工作量评估讨论会上,会议组织者将一项一项地讨论每项工作。对某项工作,如果参与评估的每个人评估的工作量差异都不大,说明大家对该项工作的分歧不大,选取最合适的一个工作量评估;如果某个人的评估与其他人差距较大,认真听取他的意见。也许他对该项工作的某个细节存在误解,但也可能该细节正是需求不明确的地方。停下对该项工作的评估,联系客户明确需求,之后才可以继续该项评估。
实际上,工作量评估也是一个迭代的过程:客户提出需求、评估工作量、发现需求不明确的地方、与客户确认、再评估……如此往复数轮,不仅工作量评估出来,业务需求也能逐渐明确下来。
另外,迭代开发的每个迭代期应当包括需求分析、设计、开发、测试。因此在工作量评估时应当全面地考虑进去,而不仅仅只是开发。
最后,当所有工作量被评估出来以后,是否就可以提交客户了呢?一个成熟的项目经理应当考虑更多。并非所有人在所有时间都能满负荷工作,生病、接收突发任务、人事变动,都可能影响项目进度。因此,适当地为每项工作增加一个备用时间的系数,提供一些富余的时间,可以确保项目过程更加稳健。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
分享到:
相关推荐
车险横向扩展项目迭代二在9月28日上线后,由于L1程序问题导致部分续保单报价错误,造成一次重大故障,经过开发和测试部门对整体情况回顾检视,分析总结情况如下: 一、 问题影响 经过事后核实,初步分析受影响的单量...
它通过在需要的地方迭代添加新点来工作。 它对于计算量大的函数(例如涉及求解微分方程)特别有用。 例子: % 使用默认选项[xi, yi] = 自适应(@(x) sin(x)*sin(2*x), [-20,20]); % 显式提供初始数组一个细化选项f =...
在软件行业估算工作量、成本 (EDC) 和持续时间是一个麻烦的过程。 努力本身负责在评估EDC时遇到麻烦。 在任何软件评估过程中,最突出的进步是表征和理解要评估的框架。 软件成本估算算法方法是类比估算,专家判断法...
·一个软件项目组如何对工作量、成本和项目时间进行可靠的评估? ·一个组织何时应该建造软件?何时应该获取软件?何时应该请求外 援? ·采用什么技术评估来影响项目成功的风险? ·一个软件项目管理者如何为特定...
重点是快速的迭代优化和对跨域架构的评估和验证。用功能性方法来介绍和开发系统架构通常是基于如EAST-ADL或SysML等UML(统一建模语言)衍生的特定域的语言。同时,用各种形式和抽象层级(例如功能、活动、序列和/或...
《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...
首先,ProductOwner根据客户的需求编写ProductBacklog,然后召开计划会议,评估各项功能的相对工作量,并确定Sprint的愿景和目标,生成SprintBacklog。然后,在Sprint(即迭代)的开发过程中,召开每日会议,Scrum...
如果不符合该标准,则此陈述将成为预测剩余测试工作量的基础。 基于代码的测试覆盖 基于代码的测试覆盖评测测试过程中已经执行的代码的多少,与之相对的是要执行的剩余代码的多少。代码覆盖可以建立在控制流...
1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数...
《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...
掌握正确的策略可以帮助我们避免常见的陷阱,并提高我们的工作效率。在本书中,C++专家Rob Murray就与我们分享了他宝贵的经验和建议,以帮助初中级C++程序员得到进一步的提高。 在本书中,作者大量采用了实际开发中...
循环-缓冲和迭代)研究的多,而数据复杂性构造不足。 同构现象。CPU指令集合可以说是硬件直接实现的软件。软件帝国从这里提取软件精神,并升华它。从硬件的角度,从寄存器和指令执行流程,体现出的是变量和迭代...
除了开发成本和工作量之外,我们还需要基准测试来测试推理的鲁棒性,性能和准确性。 这些基准应该具有多种规模,从快速开发周期的玩具MNIST规模基准到真实世界应用真实的大型数据基准(捕获其约束)。 我们的BDL...
评估产品机会:产品机会评估对后期产品设计及迭代都至关重要,甚至说决定了一个产品的未来和核心理念。 分析解决问题:通过必要的数据试验才能追溯到问题源头,进而制定合理的解决方案,彻底解决问题。 预测优化...
或许在大众的眼中,你的App只是个初出茅庐的无名之辈,既没有大牌App高大上,也没有傲人的下载量,但你有过硬的内在产品,一直怀揣梦想的你希望用别人百倍的工作量完成屌丝逆袭高富帅的那一天。 于是要啥啥没有的App...
PSO算法和遗传算法(Genetic Algorithm,GA)类似,也是一种基于迭代的优化工具,系统初始化为一组随机解,通过某种方式迭代寻找最优解。但PSO没有GA的“选择”、“交叉”、“变异”算子,编码方式也比GA简单。并且...
容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的...
该库包含跨TCGA癌症的肿瘤大量Hibernate量化的工作流程。 目录 Apobec富集分析 该文件夹包含用于确定肿瘤大量Hibernate和衰竭程序如何预测APOBEC突变特征丰富的代码。 ApobecEnrich_define.R:运行tSNE和期望最大化...