迭代工作完不成 ,我们怎么办
迭代工作完不成 ,在敏捷中是比较常见的情况。
那么我们该如何应对这种情况呢?
很多人的条件反射就是——如果当前迭代工作没有完成,就顺延到下个迭代继续完成就行了。
这真的对么?
恐怕有那么点问题。主要表现在两点:
- 敏捷是以“价值驱动”的,当前迭代的工作,到了下个迭代是否还有价值,以及优先级是否还可以这么高?这个是存疑的;
- 如果每次工作没有完成就直接顺延到下一个迭代,那么迭代计划的严肃性就会受到挑战。这个才是最大的问题。
一旦计划被挑战,那么以后不会有人再尊重这个计划,那么更谈不上让大家为了这个计划去冲刺了。
但是!这并不意味着我们每次冲刺都需要100%完成所有的工作内容!
冲刺计划本质是“我们需要共同努力才能达到的目标”,这本身就意味着这个目标并不是简单就能达到的,需要团队共同协作来完成。它可以认为是团队在一个迭代内能完成的工作的上限,而不是平均值。换言之,它是一个需要踮起脚来才能够得着的目标。这也是团队认为他们在共同努力后可以最可能完成的目标。在这种情况下,完成不了是可以接受的。相反,如果每次冲刺目标都能达到,那就意味着我们计划的工作量偏低了。
既然冲刺目标有可能完成不了,那么没有完成的工作应该怎么办呢?
首先,直接放入下个迭代时肯定不对的。正确的做法是将未完成工作放入产品待办项(Product Backlog),再由PO 决定是否需要在下个迭代中完成。
其次,加班完成未完成的工作,是不值得鼓励的。敏捷软件开发宣言之敏捷原则中也明确要求以“可持续”节奏来开发,所以加班完成肯定是不被接受的。
最后,我们应该在回顾会议(retrospective meeting)中反思,为什么我们没有完成预定目标,并且在这个过程中学到一些东西,为下一次可以完成目标做准备。