前言:敏捷开发中的验收标准是需求提出人用来检验需求完成的重要衡量指标,也是开发人员理解需求的重要参考,本文是我翻译的一篇关于说明验证标准的文章,希望对采用敏捷开发模式的团队有所帮助。
前些时候,我在思考怎么用一种简单容易的方法来演示验收标准的威力。就在那个时候,我设计了一个小活动来解释验收标准的概念是什么。这个互动式的小活动,加上讨论时间,也只需要20分钟。你只需要一支笔和一张纸。如果你想要更加神奇的效果,也可以准备一个挂板,当然这不是必需的。
如果你想要向别人解释什么是验收标准,那么这个小活动可以以一种简单,直接,有力的方式帮你达到目的。我在英国和瑞士都做过这个小活动,两个地方的活动效果都很好。
让我来解释一下如何做这个活动。
首先,让我先引入一个背景。当我在学校的时候,几乎我所有的同学都在自己的练习册或者纸上画过房子的草图。所以我决定用画房子这件事来解释验收标准的概念。在英国,很多房子的样式都很简单,我期望我画的房子样式,你可以在很多地方都能看到。如果你对我画的房子不感冒,那就画你那个地方最常见的房子样式吧。
在开始实验之前,我通常会问大家在作业本上是不是画过房子。我抛出这个问题之后,大家一般都会点头表示自己确实干过。然后我就会说,好极了,拿出你的笔和纸画一个房子吧。有些人开始画房子,有些人问,这个房子应该画成什么样呢?这个时候我只会简单的说一句,随便画,我只要一个房子。
当他们在做的时候,你自己也在纸上画一个房子,不过一定要确保没有人看到你画的。
我画的房子长这样:
当所有人都完成时,去看下他们画的房子是什么样的。没有人画的房子是一样的。这个时候,你应该说,画的确实不错,但这不是我想要的。你可以微笑着对他们说,但是一定要表明这房子不是我想要的那种。
当你环视完一周以后,告诉所有人你需要他们把你接下来要说的东西记下来,然后对他们说出下面的要求:
l在较低的楼层上有一扇门,这扇门位于房子的中间。
l每扇门的两边都有一扇窗。
l在较高的楼层上,有三扇窗子均匀分布。
l这个房子有个斜屋顶。
l房子有一个烟囱。
l房子有一个车库。
l房子有一个用栅栏围住的花园。
l栅栏有一个门。
l有一条小路连接大门和房子的门。
l花园里有一颗树。
现在要你的团队成员把房子再画一遍。
当他们完成时,把你的挂板转过来。然后问他们画的房子是否跟你的一样。你会发现他们画的房子很相似,甚至有些人画的竟然一模一样。
现在你可以到处走动,检查他们的房子有哪些地方符合你的标准。你可以说,是的,我能接受这个房子,这正是我想要的。如果有人遗漏了什么东西,你可以拒绝接受并且解释为什么不接受。如果有人不仅画了你所要求的东西,而且还加了东西,那么可以把这些另外加的东西作为你要求的优化。
有时在我展示我的房子之前,我会先介绍达伦.布朗(电视魔术师,读心者等等),然后说,我有下意识的让你画什么吗?但是你能够意识到房子正是按我所愿画了出来。或许是因为我一系列的验收标准才让我收到满意的结果。
现在我们该对这个活动做一下总结了。解释一下为什么我通过设置了一系列的具体要点和表述,就得到了我想要的。问下团队成员,是否你告诉他们要怎么画了。答案是,NO。所以请再次强调,在我没有告诉你要怎么画的情况下,我得到了我想要的。你可能会发现,有些人的树,花园或者车库和你画的位置相反,所以解释一下你其实一点儿也不在乎,在这个例子中,最重要的是你得到了你想要的,至于他们在哪,一点儿也不重要。
你可以继续解释,当在软件开发环境的用户故事中使用验收标准时,你可以使用工具来自动化测试这些验收标准。所以你可以建立一些无论你什么时候偏离需求都可以提醒你的自动化回归测试包。强调一下,验收标准就是你的需求,这些需求在你测试软件时成为测试的标准,然后你就可以进行自动化测试了。
现在开始总结你如何运用验收标准来衡量你的故事。提出一个问题,我已经把验收标准给你而且问你建造这样一座房子需要多少钱。你告诉我,需要1百万。“太多了,我只有90万。我应该怎么做才能减少我房子的面积呢?”“把花园和树去掉”现在你可以问,“我怎么才能扩大我房子的面积?”“建两个花园”等等。完工时间也可以这么讨论。
现在你可以发现,验收标准不仅可以用来做测试,还可以用来控制你的故事可以完成什么,不用完成什么,甚至该怎么完成。
最后,你可以问下团队成员他们的看法,是不是觉得验收标准很有用。大多数人都惊讶验收标准的简单和有力。
这就是我如何开展这个活动的。我已经做了很多次而且每次效果都很好。
你为什么不试一试,让我知道你是如何操作的。
此文为译文,原文地址如下:
在未经本人同意下,任何人不得转载本译文。