很长时间没有更新博客了,一直在上海,上星期刚从客户现场回Office。在很多刚刚开始实践Agile的团队中,有这么一种想法:“Retrospective太花费时间了,所有成员在那里开上一两个小时的会议。在会议上,要么大家发发牢骚,要么项目经理讲讲话,强调一下后续工作中的注意事项。还不如回写座位上写代码来得直接呢。”
其实,如果有这样的认识,说明团队还不成熟。如果没能发挥这一实践的重要作用,那么可能比"不会做TDD"有更严重的后果。
什么是 Retrospective ?
What is a retrospective?
@H_403_13@
在敏捷开发的上下文中,Retrospective翻译成中文就是回顾会议。回顾会议可以鼓舞士气,发现改进点,使团队在接下来的迭代或 Release更有效且高效地交付价值,一般在每个迭代或release之后进行。
@H_403_13@Retrospective (from Latin retrospectare,“look back”) generally means to take a look back at events that already have taken place.
@H_403_13@In the software world,a retrospective is a meeting held with a project team at the end of a project or process to discuss what was successful about the project,what could be improved,and how to incorporate the successes and improvements in future projects.
@H_403_13@In the agile software world,a retrospective is a meeting held by the project team at the end of every iteration/sprint to discuss what we learnt as a team,what we can improve as a team and plan the future iteration/sprint based on this learning.
Safety check(安全检查)──回顾会议中最容易被忽视的一个环节
什么是安全检查?为了达到回顾会议的目的和积极效果,会议组织者有必要在会议开始之前做一次“检查”,确保团队所有成员真正认为在这个会议上的任何发言都不会影响到个人声誉与绩效,不会受到鄙视等,即“在这个会议上发言是安全的”。
如何做Safety check?
做Safety check有很多种方法,其中一种就是:
1 在会议开始之前,会议组织者可以分别与团队成员沟通,讲清关于回顾会议的目标与过程。
2 将安全性从“愿意畅所欲言”到“想保持低调”分成几个不同的等级。在会议刚一开始,由所有团队成员将其自身所处的等级写在一张纸片上,折好交给会议组织者。由会议组织者统一计算各等级所得的票数。
3 如果等级都比较高的话,回顾会议可以继续开始。如果有较低的等级,会议组织者可以考虑取消本次会议,再定时间开会,或者采纳一些活动,让大家放松下来,直到安全等级都比较高以后,再进行会议。
对于一个成熟的Agile团队来说,一段时间后做一次Safety check是非常必要的。对于一个不成熟的Agile团队,最好每次都做Safety check.
另外,牢记“不要把Safety check做成形式主义,请想各种办法达到Safety Check的目的”。
至于“每次回顾会议到底应该花多长时间?”这个问题,很难给出一个标准。不过,一般来说,如果每个迭代时间都比较短(比如一个星期),可能只花15分钟就够了,因为大家很容易回想起刚过去的五天里都做了什么。如果每个迭代时间较长(比如一个月),可能就需要两个小时,甚至更多一些,因为大家要回想一个月中都做了什么,而且对于同一件事,每个人所记忆的内容可能也不相同,讨论之前的同步过程还需要时间 ;D。