什么是敏捷(Agile)开发?Scrum和Kanban有什么关系?

最近面试过程中被问到和敏捷开发相关的内容,在产品实际工作中经常会涉及到敏捷开发,但其实我自己没有系列了解过敏捷开发,除了考PMP的时候接触了下,大多数都是在工作中实践积累的,太接地气,为了稍显理论知识的充裕,还是想要弥补一下理论层面的一些“学术语言”!🤣

一、敏捷开发背景和起源

众所周知,产品从想法到原型图到UI设计图到开发到测试最终上线需要经过几个环节的流转,前前后后可能需要花上半个月到一个月的时间,需求比较复杂的时候可能需要花上几个月。在这期间的任意环节都有可能发生变化导致需求回退重新走上一步,下一步都会受限于上一步。此外还有可能涉及资源等的变化等等。

敏捷,常常会跟软件开发的瀑布模型(waterfall)来进行比较,waterfall是老式的开发周期比较长,敏捷一般是小量迭代的,适应快速的市场变化的。敏捷方法通过提供灵活、迭代的项目管理方法,改变了软件开发。敏捷方法中最著名的框架是 Kanban 和 Scrum。虽然这两种方法都旨在提高生产力和效率,但它们的运作原则和实践却截然不同。

二、Scrum

Scrum是一种为软件开发和项目管理团队提供的敏捷框架,允许团队为实现共同目标而自主组织和协作。这种框架提供了一种结构化的协作方式,使团队能够以渐进和迭代的方法交付具有高价值的产品。
在这里插入图片描述

流程

  1. PO从不同来源获取需求(用户故事)然后进行梳理,产生产品待办列表Product backlog;
  2. 组织Spint planing Meeting,和团队共同从Product backlog中挑出若干需要在Sprint结尾完成的内容,在Sprint Planning中进行分析和拆分,会议输出sprint backlog(这次sprint要做的事情)和sprint goal;
  3. 进行迭代开发,在每个spint期间,每天有daily scrum(每日站会:≤15min);
  4. 每次sprint完成后输出可交付的产品增量increment;
  5. 在spint review对increment进行review评审(目的是展示Sprint成果,收集利益相关者的反馈,并更新产品待办事项列表。它关注的是产品增量,确保产品满足利益相关者或客户的期望。);
  6. 同时有sprint retrospective会议去总结团队成员做得好的做得不足的。(目的是评估团队在前一个Sprint中的工作表现和流程,讨论如何改进未来的工作流程。它关注的是团队的工作方式,包括沟通、团队合作、流程、工具等。)

Scrum Master(即流程管理员或者项目经理)组织和把控整个流程。
在这里插入图片描述

构成

  • 3个组件:product backlog、sprint backlog、increment
    • product backlog:待办事项
    • sprint backlog:某次sprint要做的待办事项,由product backlog挑选出来放入sprint backlog
    • increment:是一次sprint完成后的产出,即 “产品增量”,是产品增加了什么、修改了什么
  • 3个角色:product owner、scrum master、development team
    • Product Owner(PO):产品经理,即"产品所有人",对product backlog负责;
    • Scrum Master(SM):即敏捷教练/项目经理/流程管理员,管敏捷流程的人
    • Development Team:开发团队,由开发、测试等人员组成。
  • 5个事件:sprint、sprint planning、daily scrum、sprint review、spring retrospective
    • sprint:某次迭代周期要做的事情,如sprint 1 / sprint 2 …(一次sprint安排的量通常是 1-3周完成),一般命名比如 sprint 1 加数字 ;
    • sprint planning:在这个会议中讨论并从product backlog挑出下次sprint要做的事情,输出有sprint goal和sprint backlog
    • daily scrum:每日站会,也有叫daily meeting/daily standup/standup meeting,会上每个人一般会说明昨天做了什么、今天做什么、遇到什么困难
    • sprint review:对交付内容(即产品增量)进行review,即审查结果 (for产品)
    • sprint retrospective:回顾会,会上讨论做得好的做得不好的,是一个总结类似复盘的会议。(for人)
  • 3个文件:product backlog、user stories、burndown chart
    • user story:用户故事,一般是用 “作为…我需要…以便…” 描述用户的需求
  • 5个价值观:respect、openness、courage、commitment、focus

三、Kanban

Kanban是一种用于IT项目管理的工作流管理方法,它强调可视化工作、最大化效率和实现持续改进。这种方法专注于对正在进行的项目进行演进式的调整,以提高效率和减少浪费。分为物理看板和电子看板。

Kanban方法以价值流动为核心,不断发现团队中的瓶颈工序进行改进,使价值流动更加顺畅和快速。简单的说,就是保证软件的持续集成并且不让开发团队超负荷。

在这里插入图片描述
组成部分

  1. 泳道(甬道):每个泳道都是过程中的一个阶段。例如敏捷开发过程:建立需求池、搜集用户故事→ 评审需求、规划迭代→ 进度管理、团队协作→ 用例管理、缺陷追踪→ 评审回顾、总结沉淀。每个泳道可根据工作完成情况再进行划分。
  2. WIP限制(Limit Work In Progress):决定了每种情况下工作流中可以存续的最大工作量。限制是看板和其他管理系统最大的区别。在流程的每一步限制在制工作量(WIP),可防止生产过剩,并动态揭示瓶颈,以便在瓶颈失控之前得到解决。在Kanban方法的中,下游任务完成后,即可拉动上游任务下移,同时,只要生产力允许,即可新增需求。
  3. 卡片:团队需要处理的任何事。研发团队关注的是待交付的新功能,但是要注意按高优先级将待交付的需求排序再开展工作。

Kanban管理模式简洁而有力。一个简单的Kanban系统甚至可以由一张大纸板和贴在上面的便签组成。在这个系统中,大纸板上画有多个列表。一个列代表一个工作步骤,一张便签即代表一个任务。每个任务都经过这个工作流程从最左边的列流向最右边的列。

优点

1)可视化工作流程。所有的工作进度会全部显示在Kanban上,每一个人都可以一目了然了解自己的工作进度以及项目进度、流程以及瓶颈,能够增加团队之间的协作,使他们能够集中精力促进流程。

2)限制在制工作,可以避免任务切换导致的问题,并减少不断重新确定项目优先次序的需要。WIP 限制释放了看板的全部潜力,使团队能够在更健康、更可持续的环境中以比以往更快的速度提供高质量的工作。

3)管理并优化流程。Kanban能够动态地展示团队工作流程的瓶颈。一旦项目管理者发现某个环节影响到团队进度,t就可以及时调配相应的资源改进这个环节,使流程得到优化。

4)缩短开发周期。可以更好的发现问题,解决问题,从而找到更科学的方法提高开发效率。

四、Scrum和Kanban

在这里插入图片描述

工作方式

  • Kanban:

    1. 适用于持续流动的任务管理,没有固定的时间周期(迭代)。
    2. 工作项随时进入看板并处理,团队可以根据需要不断增加和减少任务。
    3. Kanban强调可视化工作流程、限制正在进行的工作项(WIP 限制)以及持续优化流程。
  • Scrum

    1. 适用于敏捷方法,工作被分割成时间固定的冲刺周期(通常为 1-4 周)。
    2. 在每个冲刺开始时,团队从待办事项(Backlog)中选择一批任务,并计划在冲刺结束时完成它们。
    3. Scrum 强调计划、回顾、每日站会、以及交付可工作的增量。

目标

  • Kanban:保持流程顺畅,持续交付价值,工作项按优先级处理,适合持续交付和改进的团队。

  • Scrum:通过固定周期的冲刺,在每个冲刺结束时交付一个可以交付的增量成果,适合迭代式开发的团队。

优先级和计划

  • Kanban:没有冲刺的概念,任务会按优先级排队,团队成员根据当前的工作量拉取任务。

  • Scrum:任务被提前计划好,冲刺开始后,团队承诺在冲刺结束前完成所有任务。计划完成后,在冲刺期间不允许添加新任务。

进度跟踪

  • Kanban:主要通过累积流图(Cumulative Flow Diagram) 跟踪任务的流动,观察瓶颈和完成率。

  • Scrum:使用燃尽图(Sprint Burndown Chart) 跟踪团队在冲刺期间完成的工作,评估能否按时完成目标。

任务的完成时间

  • Kanban:强调缩短单个任务的周期时间(Cycle Time),没有冲刺的结束时间,任务在流动中完成。

  • Scrum:任务必须在冲刺结束时完成,团队在开始冲刺时制定目标,并承诺在冲刺结束时交付成果。

总结

在这里插入图片描述

  • Kanban Board 适用于持续交付和流程优化,任务可以随时加入、优先级可以随时调整。
  • Scrum Board 适用于迭代式开发,团队通过冲刺周期进行计划和交付,固定周期内完成任务。
  • 创建 Scrum Board 通常会间接创建一个项目,因为 Scrum 的工作模式依赖于项目的框架来管理冲刺、任务和进度。

五、实际应用

商家爱公司主要是通过TAPD进行项目管理,其实这个过程中两种管理方法都有用到,业务在TAPD建业务需求(原始需求),产品收集后(用户故事),产品或者产品团队内部进行需求评级和筛选(产品待办列表)后输出方案,拉着产研负责人进行需求评审(Sprint backlog)看在两周内能否完成预定的这些需求,迭代期间每日站会可能会涉及到阻塞或需求变更或产品代办列表变更等,完成一个小迭代(Sprint)后进行阶段性交付(iiincrement)以及迭代回顾方便调整下个sprint的内容,同时会进行复盘(retrospection)看看协作、资源等等整个过程中有可能优化的一些内容。一次循环往复不断迭代。
在这里插入图片描述

当有多个sprint进行的时候就会涉及到多Sprint管理,这个时候就会用故事墙(kanban的一种)这样的可视化卡片来监控和催促进度,比如完成情况,到哪位同学负责的节点等等。
在这里插入图片描述

六、拓展阅读

https://zhuanlan.zhihu.com/p/444690251
https://zhuanlan.zhihu.com/p/657568117

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

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

相关文章

OpenCV-平滑图像

二维卷积(图像滤波) 与一维信号一样,图像也可以通过各种低通滤波器(LPF)、高通滤波器(HPF)等进行过滤。LPF 有助于消除噪音、模糊图像等。HPF 滤波器有助于在图像中找到边缘。 opencv 提供了函数 **cv.filter2D()**&…

容积卡尔曼滤波(CKF)仿真抛物线运动

容积卡尔曼滤波(CKF)仿真抛物线运动 容积卡尔曼滤波(Cubature Kalman Filter, CKF)的MATLAB实现。CKF是一种用于非线性系统状态估计的算法,它通过在状态空间中采样点(容积点)来近似非线性函数的…

leetcode:1995. 统计特殊四元组(python3解法)

难度&#xff1a;简单 给你一个 下标从 0 开始 的整数数组 nums &#xff0c;返回满足下述条件的 不同 四元组 (a, b, c, d) 的 数目 &#xff1a; nums[a] nums[b] nums[c] nums[d] &#xff0c;且a < b < c < d 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3…

几个Linux系统安装体验: 开源欧拉系统

本文介绍开源欧拉系统&#xff08;openEuler&#xff09;的安装。 下载 下载地址&#xff1a; https://www.openeuler.org/zh/download/archive/detail/?versionopenEuler%2022.03%20LTS 本文下载的文件名称为openEuler-22.03-LTS-x86_64-dvd.iso。 帮助文档地址如下&…

Data Uncertainty Learning in Face Recognition 论文阅读

Data Uncertainty Learning in Face Recognition 论文阅读 Abstract1. Introduction2. Related Work3. Methodology3.1. Preliminaries3.2. Classification-based DUL for FR3.3. Regression-based DUL for FR3.4. Discussion of Related Works 4. Experiments4.1. Datasets an…

用友BIP与旺店通数据集成方案解析

用友BIP与旺店通企业奇门的供应商集成同步方案 在现代企业的数据管理中&#xff0c;跨平台的数据集成是实现高效业务运作的关键环节。本文将分享一个实际案例&#xff1a;如何通过轻易云数据集成平台&#xff0c;将用友BIP系统中的供应商数据无缝对接到旺店通企业奇门&#xf…

代码随想录Day34 本周小结动态规划,62.不同路径,63. 不同路径 II,343. 整数拆分,96.不同的二叉搜索树。

1.本周小结动态规划 周一 在关于动态规划&#xff0c;你该了解这些&#xff01; (opens new window)中我们讲解了动态规划的基础知识。 首先讲一下动规和贪心的区别&#xff0c;其实大家不用太强调理论上的区别&#xff0c;做做题&#xff0c;就感受出来了。 然后我们讲了动…

vue中使用socket.io统计在线用户

目录 一、引入相关模块 二、store/modules 中封装socketio 三、后端代码(nodejs) 一、引入相关模块 main.js 中参考以下代码 ,另外socketio的使用在查阅其它相关文章时有出入,还是尽量以官方文档为准 import VueSocketIO from vue-socket.io import SocketIO from socket.io-…

Agent Network Protocol技术白皮书:一个对标Anthropic MCP的协议

Agent Network Protocol技术白皮书&#xff1a;一个对标Anthropic MCP的协议 Anthropic MCP让人们看到智能体通过API或协议与外部数据对接的巨大潜力。我们在几个月之前就发布了Agent Network Protocol技术白皮书&#xff0c;一个和MCP类似的协议&#xff0c;致力于解决智能体…

dbeaver安装

数据库常用的管理工具就是navicat&#xff0c;页面简洁大方&#xff0c;且易上手&#xff0c;唯一不好的就是要收费&#xff0c;个人使用的话可以用dbeaver&#xff0c;一款开源的数据库管理工具。 下载地址&#xff1a;https://dbeaver.io/download/ 直接下载这个windows(inst…

每日计划-1206

1. 完成 300. 最长上升子序列 有两种办法&#xff0c;一是使用状态规划&#xff0c;二是用二分法&#xff0c;递推。利用桶排序思想&#xff0c;出自最长递增子序列&#xff08;nlogn 二分法、DAG 模型 和 延伸问题&#xff09; | 春水煎茶 代码实现&#xff1a; class Soluti…

PHP 表单处理

在php接口中创建一个html&#xff0c;并添加一个提交按钮&#xff0c;当填写完文本框里面的内容后&#xff0c;点击提交会自动使用post方法传过去我们写的shop.php接口中。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

Altium Designer学习笔记 29 PCB布线_信号线

基于Altium Designer 23学习版&#xff0c;四层板智能小车PCB 更多AD学习笔记&#xff1a;Altium Designer学习笔记 1-5 工程创建_元件库创建Altium Designer学习笔记 6-10 异性元件库创建_原理图绘制Altium Designer学习笔记 11-15 原理图的封装 编译 检查 _PCB封装库的创建Al…

华为网络设备配置文件备份与恢复(上传、下载、导出,导入)

在日常运维工作中&#xff0c;会经常存在网络割接的情况&#xff0c;为了保证网络割接失败时能重新回退至原有配置&#xff0c;从而不影响原有的办公环境&#xff0c;在网络割接前的备份工作就非常有必要了。 备份方式&#xff1a;FTP 备份技术&#xff1a;PC客户端<---&g…

STM32编码器接口及编码器测速模板代码

编码器是什么&#xff1f; 编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感 器&#xff0c;我们可以通过编码器测量到底位移或者速度信息。编码器从输出数据类型上 分&#xff0c;可以分为增量式编码器和绝对式编码器。 从编码器检测原理上来分&#xff0…

Flume——进阶(agent特性+三种结构:串联,多路复用,聚合)

目录 agent特性ChannelSelector描述&#xff1a; SinkProcessor描述&#xff1a; 串联架构结构图解定义与描述配置示例Flume1&#xff08;监测端node1&#xff09;Flume3&#xff08;接收端node3&#xff09;启动方式 复制和多路复用结构图解定义描述配置示例node1node2node3启…

【python自动化一】pytest的基础使用

1.pytest简述 pytest‌ 是一个功能强大且灵活的Python测试框架&#xff0c;其主要是用于流程控制&#xff0c;具体用于UI还是接口自动化根据个人需要而定。且其具有丰富插件&#xff0c;使用时较为方便。咱们具体看下方的内容&#xff0c;本文按照使用场景展开&#xff0c;不完…

️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206

&#x1f6e0;️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南 &#x1f4dd; 引言 随着大语言模型&#xff08;LLM&#xff09;和人工智能的飞速发展&#xff0c;越来越多的开发者尝试在本地环境中部署大模型进行实验。然而&#xff0c;由于资源需求高、网络限制多…

buuctf:rar

根据题目所示&#xff0c;直接进行爆破 爆破后密码是8795,解压后得到flag flag{1773c5da790bd3caff38e3decd180eb7}

李飞飞空间智能来了:AI生成可探索交互的3D世界,颠覆游戏电影VR行业

目录 前言图生世界摄影效果景深效果滑动变焦 3D效果交互效果动画效果 走进大师的艺术工作流总结 前言 12月3日&#xff0c;有AI“教母”之称的李飞飞发布了空间智能的一个项目&#xff0c;一经发布就立刻引爆了外网。这个项目是仅仅通过一张图片&#xff0c;AI就可以快速的构建…