漫画:三分钟了解敏捷开发

转载自 漫画:三分钟了解敏捷开发

什么是敏捷开发?


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

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


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


这一切正如某人的名言:






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






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






敏捷开发模式的分类


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


同样是敏捷开发,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的合成词,其目标是要加强开发人员、测试人员、运维人员之间的沟通协调。如何实现这一目标呢?需要我们的项目做到持续集成持续交付、持续部署


时下流行的JenkinsBamboo,就是两款优秀的持续集成工具。而Docker容器则为Devops提供了强大而有效的统一环境。




关于Devops以及Docker,在以后的文章中会做出更详细的介绍。







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序数组的坑

定义和用法 splice() 方法用于添加或删除数组中的元素。 注意:这种方法会改变原始数组。 返回值 如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。 主要:array.splice(index,howmany&#xff09…

转: 理解RESTful架构

转自: http://www.ruanyifeng.com/blog/2011/09/restful.html 作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式&a…

Git 12 岁了,送给你 12 个 Git 使用技巧

转载自 Git 12 岁了,送给你 12 个 Git 使用技巧Git,一个分布式版本控制系统,它已经成为了开源世界的源码控制默认工具,在4月7号12岁了。但是使用Git中更另人沮丧的是,你需要了解多少才能让你更有效的使用它。同时这也是…

转:Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比

转自: https://blog.csdn.net/yunfeng482/article/details/72856762 前言 在分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。 概念 MQ简…

微信小程序定时器setInterval()的使用注意事项

setInterval(function(){}, number 时间间隔/ms) 注意在setInterval中定义的函数中使用 this 指向的是该计时器,若要用到页面数据应如下操作: let thatthis setInterval(function(){ that.data.a0; },number 时间间隔/ms) …

图解分布式架构的演进

转载自 图解分布式架构的演进一、什么是分布式架构分布式系统(distributed system) 是建立在网络之上的软件系统。内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性:是指每一个数据库分布节点…

转:微服务架构:BFF和网关是如何演化出来的?(这篇文章相当棒)

转自: https://juejin.im/entry/6844903806208049159 这篇文章写得非常棒,从服务,到bff, 到gateway 的一步步演化,描述的非常清晰易懂。 1、介绍 BFF(Backend for Frontend)和网关Gateway是微服务架构中的两个重要概…

微信小程序的坑

<input>组件后台接受到的是字符串类型&#xff0c;若要用数字类型应用Number()进行转化 微信小程序中许多API会是页面的 this 转向应注意用 let that this 来获取页面的指针&#xff01;

实现滚到div时淡入效果

首先实现淡入的动画 CSS代码如下&#xff1a; keyframes float { from { position: relative; margin-top:200px; opacity: 0; } to { position: relative; margin-top: 50px; opacity: 1; } } 接下来用JS判断当前滚动的位置并加入…

高级 Java 面试通关知识点整理

转载自 高级 Java 面试通关知识点整理1、常用设计模式单例模式&#xff1a;懒汉式、饿汉式、双重校验锁、静态加载&#xff0c;内部类加载、枚举类加载。保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。代理模式&#xff1a;动态代理和静态代理&#xff0c;…

windows查找端口占用并杀死端口进程

tasklist 查看进程netstat -ano|findstr "8080" 查找端口 8080 占用信息&#xff1b; tasklist|findstr 7176 查找进程id为 7176的进程信息&#xff1b; taskkill /F /PID 7176 杀死进程7176

Angular项目打包到nginx部署过程

Angular项目打包到nginx部署过程 一. 打包Angluar ng build,会在项目文件夹下生成dist文件&#xff0c;里面是打包后的文件 二. 部署nginx 在nginx官网中下载nginx 把dist文件夹下的打包文件拷贝到nginx/html下并重命名为myProj 修改conf/nginx.conf文件 location / {root…

SpringMVC表单验证器的使用

转载自 SpringMVC表单验证器的使用本章讲解SpringMVC中怎么通过注解对表单参数进行验证。 SpringBoot配置 使用springboot&#xff0c; spring-boot-starter-web会自动引入 hiberante-validator, validation-api依赖。 在 WebMvcConfigurerAdapter实现类里面添加验证器及国际化…

转-Kafka【第一篇】Kafka集群搭建

转自&#xff1a; https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka【第一篇】Kafka集群搭建 Kafka初识 1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候&#xff0c;是否会遇到这样的一些问题&#xff1a; 我们想分析下用户行为&#xf…

Angular 应用解决跨域访问的问题

设置反向代理 原理是设置反向代理服务器&#xff0c;让 Angular 应用都访问自己的服务器中的API&#xff0c;而这类API都会被反向代理服务器转发到 Java 服务API中&#xff0c;而这个过程对于 Angular 应用是无感知的。 业界经常是采用 NGINX 服务来承担反向代理的职责。而在 …

57张PPT彻底搞清楚区块链技术。。

转载自 57张PPT彻底搞清楚区块链技术。。

如何基于tomcat构建web站点

修改 conf/server.xml 配置&#xff0c; 如下&#xff1a; <Server port"8005" shutdown"SHUTDOWN"><Service name"Catalina111"><Connector port"8080" protocol"HTTP/1.1"connectionTimeout"20000&q…

小程序实现圆饼图

效果图 预备知识 CanvasContext.createCircularGradient(number x, number y, number r) 创建一个圆形的渐变颜色。起点在圆心&#xff0c;终点在圆环。返回的CanvasGradient对象需要使用 CanvasGradient.addColorStop() 来指定渐变点&#xff0c;至少要两个。&#xff08;详细…

一分钟开启Tomcat https支持

转载自 一分钟开启Tomcat https支持1、修改配置文件 打开tomcat/conf/server.xml配置文件&#xff0c;把下面这段配置注释取消掉&#xff0c; keystorePass为证书密钥需要手动添加&#xff0c;创建证书时指定的。 <Connector port"8443" protocol"org.apache…

转:在eclipse中搭建maven工程(第二种方法)

转自 &#xff1a; https://blog.csdn.net/bug_moving/article/details/54178092&#xff1b; 第一种方法见前面的博客 用Maven创建web项目&#xff08;详细步骤&#xff09; maven-3.3.9 下载之后就是配置环境变量&#xff0c;可以去百度一哈&#xff0c;用MAVEN_HOME配置…