2021腾讯数字生态大会直播预约通道开启!技术内容大爆发,开发者必看! 了解详情
写点什么

敏捷开发流程之 Scrum:3 个角色、5 个会议、12 原则

2020 年 2 月 06 日

敏捷开发流程之Scrum:3个角色、5个会议、12原则

一、Scrum 的定义和目的

Scrum 是一个用于开发和维护复杂产品的框架,是一个增量的、迭代的开发过程,目的是让开发人员像打橄榄球一样迅猛并充满激情,通过团队合作,提高工作效率。通过团队间的有效交互,为企业创造价值。


二、敏捷宣言

其实,在发表《敏捷宣言》之前,很多的敏捷实践都已经存在且使用了,比如:Scrum、XP、KanBan 等。之所以发表《敏捷宣言》,是因为这些实践都是在单打独斗地推进敏捷开发,而不是以一个联合体的形式,且没有一个统一的指导方针。所以 17 位敏捷联合创始人决定发表《敏捷宣言》,共同在全世界推进敏捷开发运动。下面是敏捷宣言的 4 句话:


1578280381529067233.png


三、Scrum 中的人员角色

3 个角色

Scrum 中的人员分为 3 个角色:产品所有者(Product Owner), Scrum Master,开发团队(Team)。


  • 产品所有者:定义所有产品功能,决定产品发布的内容以及日期,对产品的投入产出负责,根据市场变化对需要开发的功能排列优先顺序,合理地调整产品功能和迭代顺序,认同或者拒绝迭代的交付。

  • ScrumMaster :ScrumMaster 不是项目经理,他没有分配任务的权力,没有考核的权力,没有下命令的权力,他指导项目组的成员按照 Scrum 的原则、方法做事情,领导团队完成 Scrum 的实践以及体现其价值,排除团队遇到的困难,确保团队胜任其工作,并保持高效的生产率,使得团队紧密合作,使得团队个人具有多方面职能的工作能力,保护团队不受到外来无端影响。

  • 开发团队:经典团队拥有 5-9 人,团队成员包含程序员、测试员、用户体验设计等等,团队关系在一个迭代中应该是固定的,个人的职能可以在新迭代开始时发生调整,团队自我组织和管理(自组织,自驱动),团队成员都全职工作。


四、Scrum 的开发流程

1578280373392083864.png


(图片源自网络)


不同于瀑布模型将开发过程划分为需求、设计、编码、测试等阶段,Scrum 将整个开发过程分为多次迭代(称为 Sprint,冲刺),一般为期 2~4 周,最常见的为 2 周。Scrum 并非以一段时间集中完成一个过程,而是将所有过程中必须的每一部分集中在这段时间内完成。需求、设计、编码、测试、上线都必须在一个迭代中完成,每个迭代必须产生一个可以工作的软件。


4.1 五个会议

Scrum 整个开发过程分为五个会议:


1)待办事项整理会议(Backlog Grooming Meeting)


迭代计划会议开始之前 3 天召开,Product Owner 与 Scrum Master 必须参加,关键开发者或架构师需要参加;时间控制在 30 分钟到 1 小时。


由 Product Owner 将一批希望团队在下次迭代时实现的用户故事,按照实现顺序描述给在场的团队成员,Scrum Master 与在场成员分析用户故事,明确指出团队认为需求不明确的地方,Product Owner 现场记录,会后补全,Scrum Master 与架构师,还有在场成员分析用户故事需要包含哪些技术任务,Scrum Master 先把子任务建立,方便迭代计划会议的时候团队可以更准确地预估任务故事点。


会议结束时,Product Owner 确保在迭代计划会议开始之前团队提出的问题都能被解决,会议重点如果团队发现需要加强或是完善的地方,Product Owner 还有两到三天的时间可以补强,而不是浪费迭代计划会议的时间去做这件事情。


2)迭代计划会议(Sprint Planning Meeting)


产品负责人建立产品功能列表(Product Backlog)。产品功能列表是一组条目化需求,它必须从客户价值角度描述,并按优先级排序。


Scrum Master 召集相关人员召开迭代计划会,迭代计划会在每个迭代第一天召开,目的是选择本次迭代的 Backlog 和估算本次迭代的工作量。


产品负责人逐条讲解最重要的产品功能,开发团队共同估算 Backlog 所需工作量,直到本迭代工作量达到饱和。产品负责人参与讨论并回答和需求相关的问题,但不干扰估算结果。队员认领任务(或由组长协商分发),独立或与别人一起完成任务;会议时间控制在 1-2 小时内。


3)每日站会(Standup Meeting)


团队内部利用每日立会来沟通进度,15 分钟结束,开发团队利用燃尽图来展示整体进度;如无特殊原因,迭代期内无变更,在每日站会上团队成员需要回答以下 3 个问题:


  • 昨天你做了什么?

  • 今天你将要做什么?

  • 你有需要帮助的地方吗?


这些都是团队成员的彼此承诺。


4)评审会(Retrospective Meeting)


小组向产品负责人展示迭代工作结果,产品负责人给出评价和反馈。以用户故事是否能成功交付来评价任务完成情况。整个团队都需要参加,ScrumMaster、产品所有者、团队,可能还有客户,时间控制在 1-2 小时内。


5)反思会(Retrospective Meeting)


在每个迭代后召开简短的反思会,总结哪些事情做得好,哪些事情做得不好。做得好的保留,不好的摒弃。会议得出这样的结论:开始做什么、继续做什么、停止做什么,一般控制在 15-30 分钟。


Scrum 是一套开发流程,是敏捷的一种,实施主要还是看人,强调是自组织、自驱动的,只有不断的在实际应用中仔细体会,才能理解 Scrum 的真谛,把 Scrum 用好。


4.2 12 原则

下面给出敏捷开发的 12 原则,这 12 原则作为敏捷开发对于软件开发流程的指导性纲领,也是对敏捷宣言进行了具有实际操作意义的解释,希望大家在实际应用中仔细体会。


我们遵循以下准则:


  • 我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。

  • 欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。

  • 要不断交付可用的软件,周期从几周到几个月不等,且越短越好。

  • 项目过程中,业务人员与开发人员必须在一起工作。

  • 要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。

  • 无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。

  • 可用的软件是衡量进度的主要指标。

  • 敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。

  • 对技术的精益求精以及对设计的不断完善将提升敏捷性。

  • 要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。

  • 最佳的架构、需求和设计出自于自组织的团队。

  • 团队要定期反省如何能够做到更有效,并相应地调整团队的行为。


本文转载宜信技术学院网站。


原文链接:http://college.creditease.cn/detail/344


2020 年 2 月 06 日 10:30571

评论

发布
暂无评论
发现更多内容

GitHub获百万下载的阿里P5-P9必刷知识体系图核心手册

Crud的程序员

Java 编程 程序员 架构

金三银四,冰河为你整理了这份20万字134页的面试圣经!!

冰河

面试 面经 offer 金三银四 我要进大厂

近万字原创长文,以追忆2020年:《请回答,2020》

朱季谦

随笔杂谈

模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案

朱季谦

建表

智慧党建平台建设--开拓新时期党建系统

13530558032

区块链如何应用到食品?区块链食品安全溯源

13530558032

阿里P7大牛整理!对Android开发的现状和未来发展的思考,吊打面试官系列!

欢喜学安卓

android 程序员 面试 移动开发

基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇5:手机应用开发)

不脱发的程序猿

物联网 28天写作 3月日更 NB-IoT智慧路灯 手机应用开发

vue项目中使用tinymce富文本编辑器实现图片上传/粘贴格式

小啵

tinymce

微信扫码登录技术实现的简单思考

朱季谦

redis

2021最新分享Java面试全套合集!

比伯

Java 编程 架构 面试 计算机

Python OpenCV 图像平移,取经之旅第 10 天

梦想橡皮擦

3月日更

是谁拖(慢)了 Redis 的后腿?

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

v01.12 鸿蒙内核源码分析(双向链表) | 谁是内核最重要结构体 | 百篇博客分析 HarmonyOS 源码

鸿蒙内核源码分析

鸿蒙 HarmonyOS 鸿蒙内核源码分析 百篇博客分析鸿蒙 百万汉字注解鸿蒙

Knativa 基于流量的灰度发布和自动弹性实践

Serverless Devs

Serverless Kubernetes 运维 云原生 Knative

android开发经典实战!我的移动开发春季历程,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

策略枚举:消除在项目里大批量使用if-else的正确姿势

朱季谦

枚举 策略模式

压抑了五个月的我终于可以放声呐喊了!阿里是真的难进,Java四面面经+面试题

Java架构追梦

Java 阿里巴巴 架构 面试 金三银四

web前端面试题详细解析

小啵

面试

Kylin安装部署

五分钟学大数据

kylin 3月日更

深入理解Spring Security授权机制原理

朱季谦

security

统一日志管理方案:Spring项目logback日志与logstash和Elasticsearch整合

朱季谦

ELK

新思科技解析导致汽车无钥匙进入系统易受攻击的漏洞及缺陷

InfoQ_434670063458

什么?都1202年了还不懂k8s和容器的关系?!这份k8s指南快拿走不谢!

观测云

云计算 k8s 云服务 知识星球

嵌入式软件架构设计之分层设计

cdhqyj

架构 软件 嵌入式 分层

Activiti工作流自动生成28张数据库表的底层原理分析

朱季谦

Activity 工作流引擎

Rust从0到1-基础概念-函数

rust 函数

EGG Network阿凡提的模式是怎么样的?早点了解别错失这个机会!

币圈那点事

区块链

visualvm工具远程对linux服务器上的JVM虚拟机进行监控与调优

朱季谦

JVM GC 调优

spark性能调优之JVN调优

大数据技术指南

spark 3月日更

区块链数字版权保护--为数字版权保护赋能

13530558032

英特尔On技术创新峰会

英特尔On技术创新峰会

敏捷开发流程之Scrum:3个角色、5个会议、12原则-InfoQ