敏捷开发作为一种开发模式,近年来深受研发团队欢迎,与瀑布式开发相比,敏捷开发更轻量,灵活性更高,在当下多变环境下,越来越多团队选择敏捷开发。那么什么是敏捷开发?什么是 Scrum?,今天 Tower 小课堂为大家一一介绍敏捷开发和 Scrum,快来看看吧~
什么是敏捷
在了解敏捷开发之前,我们先来看看什么是敏捷。
敏捷是一种在不确定和变化的环境中,通过创造和响应变化以取得成功的能力。
什么是敏捷开发
而敏捷开发则是为了适应快速变化的环境而发展出来的一种开发模式,是以用户的需求进化为核心,采用迭代、循序渐进的方式,适用于需求不明确或者很容易变化且功能可以一部分一部分交付的产品。敏捷开发具有极大的灵活性,更快交付价值,主张拥抱变化。
简单理解就是,对于一个交付的产品,可以分步骤拆解成多个迭代,每次迭代只交付一部分功能,随着迭代次数的增多,产品功能也越来越完善。
最常见的方式有 Scrum、Kanban、极限编程(XP)等。今天我们来介绍其中最热门的 Scrum。
Scrum 是什么
Scrum 是敏捷开发的其中一种方式,是一种开发流程框架,可以帮助团队更好地进行产品开发与持续交付。在 Scrum 框架中,团队优先处理的通常都是对用户具有更高价值的需求。
Scrum 是一个迭代、增量的过程,在 Scrum 框架中,产品的开发过程被划分为若干个短周期进行,也就是冲刺(Sprint),每个冲刺交付一部分可用的功能,每个冲刺通常会控制在四周以内(两周为一个 Sprint 最常见)。
对于 Scrum 来说,它具有一些基本原则“3355”,即 3 个角色、3 个工件、5 个会议和 5 个价值观,其中:
三大角色
- Product Owner(产品负责人):代表业务方利益,对产品的成功负责
- Scrum Master( 敏捷教练):带领团队,是 Scrum 流程的引领者,为团队排除开发过程中遇到的障碍
- Scrum Team(开发团队):一般由跨职能的 5-9 人自组织组成,包括研发、测试等角色
三大工件
- Product Backlog(产品待办列表):由产品负责人不断更新的一份有优先级顺序的需求列表
- Sprint Backlog(冲刺待办列表):每一次冲刺都会从产品待办列表选出部分来组成本次冲刺的任务列表
- Increment(潜在的可交付产品增量):一个可检查的“完成”工作,每一次冲刺就会产生一部分成果,随着这些成果的累计,持续丰富产品价值
五大会议
- 产品梳理会:由产品负责人、产品经理对产品需求进行评审、梳理和设置优先级,这个会议将输出 Product Backlog(产品待办列表)
- 冲刺计划会议:在一个冲刺开始前,三大角色对本次冲刺需要完成的内容进行规划,输出 Sprint Backlog(冲刺待办列表)
- 每日站会:开发团队和敏捷教练每天固定开的会议,一般15 分钟左右,回答三个问题:昨天做了什么,今天要做什么,遇到了什么问题
- 冲刺评审会:一般在一个冲刺快结束的时候所有干系人参与的会议,对本次冲刺的成果进行演示和验收,确保沿着正确的方向在开发
- 冲刺回顾会议:在冲刺结束后,下一次冲刺开始前进行,三大角色对本次冲刺的过程进行回顾,总结好的经验和不足之处,以便下次冲刺可以更好进行
加餐小黑板(术语解释)
- 用户故事(User Story):从用户的角度对功能进行简短描述,通常为:作为「某个角色」,我想要 「某个功能」 以便解决 「某个问题」。
- 故事点(Story Points):故事点是一个度量单位,用于表示完成一个用户故事,一项功能或一件工作所需工作量的估算结果。
- 燃尽图(Burndown Chart):以图表展示随着时间的减少工作量的剩余情况,工作量一般以竖轴展示,时间一般以横轴展示。
解读 Scrum 流程
下面这张图是典型的 Scrum 流程框架,接下来我们一起来解读这张图。在 Scrum 中,将开发过程拆分成多个冲刺,一般 1-4 周为一次冲刺。主要有需求收集-冲刺规划-开发执行-冲刺回顾四大过程:
1、需求收集
产品负责人收集来自团队、用户等各方的需求,以用户故事的形式进行梳理,评估需求,并对评审通过的需求进行设置优先级,形成 Product Backlog;
👉 Tips:在 Tower,各部门的成员可以在「需求收集」项目内,将需求通过创建「任务」的方式进行反馈,一个任务代表一个反馈,在「任务描述」处以用户故事的形式进行说明,并将任务指派给产品负责人;产品负责人对需求评估后,可以通过「字段」进行优先级设置。
2、冲刺规划
在每一次冲刺前,开冲刺计划会议,会议上,产品负责人与交付团队从 Product Backlog 挑选部分用户故事规划进本次冲刺(一般会按照优先级进行挑选),形成 Sprint Backlog;
接着,对每个 Sprint Backlog 里的用户故事拆解任务(设计、前端、后端、测试等),设置截止时间,并指派给对应的成员。
👉 Tips:每个冲刺可以创建一个 Tower 项目,将需要规划进本次冲刺的任务从「需求收集」项目里批量添加至此项目中,通过「子任务」拆解设计研发任务,通过「字段」设置截止时间、负责人、Story Points 等信息。
3、开发执行
团队各个成员开始执行任务进行交付,期间每天敏捷教练带领交付团队开 15 分钟的站会,冲刺结束时开启评审会议进行产品交付;
👉 Tips:开每日站会时,看板是研发团队最喜爱的工具,此时打开 Tower 看板视图,每个阶段的任务数量一目了然,当任务已经进入下一个阶段时,直接拖动任务卡片更改任务阶段即可。
4、冲刺回顾
每次冲刺结束后,一般团队会开一场回顾会议,对本次冲刺进行总结,以便下一次冲刺可以更好地进行。
👉 Tips:使用 Tower「项目文档」功能,沉淀相关文档,还可以创建在线文档共同编辑,总结和记录经验。
通过这样的流程,完成一次又一次的冲刺,不断丰富产品功能,实现小步快跑的产品交付。
加餐:
敏捷开发VS瀑布式开发
相信许多小伙伴对「敏捷开发和瀑布式开发有什么区别?」抱有疑问,下面我们来看看两者的区别:
瀑布式开发强调计划、管控和结构化,遵循严格的生命周期概念,把软件开发拆分成由固定顺序阶段构成的过程:设计 → 开发 → 测试 → 部署 → 运维,并按照计划一一执行。
而敏捷开发强调拥抱变化,采用小步快跑的迭代方式进行产品交付,每次迭代只交付一部分功能,慢慢完善产品。
- 范围:瀑布式开发更适合需求明确、不易改变的项目;敏捷开发更适合需求复杂易变,早期难以完全确定的项目
- 计划:瀑布式开发前期需要做大量且详细的计划,剩下的按照计划执行;而敏捷开发前期只做简单的预测计划,重点是在过程中强调团队自适应变化
- 文档:瀑布式开发重视各种计划文档,而敏捷开发以交付可工作的软件包作为进度衡量标准
- 变化:瀑布式开发避免变化,敏捷开发拥抱变化
以上就是本次小课堂关于敏捷开发和 Scrum 的全部内容啦,您还希望看到哪些干货,欢迎访问官网或者联系我们~