趣文:三分钟了解敏捷开发
小灰经过千辛万苦,终于拿到了心仪的offer,
今天小灰上班的第一天……
下班后,小灰找到同学大黄来请教……
场景一:小灰在餐厅
场景二:无奈的项目经理
什么是敏捷开发?
敏捷开发(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:冲刺燃尽图,说白了就是记录当前周期的需求完成情况。
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)。
那么,现实中的Scrum是什么样的情景呢?看看下面的照片就知道了:
敏捷开发与Devops
Devops是Development和Operations的合成词,其目标是要加强开发人员、测试人员、运维人员之间的沟通协调。如何实现这一目标呢?需要我们的项目做到持续集成、持续交付、持续部署。
时下流行的Jenkins、Bamboo,就是两款优秀的持续集成工具。而Docker容器则为Devops提供了强大而有效的统一环境。
关于Devops以及Docker,在以后的文章中会做出更详细的介绍。
趣文:三分钟了解敏捷开发相关推荐
- 漫画:三分钟了解敏捷开发
转载自 漫画:三分钟了解敏捷开发 什么是敏捷开发? 敏捷开发(Agile)是一种以人为核心.迭代.循序渐进的开发方法. 在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备 ...
- 【视觉运控一体机小课堂】三分钟搭建机器视觉开发环境
回顾之前课程正运动技术与大家分享了,VPLC系列机器视觉运动控制一体机快速入门和应用案例等系列课程. 今天,我们来讲解一下正运动技术VPLC系列控制器ZDevelop编程软件如何来建立ZVision软 ...
- 从IT的角度思考BIM(三):敏捷开发
人们看到了远处BIM的美丽胜景和阻挡在眼前的宽广河流.有些人自信满满地跳入河中打算孤身游过彼岸,可是却失败了.有些人匆匆忙忙地造了船胡乱地滑向彼岸,可是也失败了. 要如何继续这段探索之旅? 无论是&l ...
- react安装_「React实战」三分钟搭建React开发环境
其实16年的时候就已经接触到React,那个时候也只是入门,时隔多年,工作上一直都没有接触到相关的业务,不知不觉,前端的天也开始渐变,看到 了很多招聘要求上都是要求会React,三大框架怎么也得熟悉使 ...
- Android学习教程三分钟学会安卓开发
1.创建页面(activity_main是默认主页面) 可拖拽控件,点击下方text切换到代码 下图红框中的是控件的默认id 2.创建activity class(与layout一一对应) 在清单文件 ...
- 用微软Custom Version识别水果:三分钟开发人工智能小应用
微软Custom Vision提供了成熟开源的计算机视觉开发框架,你只需要上传十张训练图片,即可一键训练图像分类模型(比如识别不同的水果.花卉.地标.人脸).不需要具备任何深度学习算法知识,小学生都能 ...
- \t\t【体会】敏捷开发 - 固本 + 持续小跑
1) 注重概念和架构设计,而轻详细设计 敏捷开发中,注重概念和架构设计,而轻详细设计.这里的概念设计,可以看成是为什么要做这个产品或模块,强调的是产品的路线规划.市场趋势.客户价值.技术趋势等.架构设 ...
- 105.敏捷开发模型
文章目录 1.什么是敏捷开发? 2.敏捷开发宣言 3.站立会议的意义 4.敏捷开发想解决什么问题? 5.如果用敏捷的方式盖房子 6.敏捷开发和瀑布模型的差异 (1)敏捷开发是怎么做需求分析的? (2) ...
- 浅谈一下“敏捷开发”
为什么需要敏捷开发 在以前,软件项目的开发都是以年来计算的,这代表什么意思呢 ?需求设计了半年多,方案设计做了半年多,开发了三年多,测试了半年多,修改Bug用了半年多.总计花了很长很长的时间,然后上线 ...
最新文章
- CSS弹出二级多列菜单和DIV布局实例 - 仿IBM官网首页
- C++模板中的函数式参数
- 【2019暑假刷题笔记-树的遍历】总结
- (转)Cairngorm初学者入门教程 第四节--通过 Model Locator 控制管理 Views
- oracle使用sqlplus查询sql格式
- 产品经理经验谈100篇(三)-如何才能打造出一款好的SaaS产品?
- java代码嵌入html代码是什么_用java给html文件添加必要的控制html代码片
- 手机吃鸡登显示服务器繁忙,国际版吃鸡登录一直显示服务器繁忙 | 手游网游页游攻略大全...
- Anaconda3 | Ubuntu(python3.6)环境下安装opencv
- 测试只描述现象,不下结论
- 遗传算法的Python实现(通俗易懂)
- abaqus 录制结果动画_后处理动画录制
- 微博html5版开视频怎么退出,微博怎么取消视频号?微博视频号怎么关闭
- 西安电子科技大学计算机学院简介,西安电子科技大学计算机学院简介
- 一切前端概念,都是纸老虎(附送书的抽奖结果)
- js调用高德地图API接口——返回坐标和省市区地理位置信息
- php怎么插入图层,PS制作-把图片添加到图层的4种方法
- [翼灵物联网工作室例会分享]
- 在职计算机培训班,计算机科学与技术在职研究生招生院校有哪些?
- 矩阵求逆(全选主元高斯-约当消去法)
热门文章
- K8S (kubernetes)
- Nvidia Jetson Nano刷机保姆级教程
- 数据库分库分表解决方案
- 使用 PLINK 把 vcf 的0/0,0/1,1/1转为字母格式的基因型(比如AA,AG,GG)
- jmeter压测结果分析
- _stdcall _cdec区别
- 二进制与十进制间的转化
- System.Diagnostics.Stopwatch
- python的yield是什么意思,python生成器是怎么使用的 python中yield是什么意思
- bzoj4668: 冷战