SCRUM与XP区别

敏捷开发

1、敏捷的含义

敏捷开发是一种以人为核心迭代增量的开发方法。在敏捷开发中,把一个大项目分为多个相互联系,可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

上面提到3个关键词,下面做个阐述:

以人为核心:众所周知在瀑布开发模型中,会出现大量的文档,开发人员往往都是根据文档进行开发,一切以文档为依据;而敏捷开发倡导少写文档,注重人与人面对面的交流,用沟通解决项目问题,所以它强调以人为核心

迭代开发:是指把一个复杂且开发周期很长的大任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代;同时每一次迭代都可以生产或开发出一个可以交付的软件产品

增量开发:是指软件每个发布的版本,都会新增一个用户可以感知的完整功能。可以理解成,按照新增功能来划分迭代

2、如何敏捷?

上面阐述的敏捷更多的是一种理念,但要实现敏捷开发有哪些实现方式呢?常见方式有两种Scrum和XP,在讲解具体步骤前,先说说它们的区别。

网上随处可查的区别是:Scrum偏重于过程,XP则偏重于实践。简单解释一下这句话,Scrum是从管理上,流程上设计一些方法来定义敏捷。XP是从具体的细节和某一工作的实现方法上深度挖掘了敏捷思想。区别详细如下:

1. Scrum 和 XP 团队都在迭代的方式下工作,但Scrum的周期一般是从两周到一个月,XP的周期是一两周

2. Scrum 团队在一个sprint中是不接受任何任务变更的。而XP的团队在一个迭代中,如果新的用户故事跟原来的规模和大小差不多,可以用新的进行替换。

3. XP 团队会严格按照任务的优先级来工作。所有的任务都被客户划分了优先级,团队都被要求在该优先级下工作。但scrum团队的人员会自己决定他们以何种顺序来完成所有的任务。

4. Scrum并没有定义任何工程实践的方法,它只是提供了一个实践的框架给你。但XP,极限编程却会给你这样的一些东西。比如测试驱动开发, 自动化测试,结对编程,简单设计,重构等等。

下面我们分别来讲讲Scrum和XP

Scrum流程

项目经理必须学会敏捷开发和DevOps

 

Scrum步骤:

1、我们首先需要确定一个Product Backlog(按优先级排列的一个产品需求清单),这个是由产品经理负责的;

2、Scrum 团队根据Product Backlog清单,做工作量的预估和计划;

3、有了Product Backlog清单,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story(用户故事)作为本次迭代完成的目标,这个目标的时间周期是1-4周,然后把这个Story进行细化,形成一个Sprint Backlog;(PS:Sprint 表示一次迭代)

4、Sprint Backlog是由Scrum 团队去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成);

5、在Scrum 团队完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图,见下图);

6、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本;可使用工具实现提交、更新、测试和发布;

7、当一个Story完成,也就是Sprint Backlog被完成,也就表示一次迭代完成,我们就要进行 Srpint Review Meeting(演示会议),也称为评审会议,每一个Scrum 团队的成员都要演示自己完成的软件产品;

8、最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,总结并讨论改进的地方,放入下一轮Sprint的产品需求中;

项目经理必须学会敏捷开发和DevOps

 

XP敏捷实践

XP即极限编程(Extreme Programming的缩写)。极限编程是一种强调团队工作的工作方式,它是多种敏捷方式的一种。与Scrum不同的是,Scrum是一种工作方式的框架,从组织到团队的设计,而XP关注的是具体的工程技术实践。XP旨在通过工程实践的合理搭配使用,使开发者们能够自信地响应客户需求。强调反馈环机制,客户与研发团队之间的反馈环,测试与开发的反馈环,具体代码实现跟单元测试之间的反馈环,结对之间的反馈环。极限编程认为在软件研发过程中,变化是无所不在的,人们不应回避变化,而应该适应变化,通过对反馈去适应变化。

项目经理必须学会敏捷开发和DevOps

 

XP工程实践:

1、小型发布(Small Release)

每一次发布的版本应该尽可能的小,当然前提条件是每个版本有足够的商业价值,值得发布。由于小型发布可以使得集成更频繁,客户获得的中间结果也越频繁,反馈也就越频繁,客户就能够实时地了解项目的进展情况,从而提出更多的意见,以便在下一次迭代中计划进去。以实现更高的客户满意度。

2、计划游戏/规划策略(The Planning Game)

计划游戏的主要思想就是先快速地制定一份概要的计划,然后随着项目细节的不断清晰,再逐步完善这份计划。计划游戏产生的结果是一套用户故事及后续的一两次迭代的概要计划。“客户负责业务决策,开发团队负责技术决策”是计划游戏获得成功的前提条件。也就是说,系统的范围、下一次迭代的发布时间、用户故事的优先级应该由客户决定;而每个用户故事所需的开发时间、不同技术的成本、如何组建团队、每个用户故事的风险,以及具体的开发顺序应该有开发团队决定。

3、现场客户(On-site Customer)

为了保证开发出来的结果与客户的预想接近,XP方法论认为最重要的需要将客户请到开发现场。因此,在项目中有客户在现场明确用户故事,并做出相应的业务决策,对于XP项目而言有着十分重要的意义。

4、简单设计(Simple Design)

这个实践看上去似乎很容易理解,但却又经常被误解,许多批评者就指责XP忽略设计是不正确的。其实,XP的简单设计实践并不是要忽略设计,而且认为设计不应该在编码之前一次性完成,因为那样只能建立在“情况不会发生变化”或者“我们可以预见所有的变化”之类的谎言的基础上的。

5、结对编程(Pair programming)

所有的软件都是由两个程序员、并排坐在一起在同一台机器上完成的。

6、测试驱动开发(Testing)

编写单元测试是一个验证行为,更是一个设计行为。编写单元测试避免了相当数量的反馈循环,尤其是功能验证方面的反馈循环。程序员以非常短的循环周期工作,他们将预先编写一个自动化测试脚本,然后再编码使之通过。

7、重构(Refractoring)

重构是一种对代码进行改进而不影响功能实现的方式,XP需要开发人员在闻到代码的坏味道时,有重构代码的勇气。重构的目的是降低变化引发的风险,使得代码更优雅。

8、持续集成(Continuous Integration)

持续集成的含义则是要求XP团队每天尽可能多次地做代码集成,每次都在确保系统运行的单元测试通过之后进行。这样,就可以及早地暴露、消除由于重构、集体代码所有制所引起的错误。一个人commit后,其它所有人都有责任进行代码集成工作。

9、代码集体所有权(Collective Code Ownership)

任何结对的程序员都可以在任何时候改进任何代码。没有程序员对任何一个特定的模块或技术单独负责,每个人都可以参与任何其它方面的开发。

10、编码规范(Code Standards)

XP方法论认为拥有编码标准可以避免团队在一些与开发进度无关的细节问题上发生争论。

11、系统隐喻(System Metaphor)

它是系统的未来影像,将整个系统联系在一起的全局视图;它使得所有单独模块的所属位置和外观变得明显直观。如果模块的外观与整个隐喻不符,那么你就知道该模块是错误的。

12、可持续的速度/每周40小时工作制(40-hour Week)

加班早已成为开发人员的家常便饭,也是管理者最常使用的一种策略,而XP方法论认为,加班最终会扼杀团队的积极性,最终导致项目失败。团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作,他们保存精力,他们把项目看作是马拉松长跑,而不是全速短跑。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java编写程序时出现警告:Resource leak: 'xxx' is never closed 解决方案

菜鸟新手,学校在教Java,作业里面要求我们编程实现运算一个简单的程序,程序写好了,却发现冒出一个警告,如下图: 百度了一下,意思是申明了名为a的数据输入扫描仪(Scanner&#xff09…

ASP.Net请求处理机制初步探索之旅 - Part 1 前奏

开篇:ASP.Net是一项动态网页开发技术,在历史发展的长河中WebForm曾一时成为了ASP.Net的代名词,而ASP.Net MVC的出现让这项技术更加唤发朝气。但是,不管是ASP.Net WebForm还是ASP.Net MVC在请求处理机制上大部分都是相同的&#xf…

ASP.Net请求处理机制初步探索之旅 - Part 2 核心

开篇:上一篇我们了解了一个请求从客户端发出到服务端接收并转到ASP.Net处理入口的过程,这篇我们开始探索ASP.Net的核心处理部分,借助强大的反编译工具,我们会看到几个熟悉又陌生的名词(类):Http…

REVERSE-COMPETITION-0xGame2021

REVERSE-COMPETITION-0xGame2021Signin: User FriendlyInstallerOur Compilation StoryPacketRandom ChaosNeverlandRoundaboutDespacitoSecret BaseMazeZero ThreeMirrorThread_TLS茶谈室JunkertownSignin: User Friendly 64位exe,ida打开,在main函数中…

ASP.Net请求处理机制初步探索之旅 - Part 3 管道

开篇:上一篇我们了解了一个ASP.Net页面请求的核心处理入口,它经历了三个重要的入口,分别是:ISAPIRuntime.ProcessRequest()、HttpRuntime.ProcessRequest()以及HttpApplication.Init()。其中,在HttpApplication的Init(…

PWN-COMPETITION-GeekChallenge2021

PWN-COMPETITION-GeekChallenge2021check in恋爱小游戏ret2xxone恋爱小游戏2.0easyfmteasycanaryret2babypwn777check in 66s内解答200道四则运算的题目即可getshell 参与运算的数和运算符都会打印,直接写脚本即可 # -*- coding:utf-8 -*- from pwn import * cont…

ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期

开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计。本篇,我们来看看WebForm模式下的页面生命周期。 (1)Par…

REVERSE-COMPETITION-GeekChallenge2021

REVERSE-COMPETITION-GeekChallenge2021Re0刘壮桌面美化大师买ActivityRe1调试珍惜生命new_languageeasypycBrute_forcewin32wasm猜拳have_a_teaRe0 64位exe,ida打开,main函数中没发现什么重要的逻辑 ShiftF12打开字符串窗口,直接找到flag明…

ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程

开篇:上一篇我们了解了在WebForm模式下一个Page页面的生命周期,它经历了初始化Init、加载Load以及呈现Render三个重要阶段,其中构造了页面控件树,并对页面控件树进行了大量的递归操作,最后将与模板结合生成的HTML返回给…

REVERSE-PRACTICE-CTFSHOW-6

REVERSE-PRACTICE-CTFSHOW-6真的是签到批量生产的伪劣产品来一个派森snake真的是签到 附件是一个压缩包,解压需要密码,但是题目没有给到解压密码 实际上是压缩包伪加密,将如图橙色处原本的字节0x09改为0x00,保存后即可解压出文件…

REVERSE-PRACTICE-CTFSHOW-7

REVERSE-PRACTICE-CTFSHOW-7签层饼Tea_tube_poteasy贪吃蛇的秘密签层饼 32位exe,ida打开 main函数中,输入两个大于0的数字,如果flag_num为0,则将两个输入作为flag的一部分,打印flag 选中input_1按x查找交叉引用&…

HttpModule与HttpHandler详解(转)

ASP.NET对请求处理的过程: 当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过http管道&am…

Windows 系统中 Python下 Pygame 的安装

Pygame是跨平台Python模块,专为电子游戏设计,可用于管理图形、动画乃至声音,建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚,通过使用Pygame来处理在屏幕上绘…

REVERSE-PRACTICE-CTFSHOW-8

REVERSE-PRACTICE-CTFSHOW-8Matara OkinaanniuwarmupeMatara Okina apk文件,jadx-gui打开 MainActivity什么都没有,来到FlagActivity scheme,host这些看不懂 第44行有个ans和bytes的比较,ans已知,bytes是从某个地方获…

Html控件和Web控件(转)

作为一名ASP.NET的初学者,了解并且区别一些混淆概念是很必须的,今天这篇博文 就是主要向大家介绍一下Html控件和Web控件。在ASP.net中,用户界面控件主要就是 Html控件和Web控件,在前台页面上看,两种控件非常相似&…

VMware Pro 14 安装 Ubuntu 18.04 详细教程

目录● 安装步骤1.下载安装 VMware Workstation Pro 142.下载 Ubuntu 18.04 系统3.在 VMware 中创建虚拟机4.在虚拟机上安装 Ubuntu 系统● 安装过程中可能会出现的一些问题 1.在虚拟机上安装 Ubuntu 系统的过程中卡死不动 2.Ubuntu 不能全屏显示● 安装步骤 1.下载安装 VMware…

Web服务器控件和HTML控件的区别与联系

我们知道,在ASP.NET中,使用了两类控件,一类是HTML控件,还有一类是WEB控件。 WEB控件我们已经很熟悉,因为它是ASP.NET提供,一般关于ASP.NET的教程文章都会仔细介绍这些控件的详细应用技巧; 而H…

Hexo 博客优化之博客美化系列(持续更新)

2022-01-25 更新:博客新地址:https://www.itbob.cn/,文章距上次编辑时间较远,部分内容可能已经过时! 本文将讲述一些 Hexo 博客的美化,本文以作者 luuman 的 spfk 主题和作者 xaoxuu 的 Material X 主题为例…

一台电脑部署两个或多个 Hexo 博客(一台电脑使用两个或多个 GitHub 账号)

由于个人原因需要在一台电脑上部署两个Hexo博客,本来以为挺简单,没想到问题重重,首先是一个GitHub账号只能搭建一个Hexo博客,因此就需要使用其他GitHub账号;其次是一台电脑绑定两个GitHub账号,则需要两对公…

element.style内联样式修改

最近在修改我个人博客的一个样式时发现,无论我如何修改style里面的值,页面上的样式都不会被修改,F12检查一下发现个element.style,但是却找不到这个值在哪里,查资料后才知道element.style为内联样式,基本很…