文章目录

  • 一、什么是敏捷开发?
  • 二、敏捷开发模式的分类
  • 三、SCRUM 的工作流程
  • 四、敏捷开发流程的8个步骤包括:
  • 五、敏捷开发模型

一、什么是敏捷开发?

敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。

在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。

简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。

是谁这么厉害,提出了敏捷开发思想?是一位名叫 Martin Fowler 的美国大叔。

大叔不但是敏捷开发的创始人之一,还在面向对象开发、设计模式、UML 建模领域做出了重要贡献。目前担任 ThoughtWorks 公司的首席科学家。

二、敏捷开发模式的分类

敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中 SCRUM 与 XP 最为流行。

同样是敏捷开发,XP 极限编程 更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程等,关键要看具体的应用场景。

SCRUM 则是一种开发流程框架,也可以说是一种套路。SCRUM 框架中包含三个角色,三个工件,四个会议,听起来很复杂,其目的是为了有效地完成每一次迭代周期的工作。在这里我们重点讨论的是 SCRUM。

三、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:冲刺燃尽图,说白了就是记录当前周期的需求完成情况。
  • Release:开发周期完成,项目发布新的可用版本。


如上图所示,在项目启动之前,会由团队的产品负责人(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)。

那么,现实中的 Scrum 是什么样的情景呢?看看下面的照片就知道了:

四、敏捷开发流程的8个步骤包括:

1、目标制定,目标对齐:通过市场调研、业务思路、风险评估制定公司规划和目标,根据这一目标产生所有部门的目标并实现对齐;

2、产品规划:产品研发部门根据目标制定产品关键路线图,这个路线图中分布着不同的产品特性和其完成时间;

3、组织产品待办列表:产品规划产生的需求、客户需求、市场人员收集到的缺陷等将组成产品待办列表;

4、需求梳理:然后产品负责人(Product Ower)对这个列表进行梳理,并在需求梳理会(Backlog Grooming Meeting)讲解具体每一个需求,团队成员根据需求的复杂程度评估每个任务的工作量,输出本次迭代的待办事项列表,完成优先级排序等工作;

5、迭代规划:通过Sprint计划会,明确要执行的工作、冲刺目标等,

6、迭代开发:期间会进行每日站会、性能测试、CodeReview、Demo、测试等工作;7、Sprint评审:由每个任务的负责人演示其完整的工作,由PO确定Sprint目标是否完成,版本什么时候对外发布,新增bug的紧急程度等等。

8、开回顾会议:回顾会议由Scrum团队检视自身在过去的Sprint的表现,包括人 、关系、过程、工具等,思考在下一个Sprint中怎么样可以表现得更好,更高效,怎么样可以和团队合作地更愉快。

五、敏捷开发模型

流程图

定义:从1990年代开始逐渐引起广泛关注,是一种以人为核心、快速迭代、循序渐进的开发方法。强调以人为本,专注于交付对客户有价值的软件。是一个用于开发和维持复杂产品的框架。就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

优点:敏捷确实是项目进入实质开发迭代阶段,用户很快可以看到一个基线架构版的产品。敏捷注重市场快速反应能力,也即具体应对能力,客户前期满意度高。

缺点:但敏捷注重人员的沟通,忽略文档的重要性,若项目人员流动大太,又给维护带来不少难度,特别项目存在新手比较多时,老员工比较累。需要项目中存在经验较强的人,要不大项目中容易遇到瓶颈问题。

什么是敏捷开发?敏捷开发流程的8个步骤相关推荐

  1. 敏捷开发流程的8个步骤

    一.敏捷开发流程的8个步骤包括: 1.目标制定,目标对齐:通过市场调研.业务思路.风险评估制定公司规划和目标,根据这一目标产生所有部门的目标并实现对齐: 2.产品规划:产品研发部门根据目标制定产品关键 ...

  2. 敏捷开发--实际工作流程梳理

    敏捷开发–工作流程梳理,让工作更效率 前言:说下我公司敏捷模式,发布周期工作流程和故事开发流程 先说下敏捷的相关概念: 敏捷简述: 敏捷开发是以用户的需求进化为核心,采用迭代.循序渐进的方法进行的软件 ...

  3. DevOps是敏捷在软件开发团队的另一应用

    DevOps是敏捷在软件开发团队的另一应用.那么相比之下,哪个更胜一筹? 一边,有业界认可的scrum master,它的朋友极限编程者,以及由其衍生的 LeSS.SAFe.DAD等,是敏捷. 另一边 ...

  4. 敏捷测试——打通开发与测试的壁垒!

    DevOps是当前软件行业最热门的话题,无论是互联行业,还是传统行业,大家都在拥抱DevOps,享受引入DevOps后带来的团队效能提升.但是也有不少的团队对DevOps的理解还存在误区,导致在实践过 ...

  5. 如何确保项目开发敏捷和安全两者兼得

    前言 敏捷开发是现在主流的开发模式,相对于传统的瀑布式开放,它通过快速的迭代来响应和展示客户的需求,敏捷开发的优点已经是众所周知了.但是敏捷开发已经实施了很多年了,项目安全问题还是和瀑布开发开放模式一 ...

  6. 敏捷软件开发——敏捷方法、极限编程、Scrum

    快速的软件开发过程就是为迅速制造可用软件而设计的.软件的开发和部署不是一次完成的,而是以一系列增量的形式完成的,每一个增量包括新的系统功能.尽管有很多快速软件开发的方法,它们都有一些基本的特性: 描述 ...

  7. app开发外包的流程、需求、报价,需要知道的细节!

    app开发外包的流程.需求.报价,需要知道的细节! 随着时代的需要,很多企业都迫切需要一款自己的企业App或者是其他对自己有用的App.当公司和企业中没有自己的开发团队,或者说自己的开发团队并不能完成 ...

  8. 微信小程序开发的完整流程介绍,新手必读

    自从跳一跳小程序游戏出现后,一夜之间,小程序就变得家喻户晓了,功能开发也越来越丰富,在微信搜一搜就会发现许多大品牌早已有自己的小程序了,越来越多的企业和商家都看中了这个风口,想快速开发出一款属于自己的 ...

  9. python编写程序的一般步骤-Python:开发_基本流程

    Python开发--基本流程 开发: 开发运行在操作系统之上的软件 操作系统是运行在硬件上的另一种"软件" -编码 ASCII码 是最早美国用的标准信息交换码,把所有的字母的大小写 ...

最新文章

  1. 实现 Java 本地缓存
  2. Vue学习01-v-on事件修饰符
  3. Spring Cloud中Feign如何统一设置验证token
  4. python list排序_python里对list中的整数求平均并排序
  5. iOS 将16进制颜色转换成UIColor
  6. WEB编程学习之配置阿里云+宝塔+WordPress
  7. 苹果宣布北京时间9月15日凌晨举办发布会后,公司市值再创新高
  8. 《C++ Primer Plus》14.2 私有继承 学习笔记
  9. 全局替换安卓应用字体
  10. C语言课程设计——25道蓝桥杯练习题
  11. 无线网络 EAP 认证
  12. Android Q 下拉状态栏快捷开关解析
  13. 高压带电显示器局放检测面板式四合一局放在线监测/带电故障显示/无线测温装置
  14. 绿地五里桥 设计原型_绿地 · 黄浦滨江项目设计
  15. telegram 新增 删除 联系人
  16. 【深度学习】【ICCV2019】FCOS
  17. 如何批量调整图片亮度?
  18. 清除html标签+清除html标签,字符串截取
  19. webssh —— 浏览器上的终端
  20. U盘突然变成Raw格式,无法读写数据

热门文章

  1. 无线wifi打印机服务器原理,一般无线打印机的连接方法及遇到常见故障解决办法...
  2. Java好学吗?现在待遇如何?
  3. 电影评分预测系统分析
  4. 6.Spring学习笔记_Bean之间的关系 (by尚硅谷_佟刚)
  5. 【dp - 多重背包】575: Coin Changing
  6. bloomFilter和哈希函数murmur3
  7. CyberWorld赛博世界是否能成为元宇宙核心力量
  8. JavaScript中如何严格的判断NaN
  9. Java代理模式:(二)代理模式
  10. 计算机学set,计算机上set是什么意思