需求调查中的提问技巧

最近在看一本叫做"探索需求"的书(Donald Gause, Gerald Weinberg), 看过以后想起自己大学的时候和朋友玩过的一个游戏.

游戏是这样的: 一个人说个故事, 只说结尾, 然后大家问他问题, 他只用"是"和"否"来回答问题, 选择性的问题也可以. 通过问题和回答, 大家推测出故事的全部过程.

第一个人开始说,故事结尾是:一个人走进饭店,服务员拿来菜单。他看见菜单上面有一个獾熊肉,就点了一盘。菜端上来以后,他只吃了几口,就放下了刀叉。然后这个人回到家里,开枪自杀了。

听完了结尾,我们开始问他问题。这个人的年龄、他有没有妻子、故事发生的地点、他是不是被外星人劫持过、等等等等。所问的问题无所不含,从天上的星星到地上的河流,有的问题真是想象力非凡。其中关于那个饭店服务员我们问了无数个问题,最后证明他和故事的过程毫无关系。我们的问题就像是在街道上泛滥的洪水,沿着每一条街道前进,填满每个分叉,却找不到方向在什么地方。于是一次次的退回到起点,重新规划一连串的问题,再向另一个方向泛滥,依然是没有目标。

说故事的人很多次用下面这句话回答我们的问题:"这个问题和故事没有什么关系,不要向那个方向上去想。"最后他不得不亲自告诉我们故事的经过。

现在回忆那无数个问题,能对拼凑故事的经过发挥作用的确实也有那么几个,比如:

我们问:他自杀的原因是出于痛苦吗?答案:是。
是生理的痛苦还是心理的痛苦?答案:心理的痛苦。
是因为失去亲人吗?答案:是的。

如果沿着这样的方向继续下去,我想结果会更加好一些,我们能离那个结果更加近一些。但是这样的问题太少。大量的问题都没有获得什么信息量,反而使问题更加模糊,增加了不确定性。

软件需求调查和这个游戏有一些相似,目的在于挖掘别人脑子里的构思。与游戏相比有一个有利之处,那就是客户不会只用“是”和“否”来回答问题,有时候客户甚至会召开一个会议,或者寄给我们一份详细的说明书。还有一个不利之处:说故事的人已经明确了故事的经过,只等待我们去发现,而需求调查的客户只是有一个大致的概况,并不是明白需求的细节,需要双方一起去发现。

《探索需求》书中有一个提问的例子:

客户给出一个最初的需求陈述:设计一个运输工具。

设计者开始询问各种问题,第一个: 这个解决方案需要在什么时候完成? 答案是18个月之内.
第二个问题: 他运输什么东西? 答案是: 人.
第三个问题: 他每次可以运输多少个人? 答案是: 一个人.
第四个问题: 设备如何获得动力? 答案是: 乘客自动力.
第五个问题: 设备运行在什么样的地表或者地形上? 答案: 在很硬的平坦的地表上提供运输.
第六个问题: 人应该被运输到多远? 答案: 超过1.2英里.
第七个问题: 设备的行进速度有多快? 答案: 至少每4小时行进1英里.
第八个问题: 该设备应该有多可靠? 答案: 每1000英里不超过1次故障, 并且不能发生危及乘客的故障.
第九个问题: 有什么成本限制吗? 包括设备,开发,生产的费用,每次使用的成本不高于300瑞士法郎.

这一系列问题看上去十分精确和专业化, 得到了很多精确的"数据", 根据这样的一些数据, 设计人员设计了一种"紧凑的, 轻便的, 可以折叠的三轮车". 接着公司安排了设计人员和客户的会面. 客户对设备的轻便性表示满意, 但是表示这样的设备无法满足需要. 原来在客户的脑海里, 他们需要的是一种高山救援设备, 他们需要的是一种行驶在"垂直"岩壁上的运输工具. 设计人员完全搞错了.

在基础的重要的问题搞清楚之前, 盲目的要求精确, 很可能造成浪费和错误. 任何一个项目或者产品都有一个切入点: 发起者一定认为他面临的问题是存在解决方案的, 至少是可能存在解决方案(比如一个研究性质的项目), 现在正在进行的工作就是寻找和实现这个解决方案. 可以从这个切入点开始, 第一个问题可以是: 目前要做的这个东西会怎样帮助你们达到工作目标呢? 客户现在的工作一定遇到了某种问题, 客户认为这个问题一定有解决方案, 现在正在讨论的东西就是解决方案.从这个切入点开始, 明确最重要的几个问题, 在这之后才能进行更加精确的问题.

在上面那个问题之前, 还可以有一个问题: 可以问客户现在正在讨论的这个项目或者产品应该叫什么名字. 一个贴切的名字应该可以描述最基本的需求, 花一点时间和用户讨论一下解决方案的名称可以澄清一些重要的需求问题. 并且这个名称将出现在产品设计书和用户使用说明书的几乎每一页上, 开发人员进入项目组, 最先了解的也是这个名称, 因此一个好的名字十分重要. 很多软件产品在市场和销售阶段会有一个比较抽象的, 美化过的名称, 这样的名称其实也是根据产品的设计理念和公司的作风提炼出来的, 在开发阶段也是贯穿在整体设计过程中的.

还有一个问题: “关于项目的资料还有一些吗? 有没有其他的项目可以参考? ”这个问题应该在所有精确的问题之前被提出.

有些问题也许不容易直接问某个客户, 但是也要通过各种途径弄清楚, 比如: 这样的问题问他合适吗? 是不是有更好的人适合回答这个问题? 这个问题他能决定吗? 需求调查工作是与人交流, 人总是倾向于做对自己有利的事情, 这个"利"并非一定是利益, 也可能是一种精神上的满足.

还有一些重要的问题要问:

“有没有什么重要问题遗漏了?”人们很难想到自己没想到什么东西, 但是这个问题一旦问了出来, 通常会想到一些东西.

“我问的问题是不是有一些和我们要做的东西没有关系?”这个问题我在一开始说的那个游戏里问过很多次, 这也应该是个很有用的问题.

“如果还有什么问题我可以打电话, 写email或者别的什么方式问你吗?”

本文是"探索需求"的读后感想, 很多实例是书中的例子, 建议需要的人看看这本书, 有一定的质量.

posted on 2005-06-12 23:21  小陆  阅读(1739)  评论(3编辑  收藏  举报