迭代开发,敏捷开发,区别【一种生命周期模型,项目管理方法集合】
区别之一: 迭代长度的不同
XP的一个Sprint的迭代长度大致为1~2周, 而Scrum的迭代长度一般为 2~ 4周.
区别之二: 在迭代中, 是否允许修改需求
XP在一个迭代中,如果一个User Story(用户素材, 也就是一个需求)还没有实现, 则可以考虑用另外的需求将其替换, 替换的原则是需求实现的时间量是相等的。 而Scrum是不允许这样做的,一旦迭代开工会完毕, 任何需求都不允许添加进来,并有Scrum Master严格把关,不允许开发团队收到干扰
区别之三: 在迭代中,User Story是否严格按照优先级别来实现
XP是务必要遵守优先级别的。 但Scrum在这点做得很灵活, 可以不按照优先级别来做,Scrum这样处理的理由是: 如果优先问题的解决者,由于其它事情耽搁,不能认领任务,那么整个进度就耽误了。 另外一个原因是,如果按优先级排序的User Story #6和#10,虽然#6优先级高,但是如果#6的实现要依赖于#10,则不得不优先做#10.
区别之四:软件的实施过程中,是否采用严格的工程方法,保证进度或者质量
Scrum没有对软件的整个实施过程开出养个工程实践的处方。要求开发者自觉保证,但XP对整个流程方法定义非常严格,规定需要采用TDD, 自动测试, 结对编程,简单设计,重构等约束团队的行为。因此,原作者认为, 这点上,XP的做法值得认同的,但是却把敏捷带入了一个让人困惑的矛盾, 因为xp的理念,结合敏捷模式,表达给团队的信息是“你是一个完全自我管理的组织, 但你必须要实现TDD, 结对编程, ...等等”
不难发现,这四个区别显见的是: Scrum非常突出Self-Orgnization, XP注重强有力的工程实践约束
作者建议, 在管理模式上启用Scrum, 而在实践中,创造一个适合自己项目组的XP(“start with Scrum and then invent your own version of XP.”)
SCRUM介绍
回顾一下我所认识的scrum,算是对自己知识的一个梳理。
scrum到底是什么,书中都说,它不是方法学,不是过程,而是一个框架。我并没有太理解这句话,所以先把scrum中都有些什么来说一下。
时间:scrum把时间分成一个个的sprint,也就是迭代周期。这个周期以2-6个星期为宜,但目前使用的最多的,是一个月,即四个星期。
每一个sprint的开始和结束都会有一个会议,叫做sprint计划和sprint演示,这很好理解,计划时计划做什么,演示时演示做完的东西。然后,并不是演示完了就完事的,sprint还有一个回顾会议,用来对这个sprint进行回顾,哪些做的好,哪些做的不好。这就是改进。
组成sprint的每天中,都会有每日例会,叫做每日站会,所以谓站会,即是时间非常短的会议,众所周知的,没完没了的会议总是让我们,厌倦不已。而这种站会,我想差不多是从这方面来考虑的。
人物:scrum中有scrum master, product owner和scrum团队。我理解scrum master就是project manager,而product owner就是product manager,团队还是那个团队,只是这里的团队,在规模上有一定的限制,它要求人员不要太多,不要太少,3-12个,通常4人团队比较多见,当然这个具体还得看实际情况来定。团队中开发测试人员比是1:1,即pair work。
scrum中的需求,采用story的形式进行描述,整个产品的需求,被列成product backlog,而每一个迭代周期要做什么,是在每个sprint的计划会议上进行挑选的,根据po对backlog标记的优先级,团队对其进行estimate并挑选出这个sprint里能完成的story,scrum master把它们列入计划中。
backlog有一个用于统计的东西,叫做燃尽图。从字面理解,就是燃烧掉多少的图,即sprint backlog中的被完成了多少,每完成一个story,就燃烧掉一个story。产品backlog有产品燃尽图,sprint有sprint燃尽图。
以上基本就是我了解的一些scrum知识点,其中忽略了工具部分和工作开展方式部分。因为采用什么工具或采用什么方式来实现,我认为是根据实际情况来定的,而且,在每个sprint回顾会议中,这些东西都会被改进。使用excel或白板来记录story或backlog并不重要,重要的是,你是否有story或backlog。
所谓框架,是不是就是一种模式?真的很想理解这里的这个词。有知道的,请赐教。
相关推荐
在软件工程领域,管理迭代化的软件开发项目是一种高效且灵活的方法,它与传统的瀑布模型相比,具有诸多优势。本文将深入探讨迭代化开发的核心概念、与瀑布模型的区别、软件项目的开发阶段、制定项目开发计划以及迭代...
2. **逐步集成元素**:迭代式方法中,每次迭代都会增加一部分新功能,因此集成工作变得更加连续和容易管理,降低了集成阶段的工作量和难度。 3. **尽早降低风险**:迭代化开发强调以架构为中心,早期迭代主要集中在...
迭代软件开发流程是一种新的软件开发方法,它不同于传统的瀑布式开发流程。在传统的瀑布式开发流程中,整个软件开发过程被划分为顺序相接的几个阶段,每个阶段都需要完成全部规定的任务(文档)后才能够进入下一个...
2. 逐步集成元素:迭代式方法中,集成可以说是连续不断的,每一次迭代都会增量式集成一些新的系统功能,要集成的元素都比过去少得多,所以工作量和难度都是比较低的。 3. 尽早降低风险:迭代化开发的主要指导原则...
2. 逐步集成元素:在迭代式方法中,集成能够说是连续不停,每一次迭代全部会增量式集成部分新系统功效,要集成元素全部比过去少得多,所以工作量和难度全部是比较低。 3. 尽早降低风险:迭代化开发关键指导标准就是...
5. 编码和修正生存周期:编码和修正生存周期是一种迭代式的软件开发模型。该模型将软件开发过程分为多个小的迭代,每个迭代都包括编码和修正两个阶段。 6. 阶段交付模型:阶段交付模型是一种基于瀑布模型的软件开发...
螺旋模型是以风险驱动的迭代式开发模型。变换模型是以形式化开发方法为基础的模型。 在软件开发过程中,CASE工具和环境也扮演着重要的角色。CASE工具可以支持软件开发的各个阶段,包括需求分析、设计、实现、测试等...
迭代软件开发流程是一种应对传统瀑布模型中问题的现代软件开发策略。传统的瀑布模型强调文档驱动,按照需求分析、设计、编码、测试和维护等顺序进行,这种线性方式容易导致需求变化带来的返工,项目延期和成本超支,...
迭代进化式开发(Rational Unified Process,RUP)是一种软件工程方法论,其核心在于将整个软件开发过程分解为多个较小的、可管理的迭代周期。在每个迭代中,团队完成一部分设计、编码和测试工作,从而逐步构建最终...
### 软件工程中的迭代与增量开发 #### 第一章:软件工程概述 软件工程是一门专注于系统化、规范化及可度量化的软件开发与维护领域的学科。...随着软件行业的不断发展,迭代与增量开发将成为主流的软件开发方式之一。
敏捷软件开发是二十世纪六十年代软件危机的应对措施,以前的软件开发过程是瀑布式的,强调过程控制和严格的阶段性,但是这种方法不能满足快速变化的市场需求。为了解决软件危机,引入了敏捷软件开发方法,旨在快速...
### 计算机软件开发规范_GB_8566-88 #### 一、标准概述 《计算机软件开发规范_GB_8566-88》是一项国家标准,旨在为软件开发过程提供一套完整的指导原则。该标准详细规定了软件开发过程中各个阶段的任务、实施步骤...
软件工程是计算机科学的一个分支,它致力于解决软件开发过程中的复杂性和不可预测性问题,确保软件项目的高效、可控和质量保证。本讲座旨在探讨软件工程的产生背景、基本要素、方法学以及各种软件开发过程。 首先,...
在软件开发领域,敏捷方法提供了一种与传统瀑布式方法不同的开发哲学和实践,更加注重快速反应变化和持续交付价值。敏捷软件开发方法的主要特点是迭代开发、紧密的客户合作、自我组织的团队和对变化的适应能力。 ...
课程通常会涵盖130分钟的内容,包括对不同软件开发模式的介绍,如瀑布式、迭代式、增量式、演化式和原型式开发,这些模式各有优缺点,适用于不同的项目需求和环境。 瀑布式开发是一种线性的开发模型,各阶段之间有...
软件开发流程是软件工程的核心部分,它指导着从概念到产品的整个过程。在这个初步的认识中,我们将探讨传统的瀑布式模型,以及更为现代的统一开发流程RUP(Rational Unified Process)。这两种模型对于理解软件开发...
- **螺旋模型**是一种迭代式的开发模型,包括多个循环的阶段,每个循环都包含需求分析、风险评估、实施和评估。 - **Rational Unified Process (RUP)** 是一种面向对象的开发过程模型,强调迭代和增量开发,以及以...
本文将对比分析瀑布模型(传统软件开发的典型代表)和敏捷开发中的迭代式开发、原型模型以及螺旋模型,探讨它们的优势和局限性。 1. **瀑布模型** - **概述**:瀑布模型由Winston Royce于1970年提出,是最早被广泛...