敏捷开发Scrum

news2024/10/5 12:53:54

目录

  • 1 Scrum概览
    • 1.2 理论基础
      • 1.2.1 透明性(Transparency)
      • 1.2.2 检验(Inspection)
      • 1.2.3 适应(Adaptation)
  • 2 三个角色
    • 2.1 产品负责人(Product Owner)
      • 2.1.1 职责
      • 2.1.2 人选
    • 2.2 流程管理员(Scrum Master)
      • 2.2.1 职责
      • 2.2.2 人选
    • 2.3 开发团队(Scrum Team)
      • 2.3.1 职责
  • 3 三个工件
    • 3.1 产品待办列表(Product Backlog)
    • 3.2 Sprint待办列表(Sprint Backlog)
    • 3.3 增量
  • 4 五个事件
    • 4.1 Sprint
    • 4.2 Sprint计划
      • 4.2.1 目的
      • 4.2.2 流程
    • 4.3 每日站会
      • 4.3.1 流程
    • 4.4 Sprint评审
      • 4.4.1 流程
    • 4.5 Sprint回顾
      • 4.5.1 目的
      • 4.5.2 流程
    • 4.6 产品待办列表梳理(Refinement)
    • 4.7 五个价值观
  • 5 用户故事
    • 5.1 角色
    • 5.2 功能
    • 5.3 价值
  • 6 敏捷日常跟进
    • 6.1 看板
    • 6.2 燃尽图


1 Scrum概览

在这里插入图片描述

​ Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。

​ 而Scrum就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。

​ Scrum是一种兼顾计划性与灵活性的敏捷开发过程,原词来自于橄榄球中的“带球过人”,在橄榄球比赛的每次冲刺前,都将有一个计划安排的过程,但冲刺开始后则由队员在原计划的基础上随机应变。

在这里插入图片描述

在这里插入图片描述

​ 不同于瀑布模型将开发过程划分为需求、设计、编码、测试等阶段,Scrum将整个开发过程分为多次迭代(称为Sprint,冲刺),一般为期2~4周。

​ 在日常工作时,产品负责人会维护一个按优先级排序的“产品待开发项”(Product Backlog),即从客户价值理解和描述的产品功能条目。

​ 在每次迭代的第一天,召开迭代计划会(Sprint Planning Meeting),产品负责人会逐一挑选最高优先级的部分进行讲解,团队可就需求细节、完成标准等进行询问,并逐条估算,放入本次迭代的开发任务中,直至任务量饱和,一旦迭代开始,这些任务将不会发生大的变化。

​ 在每个迭代的最后一天,团队会召集评审会(Review Meeting),邀请产品负责人等参加,对已经完成的产品功能条目进行评审,后者做出判断并给出改进反馈,当天还会召开反思会(Retrospective Meeting),对本次迭代中的成功与失败之处做出总结,并在以后迭代中进行改进。

1.2 理论基础

Scrum以经验性过程控制理论(经验主义)做为理论基础的过程。

​ 经验主义主张知识源于经验, 以及基于已知的东西做决定,Scrum 采用迭代、增量的方法来优化可预见性并控制风险,Scrum 的三大支柱支撑起每个经验性过程控制的实现:透明性、检验和适应。

1.2.1 透明性(Transparency)

​ 透明度是指,在软件开发过程的各个环节保持高度的可见性,影响交付成果的各个方面对于参与交付的所有人、管理生产结果的人保持透明,管理生产成果的人不仅要能够看到过程的这些方面,而且必须理解他们看到的内容,也就是说,当某个人在检验一个过程,并确信某一个任务已经完成时,这个完成必须等同于他们对完成的定义。

1.2.2 检验(Inspection)

​ 开发过程中的各方面必须做到足够频繁地检验,确保能够及时发现过程中的重大偏差,在确定检验频率时,需要考虑到检验会引起所有过程发生变化,当规定的检验频率超出了过程检验所能容许的程度,那么就会出现问题,幸运的是,软件开发并不会出现这种情况,另一个因素就是检验工作成果人员的技能水平和积极性。

1.2.3 适应(Adaptation)

​ 如果检验人员检验的时候发现过程中的一个或多个方面不满足验收标准,并且最终产品是不合格的,那么便需要对过程或是材料进行调整,调整工作必须尽快实施,以减少进一步的偏差。

Scrum中通过三个活动进行检验和适应:

  • 每日例会检验Sprint目标的进展,做出调整,从而优化次日的工作价值;
  • Sprint评审和计划会议检验发布目标的进展,做出调整,从而优化下一个Sprint的工作价值;
  • Sprint回顾会议是用来回顾已经完成的Sprint,并且确定做出什么样的改善可以使接下来的Sprint更加高效、更加令人满意,并且工作更快乐。

2 三个角色

2.1 产品负责人(Product Owner)

Product Owner(产品负责人)负责产品需求的提炼、条目化、优先级排序。

​ 主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果

2.1.1 职责

  • 与客户沟通、确定客户正在意图、产品交付日期等
  • 与团队沟通、共同确定需求
  • 考虑团队的研发实力

2.1.2 人选

  • 部门经理、产品经理、策划人员等都可能做产品负责人。
  • 产品负责人是产品的指路人,必须对产品有长远的规划和深入了解,因此不能简单地选择销售人员甚至客户作为产品负责人。
  • 大型产品如嵌入式产品和网络游戏,常常使用有层级的产品负责人团队,来解决广度与深度的矛盾,如产品总监-产品经理 / 主策划-策划团队。

2.2 流程管理员(Scrum Master)

Scrum Master(Scrum“大师”)负责维护Scrum方法的秩序,并协助解决非技术问题。

​ 主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发

2.2.1 职责

  • 负责整个Scrum流程在项目中顺利实施和进行
  • 没有行政权力
  • 不帮团队做决定、但是可以提出建议

2.2.2 人选

  • Scrum Master的工作方式是靠领导力(leadership)而非权力工作,因此首先应服务于团队。
  • 一种人选是原来的项目经理转型,保留原有的管理和技术职能,但弱化指派任务、下达时间点指令等内容,而增强其组织协调能力。
  • 另一种人选是企业原有的过程改进人员,协助不太了解Scrum的项目经理按照Scrum的方法工作,可以每人负责多个项目,接近全职的Scrum Master。

2.3 开发团队(Scrum Team)

Team(团队)以“自组织”的相对扁平方式进行管理,负责完成开发工作。

​ 主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标

2.3.1 职责

  • 负责整个Scrum流程在项目中顺利实施和进行和自组织的开发团队
  • 一般5~10人
  • 跨职能团队(业务分析师、程序员、测试人员、架构师、数据库设计师)

3 三个工件

3.1 产品待办列表(Product Backlog)

产品待开发项 Product Backlog是从客户价值角度理解的产品功能列表。

​ 产品待办列表是一份有序列表,其中包含产品需要的一切可能的东西,也是产品需求变 动的唯一来源,产品负责人负责管理产品待办列表的内容、可用性和排序。

  • 功能、缺陷、增强等都可以是待开发项。
  • 一般以条目化的方式描述。
  • 客户和用户必须能够理解。
  • 描述怎样使用而非怎样制造。
  • 整体上从客户价值优先级排序。
  • 总工作量一般需要0.5~10人天。
  • 高优先级的条目应有较详尽的描述,低优先级的条目可只有一个名称。

3.2 Sprint待办列表(Sprint Backlog)

冲刺待开发项 Sprint Backlog是从开发技术角度理解的迭代开发任务

​ Sprint 待办列表是一组为当前 Sprint 选出的产品待办列表项,同时加上交付产品增量和实现 Sprint 目标的计划,Sprint 待办列表是开发团队对于下一个产品增量所需的那 些功能以 及交付那些功能到"完成"的增量中所需工作的预测

  • 在简单的纯软件环境中,可以直接把产品待开发项当作冲刺待开发项分配到迭代中。
  • 在复杂的开发环境中,可以把一个产品待开发项分解为Web/后台……软件/硬件……程序/美术……等开发任务。

3.3 增量

​ 产品增量是在Sprint内开发团队交付的所有产品待办列表条目的综合,增量必须是符合团队定义的"完成的定义"(Definition of Done)

4 五个事件

4.1 Sprint

也翻译做冲刺,是Scrum的核心,也是一个容器

​ Sprint是一个时间盒(固定的开始和结束时间),下一个Sprint会紧随上一个Sprint,在这之间没有停顿。Sprint由Sprint计划、每日例会、Sprint执行、Sprint评审及Sprint回顾组成。

4.2 Sprint计划

一个Sprint中准备做的所有工作是在Sprint计划会议中完成的。

​ 这份计划是整个团队(产品负责人、Scrum Master和开发团队)共同完成的

4.2.1 目的

Sprint计划最主要完成两件事情:

  • 在这个Sprint中要完成什么产品待办列表条目?(What)
  • 如何完成这些条目?(How)

4.2.2 流程

  • 迭代计划会在每个迭代第一天召开,目的是选择和估算本次迭代的工作项。
  • 产品负责人逐条讲解最重要的产品功能。
  • 开发团队共同估算故事所需工作量,直到本迭代工作量达到饱和。
  • 产品负责人参与讨论并回答与需求相关的问题,但不干扰估算结果。

4.3 每日站会

开发团队15分钟同步进度并每日调整的一个事件

​ 在每日站会上,每个团队成员回答以下三个问题(基本的,可以根据情况增加新问题)

  • 昨天,我为帮助开发团队达成 Sprint 目标做了什么?
  • 今天,我为帮助开发团队达成 Sprint 目标准备做什么?
  • 是否有任何障碍在阻碍我或开发团队达成 Sprint 目标?

4.3.1 流程

  • 队员认领任务(或由组长协商分发),独立或与别人一起完成任务。
  • 团队内部利用每日立会来沟通进度。
  • 开发团队利用燃尽图来展示整体进度。
  • 如无特殊原因,迭代期内无变更。

4.4 Sprint评审

在Sprint快结束时,Scrum团队在一起检视所交付的产品增量,并调整产品待办列表

​ Sprint评审不是Sprint演示、也不叫做Sprint demo,一定要包括收集反馈和调整的环节

4.4.1 流程

  • 小组向产品负责人展示迭代工作结果。
  • 产品负责人给出评价和反馈。
  • 以用户故事是否能成功交付来评价任务完成情况。

4.5 Sprint回顾

Scrum团队检视和调整工作方法、流程,持续改进的事件

4.5.1 目的

Sprint回顾的主要目的是

  • 检视前一个 Sprint 中关于人、关系、过程和工具的情况如何
  • 找出并加以排序做得好的和潜在需要改进的主要方面
  • 制定改进 Scrum 团队工作方式的计划

4.5.2 流程

  • 在每个迭代后召开简短的反思会。
  • 总结哪些事情做的好,哪些事情做的不好。
  • 制定改进计划。

4.6 产品待办列表梳理(Refinement)

​ 即需求梳理会,每周Scrum团队在一起为下一个Sprint进行准备工作。

4.7 五个价值观

  • 承诺 – 愿意对目标做出承诺
  • 专注– 把你的心思和能力都用到你承诺的工作上去
  • 开放– Scrum 把项目中的一切开放给每个人看
  • 尊重– 每个人都有他独特的背景和经验
  • 勇气– 有勇气做出承诺,履行承诺,接受别人的尊重

5 用户故事

用户故事:描述具体的需求的卡片,按作为一个……,可以……,以便……样式和思路写成的用户需求,就是用户故事

​ 这种样式是技法层面的东西,它保证了无需太多思考,用户故事中即可全面包含角色、功能、价值这三个要素,要想写好用户故事,要改变那种面向功能而非客户需求的纯技术观念。

5.1 角色

​ 切记不要总是写“作为一个用户”,而是要把用户区别对待,这样才能更好地理解他们使用什么功能,如何使用,为何使用。

5.2 功能

​ 即用户能亲自执行的操作,应区分用户操作和产品功能之间的关系,因为产品功能可能也提供了用户所需的价值,但却极可能不便于操作。

5.3 价值

​ 是完成操作后,客户所得到的好处,价值里边,常常要带有一点褒义词,或有一些吸引人的内容,比如“高效地……”“……可以节省话费”等。

6 敏捷日常跟进

6.1 看板

  • 看板又叫任务版,对于Sprint进度的沟通,看板是一种简单而强大的方式,从形式上看,看板显示的是Sprint冲刺待开发项随时间的进展状态。
  • 故事板简单说就是把所有正在工作的内容,张贴到一个板状空间中。
  • 看板(Kanban)一词来自日语,指的是制造业中的一种可视化方法,有相当复杂的思想和流程。由于两者看上去很类似,两个词汇经常混用。

6.2 燃尽图

  • 在Sprint执行的每一天,团队成员都要更新未完成任务的剩余工作量估算,我们可以创建一个表来是使数据可视化,就是燃尽图
  • 根据整个团队的剩余工作总量,每天进行更新,就可以得到燃尽图。

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

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

相关文章

JDK多版本管理工具jenv

JENV mac jdk版本管理工具 Mac 安装jenv可以使用brew brew install jenv配置jenv zsh配置方式: echo export PATH"$HOME/.jenv/bin:$PATH" >> ~/.zshrc echo eval "$(jenv init -)" >> ~/.zshrcbash配置方式: ech…

海上明月共潮生【InsCode Stable Diffusion 美图活动一期】

一、 Stable Diffusion 模型在线使用地址: https://inscode.csdn.net/inscode/Stable-Diffusion 购买 右下角点击 Stable Diffusion WebUI 进入工作界面 二、模型相关版本和参数配置: 模型:chilloutmix_NiPrunerdFp32Fix.safetensors…

解决Python的SyntaxError: Non-UTF-8 code starting with ‘\xbb‘问题

文章目录 一、报错二、分析三、解决3.1 方法一3.2 方法二3.3 方法三 一、报错 在程序中,line 8为含有中文的注释,编译后出现了SyntaxError: Non-UTF-8 code starting with \xbb的报错,具体如下图。 二、分析 这个错误是由于Python解释器无…

教你如何快速批量添加滚动文字水印

在视频中添加滚动的文字水印可以增加视频的专业感和吸引力,但手动给大量视频添加滚动文字水印是一项费时费力的任务。下面是一个快速批量给大量视频添加滚动文字水印的方法,有需要的小伙伴们可以进来学习一下! 今天分享的方法会使用到一个剪辑…

IDEA 中 gradle面板显示重复工程

使用 IDEA 构建多模块工程时,每新建一个模块,gradle 构建后,面板上就会出现一个重复的根工程,如下图红框部分,怎么处理下

ASIC数字设计:前端设计、验证、后端实现

前端设计 数字系统设计中有三个重要的设计级别概念:行为级(Behavior Level)、寄存器传输级(Register Transfer Level)和门级(Gate level)。其中, 行为级通过行为级算法描述数字系统&…

zabbix 报警测试报错

一、报错描述 在测试报警媒介时,报错如下: main.py脚本是在windows上的pycharm上编写的,在windows上运行没有问题,放在linux服务器上使用python3 main.py 运行也没有问题,但是使用./main.py执行就报错 [rootp0-tkhijbs-broadco-…

十、Docker虚悬镜像

学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 前言一、介绍二、如何产生的?三、尝试弄一个三、查看、删除虚悬镜像3.1 查看虚悬镜像3.2 删除虚悬镜像 总结 前言 什么是虚悬镜像? 一、介绍 虚悬…

【LEAP模型】能源供应转换、需求及碳排放预测、平衡表核算、模型框架构建、操作、情景设计、结果分析、优化、预测结果不确定性分析等

模型简介: 中文名:LEAP模型 外文名:Long Range Energy Alternatives Planning System/ Low emission analysis platform LEAP模型[1]允许研究者根据研究目的、数据可获取度、研究对象特点等灵活构建模型结构,十分适用于能源数据…

如何修改Jupyter Notebook的默认目录和默认浏览器

一、修改默认目录 Jupyter Notebook的文件默认保存目录是C:\Users\Administrator,默认目录可在黑窗口中查看,如下图所示: 为了方便文档的管理,可将默认目录修改成自己想保存的地方。修改方法如下: 1、找到config文件 …

centos搭建ftp服务器window使用ftp命令

part 1、centos搭建ftp服务器 参考链接:Linux搭建FTP,并使用Windows和IE浏览器访问FTP服务_一二三,开花的博客-CSDN博客 part 2、window使用ftp服务器 参考链接:Windows命令之ftp命令「建议收藏」-腾讯云开发者社区-腾讯云 备…

深度学习准确率提升之天花板分析

案例1 OCR文字识别流水线主要分为三个模块:文字检测->字符分割->字符识别 训练完成后整个系统的准确率是72%,需要进一步提升准确率就需要单独分析每个模块的提升空间。 1)对于文件检测模块,把训练集的图像人工确保标注准…

分享一份不算优秀的HTML简历模版

一份算不上优秀的HTML简历模版 Demo http://sylvanding.github.io/cv Repo https://github.com/sylvanding/cv 示例 总结了一下本科四年都做了些什么,把这套模版分享给大家。

【C】数据在内存中的存储

前言 > 在内存中,整型和浮点型存储的方式是不同的,从内存中读取的方式也是有所差异的,这篇文章主要介绍整型和浮点型在内存中存储的方式。 整型在内存中的存储 计算机中有符号数有3种表示方式: 原码:直接将二进制按…

Material —— RBD(Houdini To UE)

目录 一,ABC to UE 二,FBX to UE 三,APEX to UE 四,VAT to UE Houdini刚体碎块导入UE,有两个方面需还原,一是材质还原,一是动态还原; 一,ABC to UE 材质方面&#…

医学图像超分辨率的多模态不同核大小的多头卷积注意

文章目录 Multimodal Multi-Head Convolutional Attention with Various Kernel Sizes for Medical Image Super-Resolution摘要本文方法实验结果 Multimodal Multi-Head Convolutional Attention with Various Kernel Sizes for Medical Image Super-Resolution 摘要 超分辨…

11 从0开始学PyTorch | PyTorch使用nn模块、手工实现神经网络

上一小节对神经网络有了基本的了解,这一小节就看一下如何用代码来实现一个神经网络。 我们所用的案例还是那个温度转换的案例,只不过需要我们把之前的线性模型替换成神经网络模型,并重新训练以找到适合神经网络的权重。 依照我们的经验&#…

PyTorch 神经网络模型可视化(Netron)

文章目录 PyTorch 神经网络模型可视化(Netron)ONNXtorch.savetorch.jit.scripttorch.jit.trace PyTorch 神经网络模型可视化(Netron) Netron 是一个用于可视化深度学习模型的工具,可以帮助我们更好地理解模型的结构和…

scanf大家都用过,但是scanf的多组输入!及scanf的两种输入方法你了解过嘛?看完这篇文章保证你彻底认识scanf!

☕ hello宝子们大家好啊 ,欢迎来到鸽芷咕的个人频道。 🎬 鸽芷咕: 个人主页 🔥 个人专栏: 《快速入门C语言》 《C语言初阶篇》 文章目录 前言💬 scanf( ) 函数的介绍💬 scanf( )的俩种用法🌱示例一:⛳️输入…

【备战秋招】每日一题:华东师范大学保研机试-2022-Minimum_Sum

为了更好的阅读体检,可以查看我的算法学习博客在线评测链接:P1053 题目内容 你有一个序列,,...,,然后给你一些区间[l,r].对于每一个区间,你需要找到下式的最小值,对于所有可能的x 输入格式 第一行一个整数代表序列长度。 接下来一行有N个正整数,用空格隔开。 …