敏捷开发是相对于瀑布开发来说,一种轻量级的软件开发方式。敏捷开发是为了快速响应需求变化、通过组建跨职能团队实现持续不断的交付高质量的产品的方法的集合。所有符合敏捷宣言和敏捷开发十二项原则的方法都可以是敏捷开发的一种实践。

在大多数的敏捷开发实践过程中,团队会组合应用多种敏捷开发的实践,常见的方式是Scrum模型和看板的方式,并结合DevOps实现持续集成与持续部署等实践来推进敏捷开发。下面以一个团队的一次迭代举例说明敏捷开发过程。

一、需求梳理

在敏捷开发之前,基于需求开展敏捷协同工作,将需求尽可能的拆分到小颗粒度,方便估算且能够在一个短周期内实现并交付上线,可以实现小步快跑的交付节奏。

从业务需求到功能需求的多层级拆分,并实现拆分后的关联追溯能够清晰的展示所有拆分后的零散需求得到实现。

图1 业务需求拆分

图2 功能需求的拆分

二、迭代规划

根据需求的优先级与清晰度以及交付周期,进行规划迭代,拆分后的需求分布到每个迭代,并规划版本发布时间,使得迭代和版本分离,让已经达到发布条件的需求,按需进行版本发布。

图3 迭代计划与版本计划

三、迭代实施

实施过程中包括设计、编码、测试等获得,通过每日站会同步进度,并处理遇到的问题和障碍。并通过看板展示迭代的进展。

图4 看板

设计阶段,基于每个需求可独立上线的基本诉求,对架构解耦的要求逐步提高,设计架构从单体架构到分布式架构最后到微服务架构,根据软件业务属性选择适合的架构,进行合理的架构解耦。

编码实现过程中,同步关注质量,基于减少浪费一次性把事情做对的质量原则。加强编码阶段的质量保证,进行充分的单元测试和代码检查。并通过研发持续集成流水线频繁的验证每次编码输出之后的成果的正确行,尽早的发现问题,实现测试左移。

采用统一仓库或者分支策略来进行代码管理,其实就是为了保证代码的安全和便于统一管理。并且通过统一的制品管理确保软件产品输出的唯一性。

完善的测试管理以及充分的自动化UI测试、接口测试,确保产品输出的质量。设计阶段,基于每个需求可独立上线的基本诉求,对架构解耦的要求逐步提高,设计架构从单体架构到分布式架构最后到微服务架构,根据软件业务属性选择适合的架构,进行合理的架构解耦。

编码实现过程中,同步关注质量,基于减少浪费一次性把事情做对的质量原则。加强编码阶段的质量保证,进行充分的单元测试和代码检查。并通过研发持续集成流水线频繁的验证每次编码输出之后的成果的正确行,尽早的发现问题,实现测试左移。

采用统一仓库或者分支策略来进行代码管理,其实就是为了保证代码的安全和便于统一管理。并且通过统一的制品管理确保软件产品输出的唯一性。

完善的测试管理以及充分的自动化UI测试、接口测试,确保产品输出的质量。

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

什么是敏捷开发?教你正确理解敏捷开发相关推荐

  1. 敏捷 | 如何正确理解敏捷?

    [敏捷开发]| 作者/Edison Zhou 在过去的五年时间里,我所在的公司和团队一直使用的都是敏捷开发模式,我也在2018年底获取了Scrum联盟的CSM认证,对于敏捷的理解也是从最初的感性认识到 ...

  2. matlab计算正负零序分量,5分钟教你正确理解电力系统中的正序负序零序.doc

    5分钟教你正确理解电力系统中的正序负序零序 电力 三相不平衡 作图法 对称分量法 1:三相不平衡的的电压(或电流),可以分解为平衡的正序.负序和零序 2:零序为3相电压向量相加,除以3 3:正序将BC ...

  3. 教您正确理解时钟器件的抖动性能

    摘要 在选择时钟器件时,抖动指标是最重要的关键参数之一.但不同的时钟器件,对抖动的描述不尽相同,如不带锁相环的时钟驱动器有附加抖动指标要求,而带锁相环实现零延时的时钟驱动器则有周期抖动和周期间抖动指. ...

  4. 测试开发必会:正确理解持续集成和持续交付 CI/CD

    正确理解并掌握持续集成和持续交付(CI/CD)是当下测试和质量保障相关同学的必备技能.本文作者为霍格沃兹测试学院特邀嘉宾,资深技术专家蒋刚毅,原文首发 TesterHome 社区,标题为<持续交 ...

  5. java 7年_笃学私教:7年Java开发(月薪37K)分享正确的自学路线,不喜勿喷!

    原标题:笃学私教:7年Java开发(月薪37K)分享正确的自学路线,不喜勿喷! 趁着昨晚空闲和今早的时间,编辑这一篇帖子,写下当初我自学Java走的弯路,希望大家引以为戒,不要多走前人走过的弯路,浪费 ...

  6. IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列

    1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...

  7. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

  8. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...

  9. 从生产线到生产岛:理解敏捷开发中的设计与测试活动

    作者:陈勇 出处:blog.csdn.net/cheny_com 所谓生产线,就是大家各司其责,在一个线性的过程中配合工作.生产线尝试借助专业分工来提升效率,但也导致了问题:在传统生产线中,下游获得的 ...

最新文章

  1. 9个技巧让你的PyTorch模型训练变得飞快!
  2. mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全
  3. 近期活动盘点:俞士纶见面会、2018未来医疗100强论坛、清华校友三创论坛、2018年中国数字政府论坛(12.18-12.21)...
  4. 做一个快乐的产品经理
  5. Android在屏幕任意位置显示对话框
  6. ab st语言编程手册_西门子PLC编程SCL和LAD谁才是王者?一起讨论一下
  7. 函数接口– Java 8中java.util.function包中的函数接口
  8. c语言无法打开源文件stdafx.h,VS2013/2012/2010 下无法打开 源 文件“stdafx.h”的解决方法...
  9. 何为抓包?如何抓包?
  10. 2019读书计划(3)——《指数基金投资指南》
  11. 第三名是最危险的名次
  12. DQN-[Playing Atari with Deep Reinforcement Learning]
  13. Linux:TTY串口接收中断
  14. mysql 取分组数据的前几名(1)
  15. linux的cuda10卸载,Ubuntu18.04下卸载CUDA11.0
  16. ULR Web 三种路径
  17. Ubuntu20.04上切换系统声音( by quqi99)
  18. Jetson nano 摄像头二维码识别 Opencv zbar QT
  19. 统计图之小提琴图解析
  20. Python3(一):环境配置

热门文章

  1. 太卷了,企业级的智慧物业系统,也完全开源....
  2. win10系统右下角只显示时间不显示日期的解决办法
  3. 三星显示android.怎么消除,如何永久删除三星手机数据?
  4. html5图标用什么格式转换,.ico格式图标制作转换教程及DIY桌面图标的方法
  5. Dev C++ C语言中for循环中声明循环控制变量的问题
  6. 动手学数据分析task01 数据加载及探索性数据分析(笔记)
  7. 圈子社区论坛系统uniapp开源代码可打包小程序
  8. 机器学习之逻辑斯蒂回归
  9. J-B统计量检验样本正态性的原理
  10. LeetCode(多线程)- 1279. 红绿灯路口