WeinbergCN的专栏

编程大师Ninijei哀叹道:编一个百万行的软件易,改一个人的脾气难!——Goffrey James

原创 【探索需求对话2】反复无常的东西不是真正的需求收藏

探索需求对话

潘加宇 熊妍妍 / 翻译整理

 

本文刊登在2004年6月《程序员》杂志上,版权所有,未经许可,禁止任何形式的转载,违者必究!

 

2004319日,温伯格先生应邀在UMLChina通过远程音频与开发人员做了一次有关“探索需求”的交流,很多开发人员都受益颇多。为此,我们翻译整理了这次交流实录,从中我们可以体会到大师的思想。

 

反复无常的东西不是真正的需求

如何说服客户放弃不切实际的需求?

又一个很好的问题!这就是我刚刚说的。最好的办法是我称为“橙汁测试”的方法。你可以在我的《咨询的秘密》一书中找到这个方法,那本书中说得更详细。基本的思想是:告诉客户,我们能满足他们的需求,但是这需要成本。如果你没有告诉他们所需的成本,他们当然不会知道那些需求是不切实际的。但是,判断需求是否不切实际并非工程师的责任,因为工程师不知道花多少钱才值得他们去做,他们只知道满足需求需要花多少钱。

这里有一个麻烦。我不知道在中国是怎样一个情况,但在美国,有时有这种情况,像一些政府机构,客户实际上并不为软件开发付费。软件开发商只是被告知要为这些客户开发软件,但他们与客户之间并没有金钱交易。这种情况下,想办法让客户放弃不切实际的需求是极度困难的,因为他们开发软件看起来并不需要花钱。这种情况下,你必须找出另一种类型的成本。而大多数情况下,最好的方法是时间。所以,我们可以跟客户这样说:“我们能按照你的要求这样做,但这样可能要使你的项目延期两年,或三个月。”客户会说,“噢,我不能等这么久。”然后他们就会放弃。接下来你就可以和他们协商别的事情了。

另一种方法就是告诉你的客户,因为需求的变化,一些重要的功能性或特性会因此而改变。所以你可以这样对客户说,“如果我们这样做,系统就会变慢,需要三倍的时间来响应。” 如果客户不能容忍一个慢的系统,就可能会放弃他们最初不切实际的需求。

或者你可以这么说,“我们能做,但如果我们做了这个,就不能做别的事情了,你看到底怎么办?”。他们会选择放弃其中一些要求,使需求变得更加切合实际。但要记住这重要的一点:工程师不能判断什么是切合实际的,你只能告诉客户需求的成本,他们会比较看看成本是否值得,然后做出决定。在我的《质量·软件·管理》系列书中,你可以学到这些知识。

这里,有两种图会对你有所帮助。一种图是需求的成本是多少,另一种图是需求的价值值多少。如果你能为客户建立这两种图,说服他们就容易多了。

通常客户会自己选择一些产品,但可能这些产品不能满足项目的需求,怎么办?

你可以用我刚才推荐的方法。通常,产品的花费,或者说购买产品的花费不只是产品本身而已,还有大笔的培训花费,如果产品本身有缺陷,还需要维护的费用,或者它会导致数据库崩溃也是一种花费。上面所说的这些都差不多是一个意思。所以你真的需要向客户提出,他们所作的选择会导致什么样的结果。但最后还是由他们拍板,你最多能告诉他们这种情况很糟糕,极端糟糕。有时你需要这样说,“我不知道怎么做。”他们很可能会因为你不知道怎么做而找别人来做,或者也有可能他们找到其他人告诉你怎么做,这样你兴许会乐意去做。没有人能让你创建一个你不知道怎么做的系统。

如何判断客户有没有告诉我们他们真正的需求?

这涉及到很多个问题。我不敢肯定你问的含义。

情况可以是你的客户只是不知道他们真正的需求是什么。他们确实不知道你能帮他们什么。这是一种情况。另一种情况是他们确实知道,但他们并没有告诉你。他们在对你说谎或他们隐藏了某些东西。这些情况各自都不同,每个案例中的迹象也不同。

如果你的客户并不了解他们的需求是什么,那么你就会常常看到他们反复无常。这个时候你可以通过问问题来使事情更加精确。这是某些人所寻求的形式化过程的一部分。我给你举个例子。

可能最常见的例子就是我们发现某个人说,“我们需要一个快速的系统。”看,我们不知道“快”意味着什么。这个“快”和他们头脑中已有的某些速度有关。对某些人来说快的系统,对另外一些人却是慢的。所以,你必须找出更清楚的事实。你可能需要测试它,因为他们可能不知道。一个好的解决办法是,你可以做一个系统原型,然后改变速度,这样他们可以看到和感受快一些和慢一些的结果。这样你就可以发现真正的需求。

我如何把“探索需求”应用在日常生活中或用来帮助别人?

这里,我想举一些例子,关于我自己是怎样在日常生活中应用“探索需求”的一些原则的。有一些很有意思的事情。我和我太太,已经结婚42年,哦43年了,对美国人来说这可是一段不短的时间。我们在一起非常幸福,但我们,跟大多数婚姻一样,也有一些问题。其中一个持续了数年的问题是,我们决定看场电影,然后一个想看这部电影,而另一个想看另外一部。决定我们要看哪部真是太难了,所以我们开始学会如何了解彼此的需求,来看我们有多想看这部或那部电影,以及我们能为那部或这部电影作出多少妥协。所以我会说,自从我们学会了这种方法后,婚姻幸福多了。

好的,当我和别人交换某物的时候,或者,如果我在买衣服……我以前浪费了很多钱,来买一些衣服,我不喜欢的,或穿起来不合适的。这些年来,我学会了,用那些和判断软件需求同样的技术,来得出自己的需求。所以好多了,我知道了什么是我真正喜欢的和需要的,它也为我节约了不少金钱。

我讲了两个方面,一个给了我幸福的婚姻,另一个帮我省下了不少钱。而且这也同样帮助我照顾我的子女,孙子孙女们。我想这些是生活中真正重要的几个方面。

发表于 @ 2004年08月03日 11:34:00|评论(loading...)

新一篇: 【探索需求对话3】沟通,了解什么是自己、是客户真正想要的东西 | 旧一篇: 【探索需求对话1】CMM只是一种标准,UML只是一种记录需求的工具

用户操作
[即时聊天] [发私信] [加为好友]
WeinbergCN
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
WeinbergCN的公告
If you want one year of prosperity, grow grain. If you want ten years of prosperity, grow trees. If you want one hundred years of prosperity, grow people.
文章分类
收藏
Book Review in Chinese
Book Review in English
友情链接
AYE会议
杰拉尔德·温伯格的中文网站
杰拉尔德·温伯格的英文网站
存档
软件项目交易
Csdn Blog version 3.1a
Copyright © WeinbergCN