Agile methodology
ntroduction
Waterfall model follows application development in phases with checkpoint and deliverable documents in each checkpoint. It advocates rigours project management, strategy and processes to track the status. The main drawback is that it require more than 80% project understanding before kick off the project which is impossible in major cases. Cause of volatile requirements and understanding business feels, 80% of software projects using this methodology fail to meet their objectives.
Typical Waterfall Model

Agile methodology
Agile mythology has small box iterations rather than phases. The output of each iteration will be production release deliverable and could be evaluate and get early feedback.
Agile was a significant departure from the heavyweight document-driven software development methodologies—such as waterfall—in general use at the time
Agile refers more collaboration and interaction between different departments at enterprise level and deliver the successful product with individual contribution
Agile methodologies embrace iterations. Small teams work together with stakeholders to define quick prototypes, proof of concepts, or other visual means to describe the problem to be solved. The team defines the requirements for the iteration, develops the code, and defines and runs integrated test scripts, and the users verify the results. Verification occurs much earlier in the development process than it would with waterfall, allowing stakeholders to fine-tune requirements while they’re still relatively easy to change.
It promotes adaptive planning, evolutionary development & delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.

XP (extreme programming)
It advocates frequent “release” in short development cycles, each release follows with several iterations. When the product release has enough features to satisfy user, the team terminates iteration cycle and release the software.
Other elements of Extreme Programming include: programming in pairs, continuous integration, add only needed features for a particular release.
Users write story which help the team to estimate the time to build the release and to define acceptance testing. A user a part of XP team adds the detail requirement as the software is being built. This allows requirements to evolve as both users and developers define what the product will look like

- Continuous Integration: Integrate often at least once a day using automated continuous integration tool.
- Pair Programming: Pair programing to extensively code review while coding.
- Project velocity: Velocity is a measure of how much work is getting done on the project. This important metric drives release planning and schedule updates..
Scrum
Scrum is a way for teams to work together to develop a product whereas requirement change rapidly during development. Product development, using Scrum, occurs in small pieces, with each piece building upon previously created pieces. Building products one small piece at a time encourages creativity and enables teams to respond to feedback and change, to build exactly and only what is needed. Unlike XP, Scrum methodology includes both managerial and development processes.

- Sprints: Short development process
- Stand up meeting: Daily 10 minutes meeting status of the work to be done that day, progress from the day before, and any blocks that must be cleared
- Scrum Master: The ScrumMaster is the person responsible for managing the Scrum project..
- Sprint backlog: Sprint backlog is the list of backlog items assigned to a sprint, but not yet completed.
- Burndown chart: This chart, updated every day, shows the work remaining within the sprint. The burn down chart is used both to track sprint progress and to decide when items must be removed from the sprint backlog and deferred to the next sprint.
- Product backlog: Product backlog is the complete list of requirements
.References
- http://en.wikipedia.org/wiki/Extreme_programming
- http://en.wikipedia.org/wiki/Scrum_%28development%29
- http://www.scrum.org/
- http://www.codeproject.com/Articles/4798/What-is-SCRUM
Agile methodology的更多相关文章
- 哪些问题是面试官经常问Java工程师的问题 ? --- 转自quora
Which are the frequently asked interview questions for Java Engineers ? Vivek Vermani, www.buggybrea ...
- 10. Software, Software Engineering, water fall (瀑布模型),Code Complete等名词的来源
①.Software-软件”一词是20世纪60年代才出现的,软件Software——1958年由贝尔实验室的著名统计学家John Tukey 提出软件与硬件一起构成完整的计算机系统,它们是相互依存,缺 ...
- [设计语言][统一建模语言][软件开发方法学][UML] UML
背景介绍 UML是一种统计建模语言. WIKI: https://en.wikipedia.org/wiki/Unified_Modeling_Language UML是OMG (object man ...
- 近年Recsys论文
2015年~2017年SIGIR,SIGKDD,ICML三大会议的Recsys论文: [转载请注明出处:https://www.cnblogs.com/shenxiaolin/p/8321722.ht ...
- Delphi DLL制作和加载 Static, Dynamic, Delayed 以及 Shared-Memory Manager
一 Dll的制作一般分为以下几步:1 在一个DLL工程里写一个过程或函数2 写一个Exports关键字,在其下写过程的名称.不用写参数和调用后缀.二 参数传递1 参数类型最好与window C++的参 ...
- The Art of Mocking
One of the challenges developers face when writing unit tests is how to handle external dependencies ...
- XCTest(二)
New tool sets are making it easier and easier to engage in genuine agile development on iOS. In part ...
- 微软TFS Agile/CMMI/Scrum
二.VS Online 与 Agile/Cmmi/Scrum 介绍了背景,那就言归正传了.VS Online 和文章标题有什么关系呢? 成功注册VS Online之后,我准备创建自己的project时 ...
- 关于敏捷开发方法(Agile Software Development)的阅读笔记
对“敏捷开发”(Agile Software Development)这个词,我是在这学期邹欣老师<现代程序设计>课上第一次听到的,刚听到时并不知道其具体指什么,只是从字面上直觉其意思应该 ...
随机推荐
- HDU1506 ( Largest Rectangle in a Histogram ) [dp]
近期情绪太不稳定了.可能是由于在找实习这个过程碰壁了吧.第一次面试就跪了,可能是我面的是一个新公司,制度不完好,我感觉整个面试过程全然不沾编程,我面试的还是软件开发-后来我同学面试的时候.说是有一道数 ...
- python 序列(list,tuple,str)基本操作
添加元素: mylist.append() mylist.extend([1, 2]) mylist.insert(1, "pos") 删除元素: mylist.remove(va ...
- 七日筑基——C#第二天
上一次讲到了变量,变量这个东西可以说是编程的基础,主要的作用就是用来存放数据,就跟做菜一样的,不同的菜要放在不同类型的容器中,那么不同的数据也需要存放在不同类型的变量里.先放张饭菜的图给大家看看,增加 ...
- centos6.5 升级python 到 python 2.7.11 安装 pip
1.首先官方下载源码,然后安装(./configure,make all,make install,make clean,make distclean) 注意:需要先安装zlib-devel,open ...
- 打印 PHP $_SERVER 常量
foreach( $_SERVER as $var => $value){ echo $var.' '.$value.'<br>'; };
- PHP的一些函数
//进制转换类 base_convert //字符转十六进制 binhex
- Docker背后的容器管理——Libcontainer深度解析
Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcon ...
- w3c标准的selection对象介绍
简介 术语 属性 方法 document.activeElement document.designMode = 'on'; 简介 selection是对当前激活选中区(即高亮文本)进行操作. 在非I ...
- WebAppScaner
https://www.ohloh.net/p/simple-scan/ https://code.google.com/p/skipfish/ http://code.google.com/p/wa ...
- 射频识别技术漫谈(22)——RC系列射频芯片的寄存器操作
前面提到,RC系列内部64个寄存器的正确操作是软件编写的关键.正确设置寄存器首先要做到与寄存器正确通信,其次是要对寄存器写入正确的值. RC系列射频芯片与微控制器的接口有并口和SPI接口两种类型.显然 ...