当我问起无数人,什么是迭代式开发时,人们总是抛来一副不屑的神情:“迭代开发!这还不清楚?就是按迭代的方式进行开发嘛,开发过程采用持续集成的方式。”但我再详细询问怎么进行开发,甚至谈到如何制订计划,以及计划前的分析整理时,人们却投来诧异与迷茫的神情:“啊!迭代开发这么复杂呢?”
所有对迭代式开发的实践与研究中,工作量评估往往是最令人头痛、最大的难题。当人们信心满满地决定尝试迭代开发时,工作量评估就让不少人望而却步了。工作量评估真的有这么难吗?我们应当怎样进行评估呢?
毫无疑问,工作量评估的第一步应该是工作分解。将整个系统划分为数个模块,每个模块划分为数个功能,每个功能划分为多项工作。再逐项分解工作,直到确保每项工作能够正确评估为止。一项为其10天以上的工作是不能够准确评估的,所以应当分解,直到分解为2~3天以内的小块工作。完成工作分解以后,最终合并每项工作的工作量,就是一个功能的工作量;合并每个功能的工作量,就是一个模块的工作量;合并每个模块的工作量,就是整个系统的工作量。
但是,即使将工作量适当地进行了分解,由于每个人对需求理解的不同,对设计方式的不同,技术熟练程度的不同,对同一项工作的工作量评估也是不同的。因此,要客观地评估工作量,应当采用多人共同完成的方式,而不是一个人全搞定。
首先,将分解好的各项工作,按模块按功能罗列在一个表格中,依次描述每项工作的业务需求和工作任务,使每一个参与评估的人都清楚每项工作。然后将工作量评估分配给多个人,保证每项工作都有2~3个人同时给予评估。
该阶段的评估应当是独立的,即每个人的评估结果都不会影响另一个人。当每个人完成了自己的评估以后,项目经理收集每个人的评估结果,组织会议进行讨论。
在工作量评估讨论会上,会议组织者将一项一项地讨论每项工作。对某项工作,如果参与评估的每个人评估的工作量差异都不大,说明大家对该项工作的分歧不大,选取最合适的一个工作量评估;如果某个人的评估与其他人差距较大,认真听取他的意见。也许他对该项工作的某个细节存在误解,但也可能该细节正是需求不明确的地方。停下对该项工作的评估,联系客户明确需求,之后才可以继续该项评估。
实际上,工作量评估也是一个迭代的过程:客户提出需求、评估工作量、发现需求不明确的地方、与客户确认、再评估……如此往复数轮,不仅工作量评估出来,业务需求也能逐渐明确下来。
另外,迭代开发的每个迭代期应当包括需求分析、设计、开发、测试。因此在工作量评估时应当全面地考虑进去,而不仅仅只是开发。
最后,当所有工作量被评估出来以后,是否就可以提交客户了呢?一个成熟的项目经理应当考虑更多。并非所有人在所有时间都能满负荷工作,生病、接收突发任务、人事变动,都可能影响项目进度。因此,适当地为每项工作增加一个备用时间的系数,提供一些富余的时间,可以确保项目过程更加稳健。
一次迭代式开发的研究:软件开发的风险
一次迭代式开发的研究:什么是迭代式开发
一次迭代式开发的研究:怎样进行迭代式开发
一次迭代式开发的研究:迭代开发从这里开始
一次迭代式开发的研究:准确的工作量评估
一次迭代式开发的研究:功能的优先级评估
一次迭代式开发的研究:一个迭代式项目计划
一次迭代式开发的研究:开始真正的工作
一次迭代式开发的研究:从容应对需求变更
一次迭代式开发的研究:需求变更的关键步骤
一次迭代式开发的研究:Where you are
(续)
分享到:
相关推荐
在软件工程领域,迭代开发是一种常见的项目管理方法,它将整个开发过程分为多个连续的周期,每个周期(即迭代)都包含设计、实现、测试和评估等阶段。迭代评估报告是这一过程中的关键文档,用于记录和分析每一轮迭代...
2. 逐步集成元素:迭代式方法中,集成可以说是连续不断的,每一次迭代都会增量式集成一些新的系统功能,要集成的元素都比过去少得多,所以工作量和难度都是比较低的。 3. 尽早降低风险:迭代化开发的主要指导原则...
2. **逐步集成元素**:迭代式方法中,每次迭代都会增加一部分新功能,因此集成工作变得更加连续和容易管理,降低了集成阶段的工作量和难度。 3. **尽早降低风险**:迭代化开发强调以架构为中心,早期迭代主要集中在...
整个迭代过程包含了需求、设计、实施(编码)、部署、测试等各种类型的开发活动,迭代完成之后需要对迭代完成的结果进行评估,并以此为依据来制定下一次迭代的目标。 迭代软件开发流程具有以下特点: 首先,迭代...
在IT行业中,迭代计划是软件开发过程中的关键环节,它为团队提供了清晰的工作路线图,确保项目的有序进行。本文将详细解析"第一次迭代计划1"的相关知识点,包括迭代计划的组成部分、任务分配、预期成果以及风险管理...
学生需要学习如何估计工作量,制定迭代计划,并确保团队成员对计划的理解一致。 6. **Scrum框架**:Scrum是敏捷开发的一种常见实践,包括产品 backlog(需求库)、sprint backlog(迭代待办事项)和冲刺(短期迭代...
总体而言,本次迭代评估显示团队在Spring Boot、MySQL、React Native、前端构建以及安全认证等方面取得了显著进展,为项目的后续开发奠定了坚实的基础。每个成员都积极贡献了自己的专业技能,且问题解决及时,反映出...
### 软件工作量及投资评估方法研究 #### 一、引言 随着信息技术的飞速发展及其在各行业的广泛应用,软件项目的工作量及成本评估已成为项目管理领域的重要议题。传统的评估方法往往依赖于历史数据和主观判断,这...
【第三次迭代评估报告V21】是对PassThemOn项目的第三次迭代进行的一次全面评估,评估日期为2021年8月6日。这次迭代主要涉及软件开发的多个关键环节,包括数据爬取、数据库管理、前端功能实现、后端服务优化以及...
在HIT(哈尔滨工业大学)的软件工程课程中,实验二是关于第一次迭代的实践环节,这通常涉及软件开发的敏捷方法,尤其是Scrum框架。在这个实验中,学生将体验到从需求收集、项目规划到实际编码和测试的全过程,旨在...
通过这种方式,可以更准确地估计工作量,并根据业务价值和紧迫程度确定优先级。 **用户故事的验收标准:** - **定义明确**:确保每个用户故事都有清晰的完成标准。 - **可验证**:通过测试用例验证用户故事是否已经...
在本次的第二次迭代评估报告中,我们可以提炼出多个关键知识点,涵盖了软件开发的不同阶段和方面。以下是基于标题、描述和标签的重要知识点的详细说明: 1. **前后端协作与代码合并**: - 项目组强调了每天多次...
#### 第一章:软件工程与迭代开发策略 **软件工程概述** 软件工程是一门旨在系统化、规范化地应用工程原理和技术于软件开发、运行与维护的学科。它侧重于通过管理与控制软件开发过程,提升软件产品的质量、开发...
- 逐步集成:通过增量式集成,减少一次性集成大量模块带来的压力,降低集成阶段的工作难度。 - 早期风险降低:早期迭代侧重于构建系统架构,确保核心需求的满足,从而快速降低项目风险。 - 提升团队士气:开发...
- Kanban:一种看板方法,它通过可视化工作流程来帮助团队高效地协作,并且通过限制同时进行的工作量来减少浪费。 - XP(极限编程):一种聚焦于提高软件质量和响应变化的敏捷开发方法,它倡导一系列工程实践,...
第四次迭代评估报告1展示了团队在开发过程中取得的进展,主要涵盖了百度云内容审核API的集成、数据库优化、单元测试、性能测试、前端界面改进、负载均衡、消息队列、安全认证、缓存优化和服务器部署等多个方面。...
这种算法通过多次迭代来逐步提高解码的准确性,每次迭代都会更新对输入序列的估计。 3. **C++编程**:C++是一种通用的、面向对象的编程语言,特别适合编写高性能的系统软件和应用。在实现离散信道容量计算或迭代...
【第三次迭代计划1】是关于一个名为"PassThemOn"的项目进行的第三次迭代开发的详细计划,旨在在2021年7月31日至8月6日11:59之间完成一系列任务。这次迭代的目标是提升项目的功能、性能和稳定性。以下是本次迭代计划...
- **迭代开发**:项目被划分为多个短周期的迭代,每个迭代都产生一个可工作的软件版本。 - **用户故事**:需求以用户的角度来描述,确保开发团队理解用户的真实需求。 - **增量交付**:每次迭代都会增加软件的...