XP和SCRUM是敏捷研发管理的两个最佳实践,他们都要求有每日站会。有人认为每日站会浪费时间,这是在实际执行中的问题,也是团队协作和默契的问题。还有人提出:每天真有那么多的事情发生吗,隔一两天不见面有那么严重吗。甚至有人提出每日站会只是健康站会,用于锻炼身体,讨论的事情重复123。也有人认为,站会就是鸡肋,完全没有发挥作用。
按照敏捷开发的惯例,应该专门提出来解决问题。
每天大家站在一起,由主持人问三个问题:
(1)过去一天做了什么(细节粒度要根据时长掌握好)
(2)未来一天计划做什么
(3)遇到了什么问题和困难
每日站会一般安排在早上,一日之计在于晨,每天一来公司就把过去和未来梳理清楚非常有利于未来一天的工作。
工作中的问题和困难往往导致项目停滞,因此应更加注重问题和困难的讨论,给出解决方案。为了节约时间,提出问题的人应稍稍整理自己的思路,若有备选解决方案,应提出这些可选的解决方案,其他与会人员也要积极给出解决办法。
这三个问题有必要天天讨论吗?很多人有这个疑问。
我认为必须天天讨论,尤其是互联网企业。软件工程讲究规划和计划,而现代软件工程往往受制于偶然事件和紧急需求,每日站会正是敏捷研发管理方法论解决计划赶不上变化的有效办法。
软件研发过程时时都会产生意外事件,客户遇到新问题,用户体会到很坏的体验问题,工程师开发过程遇到调试问题,有个算法性能一直无法提升......有的问题能马上解决,有的问题就导致任务无法进行,甚至让产品整体规划收到影响。
除此之外,人们站在一起讨论几分钟还有其他好处:
(1)具有仪式感,
(2)增进团队成员之间的了解,
(3)建立天然的协作习惯,
(4)建立良性竞争机制,
(5)每个人都为了扫除迭代版本计划执行障碍,有共同的短期目标,同仇敌忾。
目前流行的是SCRUM,在SCRUM中究竟怎么描述每日站会的呢?一般的教科书是这样描述的:
1、每日站会是一种限定在15分钟之内的活动,让开发团队同步行动,为接下来的24小时建立计划。
2、审视上一次站会以来所做的工作,然后预测下一次开会前可以做的工作。
3、为了降低复杂性,站会应该在每一天的相同时间以及相同地点召开。
4、团队成员都应发言,发言内容包括:
(1)What did I do yesterday that helped our team meet the Sprint Goal?
昨天我做了什么来帮助我们团队达到冲刺目标?
(2)What will I do today to help our team meet the Sprint Goal?
今天我将做些什么去帮助我们团队达到冲刺目标?
(3)Do I see any impediment that prevents me or the our team from meeting the Sprint Goal?
我是否看到了阻碍我和我的团队达到冲刺目标的困难?
因此,每日站会本质目的是:
(1)让我们团队为未来一天的合作做好准备,
(2)帮助自己团队感知他们是否能够达成冲刺目标,
(3)发现任何让自己团队慢下来的事情。