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

原标题:敏捷开发流程之Scrum:3个角色、5个会议、12原则
本文主要从Scrum的定义和目的、敏捷宣言、Scrum中的人员角色、Scrum开发流程、敏捷的12原则等几方面帮助大家理解Scrum敏捷开发的全过程 。
一、Scrum的定义和目的
Scrum是一个用于开发和维护复杂产品的框架 , 是一个增量的、迭代的开发过程 , 目的是让开发人员像打橄榄球一样迅猛并充满激情 , 通过团队合作 , 提高工作效率 。 通过团队间的有效交互 , 为企业创造价值 。
二、敏捷宣言
其实 , 在发表《敏捷宣言》之前 , 很多的敏捷实践都已经存在且使用了 , 比如:Scrum、XP、KanBan等 。 之所以发表《敏捷宣言》 , 是因为这些实践都是在单打独斗地推进敏捷开发 , 而不是以一个联合体的形式 , 且没有一个统一的指导方针 。 所以17位敏捷联合创始人决定发表《敏捷宣言》 , 共同在全世界推进敏捷开发运动 。 下面是敏捷宣言的4句话:

敏捷开发流程之Scrum:3个角色、5个会议、12原则
文章图片
三、Scrum中的人员角色
3个角色
Scrum中的人员分为3个角色:产品所有者(ProductOwner),ScrumMaster , 开发团队(Team) 。
·产品所有者:定义所有产品功能 , 决定产品发布的内容以及日期 , 对产品的投入产出负责 , 根据市场变化对需要开发的功能排列优先顺序 , 合理地调整产品功能和迭代顺序 , 认同或者拒绝迭代的交付 。
·ScrumMaster:ScrumMaster不是项目经理 , 他没有分配任务的权力 , 没有考核的权力 , 没有下命令的权力 , 他指导项目组的成员按照Scrum的原则、方法做事情 , 领导团队完成Scrum的实践以及体现其价值 , 排除团队遇到的困难 , 确保团队胜任其工作 , 并保持高效的生产率 , 使得团队紧密合作 , 使得团队个人具有多方面职能的工作能力 , 保护团队不受到外来无端影响 。
·开发团队:经典团队拥有5-9人 , 团队成员包含程序员、测试员、用户体验设计等等 , 团队关系在一个迭代中应该是固定的 , 个人的职能可以在新迭代开始时发生调整 , 团队自我组织和管理(自组织 , 自驱动) , 团队成员都全职工作 。
四、Scrum的开发流程

敏捷开发流程之Scrum:3个角色、5个会议、12原则
文章图片
不同于瀑布模型将开发过程划分为需求、设计、编码、测试等阶段 , Scrum将整个开发过程分为多次迭代(称为Sprint , 冲刺) , 一般为期2~4周 , 最常见的为2周 。 Scrum并非以一段时间集中完成一个过程 , 而是将所有过程中必须的每一部分集中在这段时间内完成 。 需求、设计、编码、测试、上线都必须在一个迭代中完成 , 每个迭代必须产生一个可以工作的软件 。
4.1五个会议
Scrum整个开发过程分为五个会议:
1)待办事项整理会议(BacklogGroomingMeeting)
迭代计划会议开始之前3天召开 , ProductOwner与ScrumMaster必须参加 , 关键开发者或架构师需要参加;时间控制在30分钟到1小时 。
由ProductOwner将一批希望团队在下次迭代时实现的用户故事 , 按照实现顺序描述给在场的团队成员 , ScrumMaster与在场成员分析用户故事 , 明确指出团队认为需求不明确的地方 , ProductOwner现场记录 , 会后补全 , ScrumMaster与架构师 , 还有在场成员分析用户故事需要包含哪些技术任务 , ScrumMaster先把子任务建立 , 方便迭代计划会议的时候团队可以更准确地预估任务故事点 。
会议结束时 , ProductOwner确保在迭代计划会议开始之前团队提出的问题都能被解决 , 会议重点如果团队发现需要加强或是完善的地方 , ProductOwner还有两到三天的时间可以补强 , 而不是浪费迭代计划会议的时间去做这件事情 。
2)迭代计划会议(SprintPlanningMeeting)
产品负责人建立产品功能列表(ProductBacklog) 。 产品功能列表是一组条目化需求 , 它必须从客户价值角度描述 , 并按优先级排序 。
ScrumMaster召集相关人员召开迭代计划会 , 迭代计划会在每个迭代第一天召开 , 目的是选择本次迭代的Backlog和估算本次迭代的工作量 。
产品负责人逐条讲解最重要的产品功能 , 开发团队共同估算Backlog所需工作量 , 直到本迭代工作量达到饱和 。 产品负责人参与讨论并回答和需求相关的问题 , 但不干扰估算结果 。 队员认领任务(或由组长协商分发) , 独立或与别人一起完成任务;会议时间控制在1-2小时内 。
3)每日站会(StandupMeeting)
团队内部利用每日立会来沟通进度 , 15分钟结束 , 开发团队利用燃尽图来展示整体进度;如无特殊原因 , 迭代期内无变更 , 在每日站会上团队成员需要回答以下3个问题: