一、根据发布目标分析需求,把需求分析成独立的故事,初步的分析可以是粗略的,随着需求的不断深入刻意对故事进行整合或者切割。
要注意的是分析出来的需求尽量在发布目标的范围之内,超出发布目标的需求应该尽量避免过深分析。
所谓的发布目标是确定了这个版本可以让用户满意的条件。
故事模式:做为(用户角色),我可以(做什么),以便(业务价值)。后面的业务价值在比较简单或者大家都比较明确的时候刻意不需要注明。
当前团队实践推行方法:
第一阶段,这个分析工作开始由PM进行收集,整理和分析。
第二阶段,当大家都为用户故事的方式接受以后,采用需求讨论的方式来明确和分析用户故事。
二、对分析的故事进行相对估计,估计出来的故事点是对用户故事和复杂度的无单位估计值,使用的数值大小本身没有绝对意义,只有相对于其他故事规模的相对意义。
比如,用户登录这个用户故事的估计值是2,那么做为同等开发规模的用户推出,这个用户故事的估计只也因该是2。
当前团队实践推行方法:
第一阶段,这个估计的工作暂时由pm来负责完成,但是由于一个人的估计肯定会有偏差,所以在估计完成之后需要进行调查来进行修正
第二阶段,用估计扑克会议来统一的对用户故事进行估计,当主持人拿出一个新的用户故事之后,大家给出自己对这个故事使用扑克打分,然后取出平均值,对差异较大的估计值要给出解释,来消除对用户故事的错误理解。估计扑克会议的实践不超过1个小时。
三、准备产品调查,对用户故事进行功能存在,和功能缺失性的产品调查,然后根据调查结果对用户故事进行划分,划分成3类,基本需求,线性需求,线性需求。
此外还有反对的需求,存在疑问的需求,无所谓的需求3种类型的需求,这些需求将根据进一步的发展进行确认。
当前团队的实践推行办法:
第一阶段,由pm发出调查问卷在参与到项目的开发团队,测试团队,技术支持团队来进行调查,然后汇总答案根据存在问题和缺失问题的答案,对用户故事进行定性
第二阶段,由pm发出调查问卷扩展到相关的用户群体中进行调查,然后汇总答案根据存在问题和缺失问题的答案,对用户故事进行定性
四、确定发布规划,首先要确定的是迭代周期的长度,以周为单位,然后估计出每个迭代周期团队的速度。然后可以从用户故事池中选择出合适的用户故事来填充到第一次和第二次的迭代周期中。其余的暂时可以先不用填充,随着每次迭代周期的完成来对发布计划进行更新。最后根据估计的速度和需要开发的故事来确定需要几个迭代周期,并最终有几个迭代周期来确定需要开发的时间周期。发布计划可以以功能来驱动进行,也可以以日期来驱动进行。
发布规划的特点,以月做为时间范围,规划对象是用户故事,估计的单位是故事点
当前团队的实践推行办法:
第一阶段,使用1周做为迭代周期,开始时团队速度使用估计的方式做出简单估计,根据每个周期结束后的团队速度再进行发布计划的调成。迭代周期内用户故事的完成暂时以开发完成做为标准。
第二阶段,使用2周做为迭代周期,可以使用原有的历史速度做为团队速度,多出的一周时间做为测试修复时间,迭代周期内用户故事的完成以测试完成,完整的功能提交做为标准,并在开发过程中熟练使用单元测试来进行确保功能的完整完成。
五、确定迭代规划,根据填充到迭代周期内的用户故事来分解成工作任务,工作任务包括设计工作,不同层次的开发工作,调试工作和测试工作等等具体的任务,然后对任务进行估计,这时候估计的单位以理想工作小时做为单位。比如,设计需要两个人小时,开发持久层需要1个人小时,调试持久层需要半个人小时,开发业务层需要2个人小时,调试中间层需要1个小时等等。。。
然后根据每个故事的人小时和这个迭代周期内参与的人数,以及每个人所能参与的实际有效时间(注意有效时间约为每天6小时,需要考虑到会议,讨论,头脑休息等非理想工作时间)来判断这个迭代周期的填充是否足够,如果不够则再加入一个用户故事,如果超出则移出一个用户故事到下一个迭代周期中。
迭代规划的特点,以周做为时间范围,规划对象是工作任务,估计的单位是理想小时
当前团队的实践推行办法:
第一阶段,使用速度驱动的方法来进行迭代规划,即确定了本次迭代的速度,然后选择用户故事扩展成任务,对任务进行估计。
第二阶段,使用承诺驱动的方法来进行迭代规划,即提出一个故事,把故事扩展成任务,对任务进行估计,让小组承诺是否可以完成这个故事,如果可以在迭代周期内完成则加入这个故事,如果不能完成则推迟到下一个迭代走起。
六、迭代开始,在迭代开始时召开迭代启动会,分配迭代周期内的用户故事和工作任务到个人,每个工作任务必须精确到个人,同一个用户故事的不同工作任务可以根据情况适当分配给不同的人来完成。
当前团队的实践推行办法:
第一阶段,任务分配给个人,通常一个故事的任务分配给同一个人。
第二阶段,任务分配给结对,通常一个故事的任务分配给同一个结对。
七、迭代进行,每日早对昨日完成的工作任务和问题进行汇报,并且同时计划今天需要完成的工作任务,对于迭代过程中的进度和问题进行及时的观察和调整,要求每个人完成某个任务之后要及时的告知整个小组知道(qq群的方式最为快捷)。
当前团队的实践推行办法:
第一阶段,由pm及时地对当日工作进行询问。并负责把遇到的问题跑出来进行解决。
第二阶段,小组成员主动地对已经完成的任务进行汇报,并及时把自己遇到的问题抛出来。
八、迭代结束,确认本次迭代完成的用户故事,对于完成一部分的用户故事计算到下一次迭代中。并对本次迭代的过程资产进行总结,形成FAQ方式的文档进行规整。
同时根据新的需求情况,资源情况,已完成功能的回馈,以及开发中遭遇的不确定性问题,对发布规划和迭代规划作出调整。
当前团队的实践推行办法:
第一阶段,使用学习网站,或者博客等方式对经验进行记录。
第二阶段,使用完善的skills对经验进行记录,可以方便的组织成培训文档,并方便的进行搜索,查找。
九、迭代测试,为了保证用户功能完整的提交,每个用户故事开发完成之后都要对该用户故事进行测试,然后在针对开发中出现的问题进行修复,以便完整的完成一个用户故事。
第一阶段:测试迭代周期和开发迭代周期分开。
每次迭代开始阶段由pm告知开发组需要开发的和修复的的用户故事,同时告知测试组本次迭代需要测试的故事,需要准备的故事,需要复测的故事。
并在分配任务时,把修复故事的工作规划到本次迭代中来。
每次开发完成的用户故事点算作本次迭代的速度
| 迭代1 | 迭代2 | 迭代3 | 迭代4 | 迭代5 |
测试 | 准备故事1,2 | 测试故事1,2 准备故事3,4 | 测试故事3,4 准备故事5,6 | 复测故事1,2 测试故事5,6 准备故事7,8 | 复测故事3,4 测试故事7,8 准备故事9,10 |
开发 | 开发故事1,2 | 开发故事3,4 | 修复故事1,2 开发故事5,6 | 修复故事3,4 开发故事7,8 | 修复故事5,6 开发故事9,10 |
第二阶段:测试迭代周期和开发迭代周期合并。
每次迭代开始阶段由pm告知开发组需要开发的故事,同时这些故事也是测试组需要准备测试的故事。要求这些故事分解的工作任务中要包括测试工作和修复工作。
每次测试完成的用户故事点算作本次迭代的速度
| 迭代X |
测试 | 准备故事1,2,3,4 | 测试故事1,2,3,4 | 复测故事1,2,3,4 |
开发 | 开发故事1,2,3,4 | 修复故事1,2,3,4 | 完成故事1,2,3,4 |
十、发布结束,对本次发布中完成的用户故事进行会议总结:
1确定最终完成的用户故事,以及花费的迭代周期
2通过计算得到一个团队的人平均速度,这个速度做为下次发布规划的参考
3分析哪些用户故事的估计出现了失误,以及出现失误的原因是什么。
4最初的发布版本在市场上有了初步反馈信息之后,可以延长1个迭代周期用来做为发布版本的反馈收尾。
分享到:
相关推荐
敏捷项目管理经验分享 敏捷项目管理是指通过将敏捷方法ology应用于项目管理中,以提高项目的开发效率和质量。本文将分享在JIAR中使用敏捷进行项目管理的经验,包括敏捷研发管理流程的操作方法和步骤。 一、敏捷...
**敏捷项目实践难点** 1. **沟通**:保持团队沟通的畅通,每日站会是关键,用于同步进度和解决问题。 2. **进度把控**:通过单元测试、集成测试和系统测试来确保进度控制。 3. **拥抱变化**:在每次变化后,都需要...
通过一系列案例研究和实践经验分享,本文将详细介绍Scrum的核心概念、实践步骤以及在不同规模团队中的应用策略。 #### 二、Scrum基础概念 1. **产品待办事项列表(Product Backlog)**:一个动态更新的需求列表,...
敏捷项目管理框架是一种高效、灵活的方法论,旨在适应快速变化的需求和环境,特别是在软件开发领域。Scrum、FDD(特性驱动开发)和XP(极限编程)是敏捷方法中的三种重要实践,它们各自有着独特的理念和流程,但在...
本实践着重介绍了如何利用DevSuite进行敏捷开发的具体步骤与管理策略。 #### 二、Sprint计划与任务分配 - **故事优先级排序**:根据需求紧急程度,将故事(用户需求)按优先级顺序排列,确保团队首先处理最重要的...
使用场景及目标:为公司内开展互联网敏捷项目提供标准化操作流程和最佳实践指导,旨在提高团队协作效率和项目执行力,确保项目顺利进行和按时高质量交付。 其他说明:文档不仅阐述了各步骤的操作流程,还提供了相关...
4. **需求分析与使用方案**:在敏捷项目中,需求不再是固定的,而是通过用户故事和产品待办事项列表动态管理。团队需要不断与客户沟通,确保需求的准确性和实用性。 5. **设计规范与界面交互**:设计规范需详细且...
5. **工具集成**:选择和整合适合敏捷开发的工具,如敏捷项目管理工具,以支持团队协作和透明度。 6. **客户参与**:敏捷方法强调与客户的紧密合作,需确保客户在整个开发过程中积极参与,提供反馈,以确保产品满足...
本文基于《敏捷测试的实践和理论》一文,深入探讨敏捷测试的概念、实质及其在实际项目中的实施流程,旨在为软件测试从业者提供有价值的参考。 #### 敏捷测试概览 ##### 敏捷测试的概念 敏捷测试是在敏捷开发模式...
本文将深入探讨敏捷项目管理的关键概念、实施步骤以及其在现代企业中的应用。 ### 敏捷开发方法概述 敏捷开发方法源于对传统项目管理方法(如CMM、RUP、MSF)的反思和改进,尤其在应对快速变化的市场和技术环境...
- **概念**:将项目分解为一系列短周期的迭代,每个迭代都包含分析、设计、实现、测试和反馈等完整步骤。 - **实践**:建议迭代周期为4周左右,避免过长导致适应性降低,过短则可能增加管理成本。保持迭代时间点稳定...
"JAVA毕业设计指南与项目实践.zip" 提供了一份宝贵的资源,对于即将进行毕业设计的学生来说,无疑是一份极有价值的学习资料。 该压缩包中的核心文件 "JAVA毕业设计指南与项目实践.pdf" 可能涵盖了以下几个方面: 1...
在软件开发领域,一个完整的项目实践过程包含了多个关键阶段,这些阶段构成了软件开发的生命周期。以下是对这个"项目实践培训 详细介绍软件开发全过程"的详细解读: 1. 需求分析:这是软件开发的第一步,也是最重要...
- **敏捷开发实践**:敏捷开发实践中包含了多种项目管理框架,例如Scrum、Extreme Programming (XP)和Kanban等。这些方法论各有特点,但共同的目标都是提高软件开发的质量和效率。 - **敏捷开发优势**:敏捷开发...
书中有详细阐述这两种方法的实施步骤和最佳实践。 在模式方面,书中的“清洁代码”概念尤为突出,Uncle Bob提倡编写易于理解、可维护的代码,强调代码质量对于软件长期成功的重要性。他提出了诸如“代码即文档”、...
### 软件工程与软件敏捷开发实践 #### 第1章 软件工程概述 **软件工程**是一种系统化、规范化、可量化的软件开发方法。它关注于软件产品的设计、构建、测试和管理等方面,旨在提升软件开发的效率与质量。 - **...
特别是在软件开发行业,敏捷项目管理的引入不仅改变了项目执行的步骤,而且重塑了团队协作的方式。《项目管理指导手册V2.0》的发布,正是为了解读和指导如何在变化多端的商业环境中,有效地实施敏捷项目管理。 在...