这是《落叶》文集里第 186 片落叶,希望你能喜欢,不为别的,只为这份坚持。
【背景】
最近觉得又有人开始讨论敏捷了,一些新同学在找工作时,会经常看到招聘要求上有说熟悉了解瀑布研发模型和敏捷开发,也有的同学在进入公司之后,特别是互联网产品企业,经常会听到人说,xx 公司在用敏捷,我们用的也是敏捷等等。所以,他们会很好奇到底什么是敏捷呢?这在学校里或者培训班里应该是很少提及的。
【你问】
人人都在说的敏捷到底是什么?
【我答】
今天我们就先来简单聊聊什么是敏捷吧。这个东东已经似火非火了好多年,特别是进入移动互联时代之后,感觉一说到研发模式,要不是敏捷模式,都不好意思说出口。
我们先通过两张图来看下传统的瀑布研发模式和敏捷模式的区别在哪:
采用瀑布研发模型时,用户直到产品发布才能看到是不是自己想要的,最终成品与需求的偏差率相对较大。
采用敏捷研发模型时,用户能持续看到阶段性可用的产品,并能及时提出改进反馈,最终成品与需求的偏差率相对较小。
我们再来看看平时大家嘴里说的敏捷软件开发、Scrum或者XP到底是什么关系:
1、敏捷软件开发是一种以用户的需求进化为核心,迭代,循序渐进的开发方法;
2、Scrum 是一种迭代式增量软件开发模型,通常用于敏捷软件开发。;
3、XP,又叫极限编程,也是一种敏捷软件开发的模型,以代码为核心,且由四部分组成:交流、简化、反馈、勇气,常听到的结对编程就是其中一个模式;
在国内,我们听到最多的是 Scrum,那是因为经过很多项目和团队的实践,证明了它的有效、简单、持续交付的能力,所以很多初创公司或小规模团队都青睐它。
我们通过下图来了解一下 Scrum 模型中的角色投入程度:
从上图中“猪”和“鸡”的对话,我们不难看出在 Scrum 中,有以下两种角色:
内部角色(全身心投入的成员):产品负责人、敏捷教练、研发团队;
外部角色(部分投入的成员):用户、管理层、其他利益相关者;
最后,我们通过一张图来快速了解一下 Scrum 中主要的角色、产物、会议和流程:
三个角色:
Product Owner:PO,产品负责人,团队的掌舵人,引领者团队朝向正确的方向前进。
Scrum Master:SM,敏捷教练(这是我个人最喜欢的,也是认为最贴切的中文翻译了)
Team:由开发和测试等相关人员组成的团队,每个迭代周期内所有任务的完成者。
五个产物:
Product Backlog:产品需求清单。
Sprint Goal:迭代目标,也叫冲刺目标。
Sprint Backlog:迭代需求清单。
Task List:任务列表。
Increment Product:增量产品。
四个会议:
Planning Meeting:计划会议。
Daily Scrum Meeting:每日站会,传说中的15分钟,“站”只是多种形式中效率最高的一种。
Review Meeting:评审会议,也可叫验收会议。
Retrospective Meeting:反思会议,所有会议里我认为是最重要的一个,因为敏捷思想中最核心的就是持续改进,而持续改进来源于持续的总结和反思。
流程:
1、Team 在 PO 的主持下,通过 Planning Meeting、Product Backlog 和 Sprint Goal 产出 Sprint Backlog;
2、Team 在 SM 的指导下,通过 Sprint Backlog、Task List 和 Daily Scrum Meeting,在一个迭代周期(图中是30天)产出 Increment Product;
3、PO 和 Team,通过 Review Meeting,验收每个迭代周期产出的增量产品;
4、SM 和 Team,通过 Retrospective Meeting,反思每个 Sprint 里做的好的和做的不好的地方,持续总结和改进,以此来提高每个 Sprint 的战斗力。
最后再附上一些相关的概念:
User Story:用户故事,从用户的角度来描述用户渴望得到的功能。
Task Board:任务墙,将 Scrum 过程中的各项事务放大并进行可视化展示的各种类型的载体。
Burn Down Chart:燃尽图,迭代周期内用于跟踪任务进度的可视化图形。
《测试路上你问我答》里的 Q&A 44,如果是你要的,甚好!如果不是,你问,我答!
作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵