在应用Scrum的团队日常工作中一个必不可少的事件就是站立会——Daily Scrum。熟悉Scrum的人都知道,站会的目的不是为了汇报进度,因为站会是属于Team自己的一个事件,Team以外的人员不建议参加,就算参加也只是旁听。尽管大家可能都知道这些原则,而现实工作中Team还是时常会把它开成进度汇报会。今天分享最近在一次团队站会后,我和Team的一次对话过程。希望对大家理解站立会说些什么有些帮助。如果想详细了解站立会的内容欢迎查看Scrum Pattern的文章《每日Scrum》。
……
开发 小A:我昨天完成了编写功能XXX的任务,今天准备开始功能UUU的开发。
测试 小C:我昨天完成了测试环境和数据的准备,今天准备开始测试实际功能。
……
上面是一个Team站会中的片段。大部分成员会使用类似的句型来描述工作。大家是否有这种感觉,每个人都是在独立的完成自己的任务,这些任务彼此没有关联。真的是如此吗?成员之间的工作没有任何依赖?如果真的这样,那站会的意义又是什么呢?在站会结束后我叫住了大家,作为Scrum Master我问了测试小C一个问题,因为他是最后一个发言的,大家应该还有印象。对话如下:
Scrum Master:请问为什么你是昨天准备测试环境和数据而不是今天或者明天?
测试 小C:因为小A今天的开发功能XXX按照计划是要交付测试的,我需要提前准备好。
Scrum Master:如果小A今天由于某种原因无法交付XXX任务,你有什么备选计划吗?
测试 小C:有,我准备修改功能TTT之前遗留的自动化测试脚本。
Scrum Master:多谢小C的回答,你能把刚才的两个问题的回答串起来说一下吗?并最后说明一下从你的角度看当次Sprint是否存在什么风险?
测试 小C:哦。我昨天为了配合小A的XXX任务准备了测试环境和数据,今天如果能够按照约定交付XXX功能,我会完成该测试任务,如果XXX功能无法交付,我将修改TTT功能遗留的自动化测试脚本。从我的视角看XXX功能延迟一天交付风险可控,暂时没有问题。
上面的一问一答我进行了精简,不过主要意图大家可以看到,站会的主要目的是Team内部对前一天工作的一次回顾,并为接下来Sprint剩余计划进行调整的一次小型决策会。所以大家需要关注前一天工作的Goal是什么,对当次Sprint Goal的目标有什么影响。另一方面关注的Team成员之间的链接——可能是彼此的约定,也可能是依赖关系。这些信息需要让相关的人员了解并注意到,能对自己当天的工作内容做出调整,思考是否对当次Sprint有影响而提前举手。
最后,如果一开始Team是从传统方式转型到Scrum的,那么尝试在站会的时候让大家开口说话是第一要务,只要大家愿意说进行沟通就好,鼓励大家开口。在习惯了之后可以逐步调整大家站会的目的,想办法引导大家关注Sprint的Goal以及团队内部的链接上。