经验主义是一种基于已知信息做决定的一种行为。Scrum是一种以经验为依据的流程,有些时候被称作“可能的艺术”,实际上说的就是我们要利用好我们手头上掌握的所有信息尽力做到最好。
一个PO根据当前所有已知的信息进行版本发布计划。他会列出目标和特性,以及团队交付这些特性的能力,还有可能的成本和交付日期。这样看来,PO的职责就是根据团队的能力评估可能达到的目标,然后做出最好的决定以达成目标。由于技术、市场、需求以及人力等各个方面的权衡,有时候无法在合理的成本范围内达到目标;有时候虽然达成了目标,但是和PO原来的计划有所偏差。这就是经验主义的实践。
Scrum中的团队其实也在干同样的事情。团队和PO举行会议,对PO觉得接下来最重要的事情进行评估。一旦完成以后,团队就可以朝着PO希望的方向进发。团队会根据在接下来这个Sprint中他们能够完成最大工作量对产品待办列表中的条目进行挑选。由于团队的人力成本和Sprint的长度是固定的,所以唯一可变的就是从产品待办列表中选择的条目的数量。这些条目就是版本发布目标的所有条目的子集。
在Sprint计划会议中,当团队从产品待办列表中选择条目的时候,他们承诺在当前的Sprint中完成这些条目。“承诺”的定义是:通过许诺或担保的形式进行约束或担负义务;诺言;承担自己的诺言;许诺做某件事。诺言、许诺做某件事,这就符合了我对“承诺”这个词的理解。
然而,很多Scrum团队误把承诺当作成一种“保证”。这其实是从瀑布时代遗留下来的,因为那个时候估计就等于合约。直到现在,这种概念仍然残留于很多PO和开发人员的脑海里。我发现很多团队都觉得他们不惜一切也要完成他们的承诺。而通常这么做的代价会是牺牲质量。
我在想,我们是不是应该把“承诺”说成“预测”会更好一些呢?因为这可能会引导大家认为我们就是在预报天气一样,用现有已知的所有信息尽可能地做好预测。这种实践在气象学和我们所了解事物的中已经被证实可行了。因为这种实践并不保证什么,而是根据我们所了解的信息来做最好的抉择。我们发现在销售行业中,预测同样被运用。也许,这能够帮助我们说明在Scrum中,“承诺”就是利用我们现有的一切尽力做到最好。
原文地址:http://kenschwaber.wordpress.com/2011/05/03/empiricism-the-act-of-making-decisions-based-on-what-is/
作者:Ken Schwaber