读书给人以快乐、给人以光彩、给人以才干。 —— 培根
基本信息
|
收获 & 思考
阅读目标:提前明确目标,有助于提升阅读效率 |
学习目标 |
|
|
|
关键脉络
使用思维导图,绘制书籍脉络,便于下次回顾重点
一、什么是敏捷,什么是Scrum
——敏捷和Scrum入门
无论你怎样为系统做计划,它就是不会如你所愿。世界不是按照某种方式运转的。你所处的系统并不在乎你做的计划。——[荷]Jurgen Appelo
1.1 什么是敏捷
【实施Scrum对组织和项目的好处】
|
敏捷,英语单词是Agile,意思是灵活的,灵巧的,轻快的,机敏的。在维基百科里,将Agile软件开发方法定义成:“是一组从20世纪90年代开始逐渐引起关注的新型软件开发方法,可以应对快速变化的需求。”
敏捷通过尽早(迭代)地把产品(增量)投放到市场,帮助公司以最快的速度收到经济回报,同时收集市场用户对产品的反馈以最快的速度来改进产品
迭代与增量开发
【知识小结】
|
敏捷的历史
敏捷宣言
敏捷宣言:
|
12大原则
敏捷之伞
在维基百科里,将Agile软件开发方法定义成:“是一组从20世纪90年代开始逐渐引起关注的新型软件开发方法,可以应对快速变化的需求”。
【知识小结】
|
【知识小结】
|
敏捷怎么工作
敏捷的工作方式:将项目要实现的产品功能分解成一些小的产品功能(最常用的描述这些产品功能的技术就是用户故事),并且给这些产品功能条目排列优先级,然后在被称为迭代的一段时间迭代里逐一完成这些功能。
【知识小结】
|
敏捷和瀑布模型的区别
瀑布模型是一个迭代模型,一般情况下将其分为计划、需求分析、概要设计、详细设计、编码以及单元测试、测试、运行维护等几个阶段。瀑布模型的迭代是环环相扣的。每个迭代中交互点都是一个里程碑,上一个迭代的结束需要输出本次活动的工作结果,本次活动的工作结果将会作为下一个迭代的输入。这样,当某一个阶段出现了不可控的问题的时候,就会导致返工,返回到上一个阶段,甚至会延迟下一个阶段。 |
传统的瀑布模型项目面临着质量、可见性不高而风险太多,无法应对变化的问题。与之相比,敏捷的方法持续地迭代,更加灵活且拥抱变化。
|
敏捷有以下特点:
|
1.2 什么是Scrum
|
Sprint是受时间盒限制的,无论工作完成与否都会在特定日期结束,并且不延长。
|
3个角色、3个工件、5个活动
SCRUM框架包括3个角色、3个工件、5个活动、5个价值 3个角色
3个工件
5个活动
5个价值
|
Scrum并不是构建产品的一种过程或一项技术,而是一个框架,在此框架中可以使用各种不同的过程和技术。 Scrum框架由Scrum团队以及与之相关的角色、事件、工件和规则组成。框架中的每个部分都有其特定的目的,其对于Scrum的成功与使用是至关重要的。Scrum的规则把事件、角色和工件组织在一起,管理它们之间的关系和交互。 |
5个价值观
其中,1表示完全不符合,6表示完全符合。分数<27:项目不适合转型。27<分数<40:项目适合转型。分数>40:项目非常适合转型。
二、Scrum的角色
我们所有人都面对着一些看似无解的难题,其实它们背后恰恰是一系列极大的机会点。
——约翰·威廉·加德纳
Product Owner (PO)PO是了解客户需求以及相关商业价值的团队角色,作为客户代表,定义产品功能,决定产品发布的内容和日期,对产品的投入产出负责。根据市场变化对需要开发的功能排列优先顺序,合理调整产品功能和迭代顺序。 Scrum Master (SM)SM 将帮助团队消除任何阻碍团队生产力的障碍,SM的角色是培训和激励团队成员。他起到教练的作用。 Development Team (Dev.Team)开发团队由关键开发者或架构师等5-9人组成,他们各有职责但又是多面手,能独当一面又能互相支持。他们在敏捷开发在不断的组织和管理属于自己的工作,由此产生的协作力将优化团队的整体效率和能力。 |
2.1 ScrumMaster
我们公司本来就没有ScrumMaster这么个角色,难不成我们要招聘一个?
|
ScrumMaster的职业发展路线通常会有如下4个方向:
|
ScrumMaster是一位服务型领导,通过服务于团队之外的人以及团队中的各个角色来促进和支持Scrum,其中包括但不限于推动阻碍团队工作的事情,引导Scrum流程,协调团队内外的沟通,隔离团队的外部干扰等。 ScrumMaster的主要职责:
|
2.2 PO产品负责人
作为确保团队做出正确产品以便帮公司得到最高投资回报的产品负责人,在Scrum团队中负责“做什么”的问题。产品负责人的工作包括:愿景和边界。产品负责人的工作包括两个方向:提出正确的解决方案和确保解决方案被正确“制造”。 |
2.3 开发团队
在传统软件开发方法里,定义了不同的工作类型:软件主任工程师、程序员、测试工程师、UI工程师、数据库管理员。但是,在Scrum里面定义了“开发团队”的角色,这个角色是所有这些工作类型的集合。在Scrum里面,所有这些人统称为开发团队,所有的人都被称为“工程师”。 |
Scrum开发团队的主要职责如下。
|
Scrum开发团队的特征如下。
|
2.4 实践类问题
2.4.1 一个人能同时既做产品负责人又做ScrumMaster吗?
绝对不能!产品负责人和ScrumMaster这两个角色在Scrum团队里是两个非常重要的角色。产品负责人负责产品要做成什么样,但不负责指导团队。ScrumMaster则负责另外一个维度的工作,即专注于帮助团队以正确的方式和流程来执行Scrum项目。在团队中,产品负责人代表组织对经济利益的追求,而ScrumMaster则代表团队的利益。如果要求一个人来同时完成这两个角色是很困难的,更重要的是经常会遇到这两个角色出发点不同导致的冲突而无从选择,最终一个角色会凌驾于另一个角色之上,而使整个团队利益受损。
2.4.2 Scrum里任务是如何分配给团队成员的呢?
团队成员们一起识别、评估每一个用户故事的工作量。一旦冲刺开始,每一个团队成员根据优先级选择他们认为合适的工作。因此,我们说团队成员自己给自己分配任务。具体的分配方法由每个团队的成员一起讨论而决定。
2.4.3 开发团队可以有多少个人,为什么要限制团队人数
一个Scrum开发团队可以有多少个工程师?对于这个问题来说,并没有标准的答案。2003年,Jeff Sutherland说一个Scrum开发团队的人数不能超过7个。现在,根据最新的《Scrum指南》,一个Scrum开发团队的人数应该为3~9。如果团队里的人太少,团队会面临能力缺乏的困境。
虽然人越多,团队能完成的工作就越多,但如果人太多了又会对团队计划、沟通和协调带来巨大的挑战。正如我们所知,在IT项目中,越多的工程师并不能意味着可以带来越多的产品功能发布。而且经常会带来相反的结果。如果你的项目有超过9个工程师的资源,那么请把他们分解成两个Scrum团队。而且,请不要忘记,Scrum强调的实验!你的组织和项目团队合适的团队规模需要你自己去寻找。
2.4.4 如果项目工作太多,一个Scrum团队做不完怎么办(团队之间的工作协调)
如果你有足够的工作和足够的资源,那么就请你通过组建新Scrum团队的方法来加速你的速度。如果你的工作太多但是资源不足,那么就请你通过给特性排列优先级的方式,保证团队只开发最重要的功能。
2.4.5 迭代和冲刺的区别是什么
迭代的英文为Iteration。迭代是一个通用的敏捷术语,指的是单个开发迭代。冲刺的英文为Sprint。作为敏捷的一种方法的Scrum,冲刺是指Scrum的一个迭代。如果把语境局限在Scrum的话,迭代和冲刺指的都是一回事儿。
2.4.6 为什么在开发团队里只有工程师而不是开发、测试呢
在Scrum里,责任和成果属于整个团队。为了强调团队的整体性,Scrum开发团队里只有一种角色,就是工程师。但这并不意味着每个人都必须拥有相同的技能,或者是说做相同的工作。这也许对每个人未必完全公平。例如,一个初级工程师和高级工程师的能力就不相同。但是,还是那句话,Scrum强调团队作为一个整体承担责任。
2.4.7 产品负责人和ScrumMaster都是全职工作吗?
为了保证Scrum团队的工作,ScrumMaster和产品负责人需要有足够的时间来完成他们的工作。一个比较常见的陷阱是,除了日常工作以外,组织会给某个人分配产品负责人的新角色,让他同时兼顾日常工作和产品负责人的角色。这样做的结果通常都不好。我们比较推荐的做法是让产品负责人和ScrumMaster成为全职的工作。
2.4.8 质量控制在Scrum里怎么体现
在Scrum里,质量控制不是一个在产品发布以后才执行的工作。相反,在Scrum当中,质量控制应该包括在所有的从开始到结束的冲刺过程中。
在项目和每个冲刺开始的时候,团队就应该注意如何检查各个工作的进行。因此,我们说质量控制从用户故事的定义就已经开始了。所有的功能和非功能测试都应该被覆盖到。
因此有人说,在Scrum团队里不需要一个叫作QA的角色。当然如果大家都认为有帮助的话,公司级别有专门的QA角色也是可以的。但是我们要强调,在Scrum团队里整个团队对质量负责,而不应该将质量的责任只记在QA的名下。
2.4.9 新任ScrumMaster应该怎么办?
作为一个新任的ScrumMaster,你所需要注意的是,在一开始请千万不要急于求成,一股脑儿地改变所有东西。要有耐心,好好准备。当准备好以后,慢慢开始,而且一开始的时候先引入一两个实践(例如Scrum的每日站会和修整产品列表),当取得了一两个虽然小但有决定性意义的胜利之后,再公开宣传并且继续改进。
2.4.12 一个ScrumMaster可以同时和多个团队一起工作吗
一个ScrumMaster可以同时在几个团队中工作这个问题有很多的讨论。虽然,我们一直强调ScrumMaster这个角色很重要,全职的ScrumMaster对于Scrum团队的重要性。但是,我们必须灵活起来,根据2018年年初公布的最新的Scrum报告,一个ScrumMaster同时在多个团队中工作目前已经成为一种普遍现象。
当然,如果资源允许,尤其是在团队刚刚组建的时候,一个全职的ScrumMaster是最好的。随着团队的成熟,同时担任两个团队的ScrumMaster也是可以的(一个ScrumMaster服务于两个团队,是比较推荐的解决方案)。如果Scrum团队已经是自组织的、成熟的精英团队,一个ScrumMaster可以为三个这样的团队服务。
三、Scrum工件
3.1 产品列表
用户故事
用户故事的格式是最为普及的产品列表条目格式:
作为一个……我想……这样我就可以……
史诗级故事是用来描述大型用户故事的通用术语,它就是一个我们觉得它‘个头儿’有点儿大,因而需要进一步拆分的故事。
对产品列表条目的大小进行估算(使用T-Shirt Size技术进行估算,将用户故事大小分为S、M、L、XL)。
MoSCoW技术
产品功能需求是无限的,但是团队的人力和时间资源却总是有限的,如何使用有限的资源生产出用户最需要的功能?
3.2 Sprint待办列表
Sprint列表是团队当前Sprint的任务清单。和产品列表不一样,它的寿命是有限的,仅在一个Sprint的时间里存活。它里面包含所有团队已承诺的故事以及相关联的任务,以及此外的附加工作。 Sprint列表在Sprint规划会议中产生,一旦Sprint规划会议结束,产品负责人就不能再修改Sprint列表的故事清单了。这是Scrum中业务方和开发团队之间的基本协议,每次Sprint开始前,业务方都可以改变方向,然而Sprint开始以后,团队则会专注于他们所承诺完成的故事。 改变这个已承诺的故事清单只有一个方式,就是由干这个活儿的团队成员提出变更请求。也许团队发现他们能比最初设想的做更多的活,也或许他们无法交付所有已经承诺的故事。遇到这种情况,产品负责人将和团队一起修改Sprint列表中的故事清单。 产品列表是固定不变的,与之相比,Sprint列表则是Sprint过程中一直都在变化的。 团队一旦发现想要交付已经承诺的故事还有些新的任务需要完成,就会把它们也添加进Sprint列表。有时候团队也会发现某个现有任务已经毫无意义,那他们就会从Sprint列表中把它剔除掉。 |
知识小结:
|
3.3 完成的定义
当有两个或更多的人参与同一个事务的时候,最重要的是设定和统一期望值。Scrum提供一个重要的概念来帮助我们做到这点:完成标准(DoD)。
从概念上来说,完成的定义是在宣布工作潜在可发布之前要求团队成功完成的各项工作检查。 在大多数情况下,完成的定义至少要产生一个产品功能的完整切片,即经过设计,构建,集成,测试并编写了文档,能够交付已验证的客户价值。但是为了得到一个有用的列表,这些大级别的工作项需要进一步的细化。例如,做过测试意味着什么?写过文档意味着什么? 完成的定义具有如下的特点。
|
3.4 监测
在Scrum冲刺中,我们应该计算Sprint待办列表中所有剩余工作的总和。开发团队至少要在每日站会时跟踪剩余工作的总和,预测达成Sprint目标的可能性。通过在Sprint中不断跟踪剩余工作量,开发团队可以管理自己的进度。因此,跟踪Sprint当中有意义的指标是必须的。 |
Sprint燃尽图
Sprint燃尽图:
关于Sprint燃尽图有一个让人吃惊的现象,Sprint第一部分的趋势线往往会走高而不是走低。为什么会这样呢?
|
交付燃尽图
交付燃尽图便于产品负责人跟踪发布剩余工作随时间变化的过程。通常情况下,我们会使用Sprint作时间轴增量,剩余故事点数作纵轴。不同的下降趋势反映了单位时间段内所完成点数的自然变化 |
一个冲刺目标相当于一个短期的迭代计划,时间跨度大概在两三周左右。将一个产品分成好多冲刺目标的意义在于,每个短期的迭代目标都是明确的,而且每次要看的任务少了很多啊(这才是重点)。 然而,很多时候,只有跨度是两三周的短期目标还是不够的,一些大型的软件开发项目还需要个中期目标,时间跨度大概在两三个月甚至更长,而且需要中期目标达成后,产品是稳定可交付的。这个时候,就需要“版本”这个概念。 交付燃尽图,就是跟版本相关的。如果说,会用Sprint 燃尽图以后就能掌握当前冲刺目标的完成趋势的话,那么,交付燃尽图就是用来看某一未发布版本的完成趋势——估计需要多少个冲刺目标能将版本交付。 交付燃尽图:
|
使用交付燃尽图可以在版本存在不能按时交付甚至永远无法交付的风险时,及时提醒
还有一种情况,两条预测线虽然存在交点,但是斜率太高,说明新增任务点数的速率很快,也就是该版本的产品质量偏低。
燃尽图描述了剩余工作随时间变化的轨迹。纵坐标绘制剩余工作量,横坐标是时间。通常来说,团队不断地完成任务,剩余工作量也应该随之下降。这会呈现为一条从左到右向下延伸的斜线。 |
3.5 实践类问题
3.5.1 谁负责产品列表,谁负责Sprint待办列表 产品列表由产品负责人负责管理并对它拥有绝对的权利。但是,这并不代表只有产品负责人才可以向产品列表中添加和修改内容。例如,问题、技术相关的工作就经常需要团队来创建相应的条目。对于用户故事来说,也经常需要团队成员去维护相应条目。因此,我们说产品负责人管理产品列表,但维护产品列表的责任团队成员人人有之。至于每个团队的成员如何帮助产品负责人维护产品列表,要看产品负责人给团队成员的授权而定。 关于Sprint待办列表,它是在每个冲刺的计划会议当中产生的。在进入Sprint阶段以后,团队成员负责维护和更新Sprint待办列表。因此,Sprint待办列表是属于团队的。 |
3.5.2 产品列表的优先级如何制定 产品列表的优先级是产品负责人根据公司更高层面的策略制定的。通常情况下,对于Scrum小组来说,他们的产品列表优先级要服从于整个产品,甚至是产品集的优先级(产品组合规划→产品规划→版本规划→冲刺规划)。 |
3.5.3 什么是DOR DoD就是完成的定义。 关于DoR,是指Definition of Ready,即准备就绪的定义。根据《Scrum指南》中的定义:“排序越高的产品待办列表项通常比排序低的更清晰,同时包含更多细节。根据更清晰的内容和更详尽的细节信息就能做出更为准确的估算;同样,排序越低,则细节信息越少。产品待办列表项中那些即将会占用开发团队下一个Sprint大部分时间的项会被加以精化,因此,任一产品待办列表项都能够在Sprint的时间盒期限内适当地‘完成’。这些能够被开发团队在一个Sprint中‘完成’的产品待办列表项称为‘准备就绪’,它们将作为Sprint计划会议中的待选产品列表项。产品待办列表项的足够透明程度通常要经过上述的精化活动来获得。” 因此,DoR就是一个类似于DoD的列表,如果满足,列表中规定的产品待办列表项可以放入到Sprint待选产品列表里。如果不满足DoR的定义,则不可以放入Sprint待选产品列表当中。 |
3.5.4 敏捷了就不需要文档了吗 不是!敏捷要做的是减少浪费,以便能按照项目的特点灵活选择文档的数量与形式,在过度设计和返工之间寻找到平衡。也就是说,每个项目都要根据自己的特点,选择合适的形式和内容来写文档。例如在大多数项目中,设计文档、接口文档是一定要写的,但是有些需求文档也许就不用刻意写了,Jira或者其他用来整理用户故事的工具里的信息就已经足够了。因此,请不要因为是敏捷项目就拒绝写有用的文档。敏捷宣言中的那句话叫作“可工作的软件重于面面俱到的文档”,这绝不能成为不写文档的挡箭牌。 |
3.5.5 Scrum管理产品列表、冲刺待办列表,需要使用什么工具 需要一个任务板,不同颜色的便签纸,白板笔。如果不是远程团队,那么就请在办公室团队的位置准备一个实体白板来作为任务板(在每日站会的部分,我们会具体讨论如何组织任务板的细节)。 需要管理产品列表和冲刺待办列表的工具。简单到一个Excel表格,复杂到Jira系统,只要可以帮助管理好你的待办事项就没问题。 |
3.5.6 什么时候梳理产品列表,谁梳理产品列表,怎么梳理产品列表
|
3.5.7 需要开产品列表梳理会议吗 产品列表梳理会议不是Scrum的标准活动,也就是说这个会议不是必需的。但是大部分的Scrum团队都会选择使用产品列表梳理会议。当然,对于非常成熟的团队,他们可能会因为对产品的了解以及团队成员之间频繁的沟通而不必非要组织专门的梳理会议。另外一种情况是转型初期的团队,他们可能会期许产品负责人提供完备的文档,团队成员之间还没有形成良好的互动,如果ScrumMaster不够强势的话,产品梳理会议也会被忽略。对于上述两种情况,第一种非常健康,梳理会议不是必需的;第二种就不健康了,建议团队考虑梳理会议。 |
3.5.8 Scrum团队跟踪个人完成的任务吗 很多经理都会问:在Scrum团队中,我如何跟踪每个工程师的个人绩效?要知道这和每个人的KPI考核息息相关啊!我的答案是:对不起,Scrum团队强调团队作战。跟踪个人的KPI指标有点儿违背这个原则。 不信你看,Scrum的各种监测图表都是以团队为单位的。没见过有哪个监测工具是统计团队中单个人的工作绩效的。 当然了,如果你说我们公司就要统计个人的KPI,那Scrum是阻止不了你的。但是你得手工统计或者自定义开发一些小工具了,因为像Jira、VSTS这些主流的产品都是不提供这些功能的。 |
3.5.9 监测的结果可以用来比较不同的Scrum团队之间的绩效差距吗 有的能,有的不能。每个团队负责的功能和对故事点的理解以及团队成员数量都有可能不同,因此不能直接将团队的工作量进行比较(即使是按照团队成员数量比例进行计算后的比较也是不公平的)。 但是,对于一个团队能否每个迭代都完成承诺,一个团队处理单个任务的时间这样的指标是可以进行比较的。监测的结果重在协助团队进行自我管理。 |
四、Scrum会议
scrum敏捷中5大会议 - 简书 https://www.jianshu.com/p/c68985d282f5
4.1 产品待办事项列表梳理会议(Release Planning)
产品待办事项列表存在(并演化)于产品的整个生命周期,它是产品的路线图。 当一个团体计划向Scrum过渡时,在首个Sprint可以开始之前,他们需要有一个(按1、2、3顺序)排好优先级的、以客户为中心的特性列表,即产品待办事项列表。 |
4.2 Sprint计划会议(Sprint Planning)
在传统的瀑布项目里,项目经理会根据收集到的工作信息,绘制计划(例如甘特图、各种任务分配表格)来计划所有工作。团队工作人员根据项目经理的计划工作。当工作无法按时完成或者提前完成时,他们会通知项目经理这个变化。但是在Scrum里,我们不再使用甘特图来计划工作,也没有项目经理来制订计划,所有的计划工作都是通过一个由包括产品负责人、ScrumMaster和研发团队参与的计划会议完成的。 |
计划会议是一个为Sprint做准备的会议,通常分成两部分,第一部分关于“做什么”,第二部分关 于“怎么做”:
|
工作量估计表格:
Dave的总工作量是8天,但是他只有6.4天的研发工作量,大家会不会问其他的1.6天哪里去了?
|
在计划会议结束以后,团队成员立即开始按照计划会议上的讨论将用户故事分解成各个小的任务,在系统和物理任务板上按照既定的工作流程创建相应任务,并且标记完成任务所需的时间。 |
知识小结 Sprint中要做的工作在Sprint计划会议中来做计划。Sprint计划会议是由时间盒限定的。ScrumMaster要确保会议顺利进行,并且每个参会者都了解会议的目的。Sprint会议回答以下两个问题。 (1)这个冲刺能做什么? 开发团队预测在这次Sprint中要开发的功能。产品负责人讲解Sprint的目标以及达成该目标所需完成的产品待办列表。整个Scrum团队协同工作来理解Sprint的工作。 Sprint会议的输入是产品待办列表,最新的产品增量,开发团队在这个Sprint中能力的预测以及开发团队的以往表现。开发团队自己决定选择产品待办列表项的数量。只有开发团队可以评估接下来Sprint可以完成什么工作。 (2)如何完成所选的工作? 在设定了Sprint目标并选出这个Sprint要完成的产品待办列表项之后,开发团队将决定如何在Sprint中把这些功能构建“完成”产品增量。这个Sprint中所选出的产品待办列表项加上如何交付它们的计划就是Sprint待办列表。 开发团队通常从设计整个系统开始,到如何将产品待办列表转化成可工作的产品增量所需要的工作。工作有不同的大小,或者不同的预估工作量。然而,在Sprint计划会议中,开发团队已经挑选出足够量的工作,以此来预估他们在即将到来的Sprint中能够完成。在Sprint计划会议的最后,开发团队规划出在Sprint最初几天内所要做的工作,通常以一天或更少为一个单位。开发团队自组织地领取Sprint待办列表中的工作,领取工作在Sprint计划会议和Sprint期间按照需要进行。 产品负责人能够帮助解释清楚所选定的产品待办列表项,并做出权衡。如果开发团队认为工作过多或过少,他们可以与产品负责人重新协商所选的产品待办列表项。开发团队也可以邀请其他人员参加会议,以获得技术或领域知识方面的建议。 在Sprint计划会议结束时,开发团队应该能够向产品负责人和ScrumMaster解释他们将如何以自组织团队的形式完成Sprint目标并开发出预期的产品增量。 |
经常听到一些伙伴抱怨计划会议时间太长,太烧脑。按照《Scrum指南》的说法,一个两周的迭代可以有最多不超过4小时的计划会议时间。4小时的确不是很短的一段时间。如果你的团队无法集中4小时的精力,那么把计划会议在物理时间上分割成两部分会是一个不错的选择,计划会议1和计划会议2(分别来完成计划会议的两部分)。 随着团队成熟度的上升,计划会议所需要的时间会下降。这有赖于团队对于产品功能的理解和熟悉,同时也依赖于产品负责人和团队成员之间充分的沟通和彼此的信任。 |
4.3 Scrum每日站会
每日站会就是团队的脉搏,健康的脉搏稳定,持续而又轻快
每日Scrum站会是开发团队的一个时间盒限定为15分钟的事件。在每日站会中,开发团队为接下来的24小时的工作制订计划。通过检视上次每日站会以来的工作和预测即将到来的工作来优化团队的协作和效能。每日站会在同一时间同一地点举行,以便降低复杂性。 开发团队借由每日站会来检视完成目标的进度,并监视完成Sprint待办列表的工作进度趋势。每日站会优化了开发团队达成目标的可能性。 以下是一个可以使用的会议议程范例。
每日站会是开发团队的内部会议。如果有开发团队之外的人出席会议,ScrumMaster必须确保他们不会干扰会议进行。 每日站会规则: (1)每次站会一开始,我们会先标记迟到的人。 (2)任何人迟到,如果没有事先请假,没有正当的理由,就要把钱放到我们任务板边上的存钱罐里。团队也可以发挥想象力来考虑用什么方式惩罚规矩的破坏者。例如,让规矩破坏者做俯卧撑。 (3)请大家在开会时围绕着任务板站好。 (4)在站会正式开始之前,开一些轻松的玩笑,让大家感到会议的氛围是轻松正面的。 |
4.4 评审会议
评审会议是为了收集项目干系人的各种反馈,达到检视和调整的目的。 在冲刺规划期间,我们要制订工作计划。在冲刺执行期间,我们在实际地执行工作。在冲刺评审期间,我们检视并且调整工作成果。冲刺评审发生在每个冲刺迭代快要结束的时候,在冲刺执行之后,冲刺回顾之前。 产品负责人将作为团队代表向所有项目干系人介绍团队在过去一个冲刺中的成果。团队的所有成员都被邀请参与到评审会议中和项目干系人沟通。 到底我们是要向产品经理和干系人展示呢,还是开发团队展示成果给产品负责人呢?
|
Scrum里的其他会议都是团队内部会议,不邀请他人参与。但评审会议对项目外的人开放,包括Scrum团队、内部干系人、外部干系人的所有项目相关人员都可以与会。 冲刺评审常常会被误认为是‘冲刺演示’或干脆被当作‘演示’。虽然演示在冲刺评审中很有帮助,但演示并不是冲刺评审会议的目的。
|
Sprint评审会议用以检视所交付的产品增量并按需调整产品待办列表。在Sprint评审会议中,Scrum团队和项目干系人协同讨论在这次Sprint中所完成的工作。根据完成情况和Sprint期间产品待办列表的变化,所有参会人员协同讨论接下来可能要做的事情来优化价值。这是一个非正式会议,并不是一个进度汇报会议,演示增量的目的是为了获取反馈并促进合作。 对于长度为一个月的Sprint来说,评审会议时间最长不超过4小时。对于较短的Sprint来说,会议时间通常会缩短。 Sprint评审会议包含以下内容。
Sprint评审会议的结果是一份修订后的产品待办列表,阐明很可能进入下个Sprint的产品待办列表项。产品待办列表也有可能为了迎接新的机会而进行全局性的调整。 |
4.5 回顾会议
回顾会议是针对流程和环境进行审视并调整。 Sprint之间没有间歇期,团队通常在某个下午开Sprint回顾会议,第二天早上就直接进入下一个Sprint计划会议(不包括周末休息)。敏捷开发的一个原则是“可持续的步伐”,团队只有保持合理水平的常规工作时间才可以一直继续这一周期。生产力随着团队实践的演变和铲除影响团队生产力的障碍而增长,而不是通过加班加点或降低质量来取得。 |
回顾会议是Scrum检视与调整的一个重要环节。团队对自己的开发过程进行改进,并确定什么样的调整可以使下一Sprint的效率更高、结果更令人满意和更易于工作。 |
一、Say Hello 这个环节和别的会议有点儿区别,在别的会议里一般都是会议主持者和大家问一下好,顶多再说个活跃气氛的段子。在回顾会议上,Say Hello环节需要所有的团队成员参与其中。在这个环节中,大家需要用一个词来说一下自己对这个冲刺的感受。如果实在说不出来,你也要说‘我没有’感受。 二、介绍回顾会议需要讨论的问题 回顾会议的目的是检视和调整Scrum团队的流程。为此,会议组织者会组织大家使用各种技术来进行讨论,以挖掘出团队的问题以及讨论解决方案。 在的回顾会议中,经常遇到以下几个问题:
三、团队发现问题 思考一下在这个Sprint当中发现的一些问题或者一些想法,然后把这些内容按照开始做、停止做和继续做这三个维度进行分类 |
(1)会议目的——检视和调整Scrum团队的流程。 (2)会议时间——每个ScrumCycle的最后一个会议(推荐开会时间是每个Sprint最后一天的下午)。 (3)时间盒:≤2小时(两周的Sprint)。 (4)会议讨论的问题:
|
4.5 实践类问题
4.5.1 冲刺目标是什么 在Sprint计划会议中,Scrum团队会草拟一个Sprint目标。Sprint目标是在这个Sprint通过实现产品待办列表要达到的目的,同时它也为开发团队提供指引,使得开发团队明确开发增量的目的。Sprint目标为开发团队在Sprint中所实现的功能留有一定的弹性。所选定的产品待办列表项会提供一个连贯一致的功能,也即是Sprint目标。Sprint目标可以是任何其他的连贯性来促使开发团队一起工作而不是分开独自做。 开发团队必须在工作中时刻谨记Sprint目标。为了达成Sprint目标,需要实现相应的功能和实施所需的技术。如果所需工作和预期的不同,开发团队需要与产品负责人沟通协商Sprint待办列表的范围。 |
4.5.2 Sprint应该多长 Sprint应该多长取决于团队和项目。当然,如果采访Scrum团队的话,你会发现绝大多数团队都会把Sprint长度定在一周到四周之间,其中两周的长度是最常见的。对于新项目来说,可以考虑以下两个因素来确定Sprint长度。 (1)团队的偏好——研发团队都喜欢长一些的Sprint,这样他们可以更从容地完成任务;但产品负责人则更倾向于更加频繁的迭代,这样他们可以更快地看到工作的产品。这两股力量互相平衡,最终决定了团队的偏好。 (2)需求的易变性——如果由于产品的特点或者市场情况而需要产品负责人经常性地修改需求,那么我们就建议选择短一些的Sprint。 有一点需要反复强调:一旦确定了Sprint的长度(前期尝试是可以的),就请不要轻易地修改它。保持团队的工作节奏是非常重要的。尤其当多个团队工作于同一个产品当中时,工作节奏就成为管理的重点。 |
4.5.3 一个Sprint需要完成多少个故事点 故事点是一个相对的估计,除非刻意安排,每个公司的每个团队都可以有自己的一套对于故事点大小的认知。因此,一个团队需要在一个冲刺中完成多少个故事点这个问题是没有答案的。但是,根据上个冲刺你团队完成的故事点数来估计下个冲刺你可以做多少个故事点是有意义而且可以找到答案的。 团队速率是Scrum当中的一个重要指标。在每个冲刺的最后,团队会将完成的所有任务的故事点相加,最终得到的数字就是团队速率。团队速率可以被用来预计下个冲刺团队可完成的工作。这样就可以帮助团队做出更长时间内可完成工作的预估,并且帮助团队发现和确认问题。 |
4.5.4 如果评审会议没有可以演示的内容怎么办 如果团队什么工作也没有完成,肯定就没有任何东西可以演示,此时评审会议要讨论的重点就是为什么这个冲刺没有任何工作进展,这对今后的工作有什么影响。当然,如果完成的工作难以演示则是另外一件事。例如,假设完成的工作是架构工作,那么可以展示代码(前提是产品负责人认可代码是可验收的有价值的增量)。 |
4.5.5 Sprint评审会议有没有一些小技巧 在评审会议当中,你很有可能会遇到大家提出各种各样的问题和建议。团队应该回答与所演示内容有关的问题。但是如果问题跑题,就应该留到会后再处理,最好由产品负责人和相关的干系人召集单独的会议进行讨论。 另外,所有的建议(不管听起来有多不靠谱)记在白板或者是便签纸上,在会中就呈现给所有与会人。会后,任何有价值的建议都应该由产品负责人加入到产品列表中,以便进一步考虑。 |
4.5.6 回顾会议上的安全检查 在任何一个会议上,不同的与会者都有可能有完全不同的感受。开会的时候有些人会觉得说话很安全很舒适,因此他们也会假设别人也有同样的感觉。但是,有另外一些人,他们也许就感觉很难受,甚至是恐惧,以至于他们很安静,甚至看起来很紧张。 回顾会议需要Scrum团队成员发表自己的观点,因此对于与会者在会议中的舒适度和喜好(喜欢当众发言或者是在小组里发言)对会议成功与否有很重要的影响。安全检查是通过匿名调查来了解团队整体对会议的安全感的情况。 如果在安全检查中,发现大家对回忆的感觉更倾向于“危险”或者“恐惧”,那么ScrumMaster就需要尽量增加小组讨论的环节,让与会者在相对更加安全和舒适的小组里讨论问题。 以下就是安全检查的步骤,以及发给与会者的调查表。 |
翻译
搜索
复制