需求评审之隐性需求

前两周,我分别通过两篇文章《测试人员参与需求评审的价值是什么?》和《需求评审之实战演练》对需求评审阶段要做的事情做了大概的说明,今天是第三篇,主要想说说需求评审过程中对隐形需求挖掘的重要性。

我们先来看一个例子:

「爸爸,我想吃面条。」
「现在太晚了,饭店已经关门了,明天我带你去吃好不好?」
「不好不好,我就要吃面条。」
「你这孩子,这都 11 点了,哪还有面条?快给我睡觉去。」
「哇……」

脑补下宝宝大哭的画面。

来,我们现在换一个爸爸来对话:

「爸爸,我想吃面条。」
「今天太晚了,饭店已经关门了,明天我带你去吃好不好?」
「不好不好,我就要吃面条。」
「闺女是不是肚子饿了?我给你拿你最爱吃的面包好不好?」
「好呀好呀。」

虽然只是一句话的差别,但是得到的结果却是天壤之别。

上面例子中这句话如果按我们测试的行话说,就是发现了用户的隐性真实需求。

我闺女是想吃面条,但是因为饿才想吃,而不是单纯的想吃,那么只要解决饿的问题就好了,她爱吃意大利面我是知道的,她同样也爱吃吐司,我也是知道的,所以就可以通过吐司来解决她饿的问题了。

道理看起来很简单,但如果想不到这个点,就解决不了问题,还有可能造成负面影响。

这里我想说的是,隐性需求,就是真实的原始需求。

我们继续拿之前那个简易计算器的需求作为第二个例子,重新描述下需求:

现在有一个 PC 客户端的命令行工具,这个工具可以接收三个命令行参数,其中,前两个是数字,最后一个是运算符,运算符只支持加减乘除四种,工具的功能就是把前两个数字使用运算符做下运算,然后输出运算结果。

看过之前文章的同学都知道,这是我经常用的一道写测试点的面试题。

从我面试的结果看,大部分在写功能测试点的时候都能覆盖到三个参数的正常和异常情况,一半的人能考虑到参数个数的正常和异常情况,一小半的人能考虑到数字参数的最大值情况,非常少的人能考虑到参数分隔符的正常和异常情况。

参数类型、参数个数这些都是需求里面明确写出来的,这些我们可以称为显性需求,所以能考虑到这部分用例的人很多,特别是参数的正常和异常,不管是否知道等价类划分法,都能考虑到。

但是参数个数和数字最大值,又可以算到边界值分析法里面,如果不知道边界值分析,可能不会考虑到参数个数所有异常的覆盖情况,如果不懂编程,可能问不出来数字使用什么类型这样的问题,当然也就不知道所谓的最大值要怎么构造了,所以这个也可以算到隐性需求的范畴。

最后一个很少人考虑到的参数分隔符,肯定是我们要说的隐性需求了,这种没有明确说明的地方,有时候开发会按照自己自以为的方式给实现了,比如默认空格分割,但是测试后期发现很多人也会用逗号去分割,修改的话会造成新的修改成本,其实这么简单的地方,需求评审的时候提一下,就可以把需求明确了,难的是谁能想的到。

这里我想说的是,隐性需求,就是把习惯性思维明确化。

第一个关于原始需求的例子,如果拿我们实际项目的情况来对应的话,可以找出来很多,比如某用户嫌某个软件的功能太多,其实他可能只是说他常用的功能入口太深而已,比如某用户嫌软件广告太多,其实可能只是推送的这些广告都不是他的关注点而已。

第二个关于习惯性思维的例子,实际项目中也经常发生,而且特别坑人,有个专有名词叫「经验主义」特别适合这个地方,这里我又想起来另一个例子,可以说一说。

我高中时的数学还不错,最喜欢上的就是数学课,对各种数学题比较感兴趣。

记得有一次课间休息,我不知道怎么就坐到一位成绩不太好的同学的座位上了,然后看到他桌子上放着还没做完的数学作业,一时兴起,就顺手给做完了,本来想着这同学回来该感谢我的,可是等到的却是责怪,责怪我不该把他作业给做了,确实是我的错,我一时无语。

事后我仔细想了想,这件事纯粹就是我自己的一厢情愿了,我以为不爱学习的同学都不爱写作业,我以为帮别人写了作业别人会高兴,所有这些都是「我以为」,或者说是我的经验主义在作祟,让我没能从实际情况去做出正确的判断。

这种事在需求评审过程中很常见,有一些貌似「不言自明」的逻辑,每个人都以为自己明白,别人也肯定能明白,并且和自己理解的一致,其实每个人可能理解的都不一样。

这件事之后,我对自己的经验就总是持怀疑态度了,不过这是另外的话题了,这件事带给我的一个好处就是,每件事我都尽可能的去把它明确了,我听别人说的话,就算很明白,我也尽量复述一遍让他确认,别人听我说的话,我也尽量让他复述一遍,我再确认。

其实需求评审就是这么个明确显性需求、挖掘隐性需求,然后相互确认理解一致的过程。

这里我想说的是,隐性需求,就是避免经验主义。

一不小心又啰哩啰嗦的写了这么多,几个例子无非都想说明的是,隐性需求很重要,有时候,正确挖掘过的隐性需求会直接推翻现有的需求方案。

不知道你的项目中是否出现过这些情况,欢迎留言讨论。

原文地址:http://blog.51cto.com/sylan215/2347404

时间: 2024-10-03 19:44:16

需求评审之隐性需求的相关文章

需求评审五个维度框架分析及其带来的启示-3-典型需求评审

典型情境是指软件开发的常见情境,本文选择如下来进行分析: 1. 传统瀑布模型开发下的需求评审 2. 使用IEEE Std. 1028的需求评审 3. 敏捷开发下的需求评审 传统瀑布模型下的需求评审 对传统瀑布模型现有需求评审的分析 传统瀑布模型在需求阶段末期安排有关键的需求里程碑评审,其特征参见2.8节情况1.在业界实际操作中,往往出现如下情况: 1,召集包括领导在内的各方代表,历经1-2小时会议,评审30页以上需求规格说明书,走过场式各方签字通过评审: 2,各方对需求规格书有各种各样意见,历经

如何洞悉隐性需求

俗话说,计划赶不上变化快,无论需求文档做得如何细致,考虑得如何周全,总会有些难以预料的需求变更在每天困扰着我们.开发人员苦恼,产品运营人员更苦恼,毕竟谁也不愿意捂着脸一遍一遍地求人改需求. 但是,虽然世界充满未知的变化,但是有一些大的方向还是可以把握的,无论是产品运营还是开发人员,都可以在需求确立以及需求评审时多多考虑一下小鸡君说的这些方面,相信一定可以减少一些后期的变更成本. 下面这些内容主要是从开发人员的视角考虑的,多数基于小鸡君的个人经验,难免有失偏颇,不当之处还望指正.当然,如不嫌弃,感

为什么要一线研发参加需求评审和工作量评估

一.概述 现在互联网的竞争越来越激烈,对研发人才的争夺也已白炽化.但是如果发挥好每一个员工,每一个研发的聪明才智,让团队有很强的战斗力却是一件让人头痛的问题. 今天我就从让一线研发参加需求评审和工作量评估来谈谈这方面的问题. 二.研发参加需求评审的好处 1.增加研发工程师的参与觉,提高研发工程师的积极性和认同感 2.从人角度看,提高研发工程师对需求的认识,更加熟悉业务和流程,提高研发工程师的业务技能 3.从项目的角度看,增加研发工程师对需求的认识,利于尽早发现需求问题,解决问题,需求了解了,工作

怎样进行需求评审?

一. 注意对需求规格说明的正确性进行评审 需求规格说明的正确性通常可以从如下方面得以体现: 1.是否有需求与其他需求相互冲突或者重复? 2.是否清晰.简洁.无二义地表达了每个需求? “清晰”是让人能够读懂:“简洁”是让人愿意去读:“无二义”决定”读”的效果,是让大家对需求描述的理解能够达成一致 . 3.是否每个需求都通过了演示.测试.评审,分析是否得到了验证? 4.是否每个需求都在项目的范围内? 5.是否每个需求都没有内容和语法上的错误? 6.在现有的资源内, 是否能实现所有的需求? 7.每一条

软件需求评审之规格说明的正确性

软件需求,即客户对于软件产品的要求,是软件项目开展的基础.在大多数情况下,对于需求,客户本身也并不十分清楚或客户认为需求和限制条件过于明显以至于并不将它们作为需求专门向软件开发团队提出.与此同时,软件产品的规模越来越大,实现的业务越来越复杂,因而促使人们采用一些工程化方法对软件产品需求进行研究,需求规格说明的正确性能获得准确.清晰和全面的需求,促进软件项目顺利进行.需求规格说明的正确性通常可以从如下方面得以体现: 1 是否有需求与其他需求相互冲突或者重复? 通常一份长达几百页的需求规格说明书都不

需求评审之实战演练

一 我在面试时,经常会出一道简易计算器需求的编程题,完了之后再让写一下这个需求的用例,题目看起来很简单,但是几乎可以把我想了解到的基础测试理论全部都涵盖了. 今天我还拿这个例子来实操下在<测试人员参与需求评审的价值是什么?>中提到的需求评审关注点. 比如我现在是产品的角色,我给的需求描述是这样的: 现在有一个 PC 客户端的命令行工具,这个工具可以接收三个命令行参数,其中,前两个是数字,最后一个是运算符,运算符只支持加减乘除四种,工具的功能就是把前两个数字使用运算符做下运算,然后输出运算结果.

20140525 科技脉搏 -下半身需求是人类共同需求,有多少人就有多大市场

◎新媒体 今日头条张一鸣:30亿估值之后怎么玩? "今日头条"是否侵犯内容版权?来看一看各方的观点 第四代互联网:新媒体的身份认同 评:如果把第一代互联网称为"将信息放在网上",第二代称为"组织信息",第三代称为"连接你我",那么像Buzzfeed这样的第四代互联网网站,是不是可以称为"属于我的"互联网时代?不知道再发展下去,互联网格局会怎样演变呢? ◎大数据 李彦宏:企业级软件与大数据的新玩法,未来都会产

需求管理之客户需求何时休?

我想看到这种标题.对于每一个搞软件的朋友来说,肯定是非常有兴趣的. 由于这已经成为每一个软件开发人员的心头大患,客户需求在软件这个独特的行业里.体现着最独特的含义,由于需求是软件项目存在的意义所在.而需求的变化让软件最后撵手不着,我们大家都会有"客户需求何时休?"的体会. 软件是服务于业务需求的,没有业务需求的软件肯定是没有价值的.国内的软件业普遍现象是:软件项目远远大于软件产品.这也是国内软件所面临的一个严重问题.国内软件好象在死亡线上挣扎.项目成为软件企业生存的唯一依赖,而项目恰恰

47、软件需求工程的活动可以划分为5个独立的阶段:需求获取、需求建模、形成需求规格、需求验证和需求管理,需求建模是()

2013年下半年软考高级信息系统项目管理师综合知识真题答案与解析: 47.软件需求工程的活动可以划分为5个独立的阶段:需求获取.需求建模.形成需求规格.需求验证和需求管理,需求建模是() A.分析需求的正确性和可行性的过程 B.对需求的抽象描述 C.对生成需求模型构件的精确的形式化的描述 D.开发.捕获和修订用户的需求 信管网参考答案:B 信管网解析: 需求建模就是需求分析过程,目的是对各种需求信息进行分析并抽象描述,为目标系统建立一个概念模型.软件需求工程活动的5个阶段:http://www.