傻子都能看懂的:什么是敏捷开发????????

一个有趣的例子:

如果去餐厅点餐,点了10个菜,经过一个多小时,服务员才一次性把做完的10个菜全部端上来,这就等同于传统的开发模式,而大部分的餐厅显然不会这样,更常见的是做完一道菜就先端上了一道菜(以顾客需求为核心),这就相当于敏捷开发。

传统开发:

瀑布式开发,严格分级,需求分析,设计编码,测试,维护,一个阶段全部结束之后才会进行下一阶段。对于一开始需求不是很明确的项目(大部分项目都会需求变化)是一种不靠谱的开发方式。

敏捷开发:

以用户为核心,不断迭代,循序渐进的开发方式,力求将项目分割成多个经过测试,可集成,可运行的的小部分。争取再很短的时间里开发出核心功能在后期不断更新完善

敏捷开发主要由  极限编程(XP) scrum组成。

XP 极限编程 更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程(一个敲代码,一个审查,一台计算机.....感觉很gay)等,关键要看具体的应用场景。

SCRUM则是一种开发流程框架,也可以说是一种套路。

scrum的几个基本术语:

Sprint:冲刺周期,通俗的讲就是实现一个“小目标”的周期。一般需要2-6周时间。

User Story:用户的外在业务需求。拿银行系统来举例的话,一个Story可以是用户的存款行为,或者是查询余额等等。也就是所谓的小目标本身。

Task:由User Story 拆分成的具体开发任务。

Backlog:需求列表,可以看成是小目标的清单。分为Sprint Backlog和Product Backlog。

Daily meeting:每天的站会,用于监控项目进度。有些公司直接称其为Scrum。

Sprint Review meeting: 冲刺评审会议,让团队成员们演示成果。

Sprint burn down:冲刺燃尽图,说白了就是记录当前周期的需求完成情况。

Rlease:开发周期完成,项目发布新的可用版本。

 

如上图所示,在项目启动之前,会由团队的产品负责人(Product owner)按照需求优先级来明确出一份Product Backlog,为项目做出整体排期。

随后在每一个小的迭代周期里,团队会根据计划(Sprint Plan Meeting)确定本周期的Sprint Backlog,再细化成一个个Task,分配给团队成员,进行具体开发工作。每一天,团队成员都会进行Daily meeting,根据情况更新自己的Task状态,整个团队更新Sprint burn down chart。

当这一周期的Sprint backlog全部完成,团队会进行Spring review meeting,也就是评审会议。一切顺利的话,会发布出这一版本的Release,并且进行Sprint回顾会议(Sprint Retrospective Meeting)。

猜你喜欢

转载自blog.csdn.net/zpjlkjxy/article/details/82354582