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)这个词,我是在这学期邹欣老师<现代程序设计>课上第一次听到的,刚听到时并不知道其具体指什么,只是从字面上直觉其意思应该 ...
随机推荐
- POJ 3450 Corporate Identity(KMP)
[题目链接] http://poj.org/problem?id=3450 [题目大意] 求k个字符串的最长公共子串,如果有多个答案,则输出字典序最小的. [题解] 我们对第一个串的每一个后缀和其余所 ...
- HDU 2588 GCD
题目大意:给定N,M, 求1<=X<=N 且gcd(X,N)>=M的个数. 题解:首先,我们求出数字N的约数,保存在约数表中,然后,对于大于等于M的约数p[i],求出Euler(n/ ...
- 关于webroot与web-inf
struts.xml中配置redirect重定向路径的问题,要把转发的页面放到WebRoot下才能访问到,要是放在WEB-INF下面就访问不到.
- python property装饰器
直接上代码: #!/usr/bin/python #encoding=utf-8 """ @property 可以将python定义的函数“当做”属性访问,从而提供更加友 ...
- 简单的web三层架构系统【第二版】
昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数 ...
- poj 3259Wormholes (spfa最短路径)
#include<stdio.h> #include<string.h> #include<limits.h> #include<queue> usin ...
- ajax验证码检测
1.验证码文件 <%@ page language="java" pageEncoding="UTF-8"%> <%@ page conten ...
- c++ primer plus 习题答案(5)
p333.7 #include<iostream> #include<cstring> #include<cstdlib> using namespace std; ...
- 加密PHP文件的方式,目测这样可以写个DLL来加密了
<?php function encode_file_contents($filename) { $type=strtolower(substr(strrchr($filename,'.'),1 ...
- 27_Blog Reader
这个App是用来读取 Official Google Blog 的内容,然后显示出来. 用了新建工程时用了 Master-Detail Application 这个模板.用了Core Data用来存储 ...