需求背后的需求

  从软件开发的整个流程来讲,需求变更是软件行业,最令人忌惮的问题,一直困扰着我们的研发人员。南辕北辙的道理,每个人都明白。同样,需求变更的代价,会随着项目的进展成倍增长。按行业统计数据,如果在需求阶段只需要花费1个时间单位就能改正的错误,拖到设计阶段来改正需要5倍的时间,到了编码阶段将是10倍,测试阶段可能达到20-50倍,而到了运行或维护阶段或许达到200倍。这就好比盖房子,如果在设计阶段提出变更,只需要修改图纸,如果房子已经完工,却要推倒重来。

  软件公司大部分成本是人力成本,研发周期越长,项目成本越高。需求错误,势必造成研发周期的延长,过长的研发周期正在吞噬企业的利润。而需求变更的根源,在需求捕获上,开始获得的需求如果是错误的,后续再好的设计都无济于事。捕获用户需求不像设计和编码那样纯技术化,不容易建立标准,多少会有一些个人经验主义。有不少企业的需求人员,把客户需求理解成,客户想做成什么样一个产品,果真是这样吗?为什么有些人拿来的需求,很少变更,其他人获得的需求却频繁的变更。我们来看看,很多人认为正确,并且还依然这么做的需求捕获方法:很多需求人员在和客户谈需求时,淡化业务,更多希望客户告诉他要做什么。有些有“经验”的需求人员过早的提供页面设计:“我给你做成这样的吧”,拿出笔和纸开始和客户讨论起页面显示什么内容,最后不忘让用户签字确认。

 希望用户告诉他们要做什么,直接把对系统的呈现方式交给了用户。也有不少客户,因为不懂软件开发行业,所以会把需求理解成,系统做成什么样,直接告诉我们的需求人员,给我实现什么样一个功能。如果用户选择的方案不是最合适的,是拍脑袋想出来的,必将引发后续的需求变更。我见到的很多客户,提出的需求,拍脑袋得来的成分更多。

  需求人员获得的这种需求,向研发传递的往往不是业务,而是某某功能能否实现。需求文档看中不到业务,而是项目背景,功能描述,页面显示栏位等内容。这种带界面的“需求“(实际上不是需求)本身会非常脆弱。后续任何界面的改动都会引起“需求”(实际上不是需求)的变动。同时也剥夺了UI设计人员的机会。到了编码阶段,程序员发现不合理的“需求”(实际上不是需求),提出的改进反而变成了“需求”(实际上不是需求)变更。

  让客户在需求文档上签字确认,公司要求这么做,需求人员也热衷于这么做。客户签字,可以让客户慎重的提出的需求。但是,如果一开始捕获的需求就是错的需求,这种签字是否有约束力呢?签完字,最后改变的需求比比皆是。谁也不愿冒和客户关系闹僵的风险。没有良好的客户关系,项目注定也不会成功。这种签字更多的是为了一种流程(客户不签字,项目不能进行下去,客户没有其他选择)。客户怎能做到,在没有使用软件前,分析清楚系统是否符合业务要求呢。本人从事软件研发N年,自认为项目经验还算丰富,常为一个需求的实现方式,考虑很久。软件行业是公认的,高脑力劳动的行业,专业人士需要考虑很久的事情,让客户来精准的完成,太不现实。所以客户签字不代表需求正确,只要是错误的需求,就会变更。

  其实,许多需求的变化是假的,真正的需求,至始至终一直在那里,根本就没有变。只是开始我们就没有找到,拍脑袋得来假的需求。如果用户使用很长一段时间后,才提出变更,才是真正的需求变更。作为需求人员,应该把注意力放在业务上,业务是相对稳定的。通过对业务的分析,产生出软件系统的需求。如果客户提出,需要实现某个功能。需求人员,可以通过询问客户为什么要做这个?客户工作上的困惑是什么?把客户对功能的实现引导到实际业务,这时候真正的需求或许已经呈现。软件是为了解决问题,用户的目的不同,解决方式也会不同,完全存在有更好更合理的方式解决用户的问题。但不明确真正的问题,谈何解决问题的正确。

 业务分析通行的做法是,建立业务模型(推荐潘加宇老师的《软件方法》这本书)。如果需求人员没有开发背景,也没有需求分析的经验,或者就是商务人员,那就原原本本传递客户的业务,解决方案的最佳人员应该是设计和开发人员。需求分析完成后,由设计人员提供原型,客户来判断这个原型是否符合需求。需求文档中不应去描述页面的操作,而是以业务为中心分析业务,找到系统对业务的支撑点,寻找“需求”背后那个真正的需求。

时间: 2024-10-10 08:47:54

需求背后的需求的相关文章

市场需求和产品需求有哪些区别和联系?

1.市场需求是问题,产品需求是答案 一个是现象一个是方法 产品需求服务产品,产品服务市场需求,它们应该是因果关系 产品都是为解决某个问题存在的 2.市场需求有伪装性,产品需求要明晰性 就像福特和马的故事,用户真正需求的是要更快的交通工具,但用户只知道马 ,所以他们的需求是有隐蔽性的:福特的产品需求就很明晰了,要做更快的汽车 市场需求是需要挖掘的 3.都是1对多关系 市场需求可以有多个产品来满足,产品需求又可以满足多个市场需求 汽车和马都可以解决交通问题,而且各有优缺点:汽车快但贵,马慢但便宜 搜

[学习笔记]批次需求计划-净需求与毛需求

[学习笔记]批次需求计划-净需求与毛需求

【四】流程2:需求管理创建需求

创建需求 首页需求管理模块(需在创建项目时选中启用需求管理才能看到): 需求规格说明书是我们开展测试的依据,可以首先对其进行分解,一个项目可以包含多个需求,一个需求可以包含多个测试需求(如系统测试,单元测试,接口测试等) 创建测试需求规格 创建测试需求 一 产品需求规格 点击上图的产品需求规格,跳转到产品需求规格页面,改页面已树形式显示一个项目包含的需求层级关系 点击新建产品需求规格: 在规格下面可以创建产品需求:

维护需求与新增需求

一般来说,维护需求的项目时间都是比较紧急的,维护嘛,用户等着上线用的啊,其实在这里,我们对维护需求和新增需求的定义都不太清晰.怎么理解呢?我个人的理解:维护需求,是指用户提出在系统使用过程中的问题以及整合目前用户觉得需要改进系统的一些功能的需求文档.新增需求,就是指用户在不满足当前系统使用功能的前提下提出一些不包含之前的需求文档内的新增的功能而形成的需求文档,它没有包含用户继续解决的用户bug.因此,我个人从定义上区分,维护需求多数只是针对用户问题去修复并验证bug,当然也有掺入一些用户界面体验

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

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

SUV成热潮背后:需求引领体验新风潮

在中国的家庭轿车发展历程中,基于功能的刚性需求几乎是所有家庭用户的第一购车要素,从早期的出行工具到目前的出行体验变化来看,这种看似微小的产业变动特征,正悄然透露着汽车市场的用车心态变化. 务实,几乎是这场市场变革中的唯一关键词,SUV更如是. SUV作为集舒适性.功能性和性价比等特征为一体的轿车类别,一定程度上成为了大多家庭用户用车的首选,在目前市场上,除了国外的品牌产品外,国产的大多SUV车型如汉腾X7等也开始成为推进这一理念. 1.SUV的刚性需求:大空间保障舒适性 功能性特征几乎是所有家庭

软件测试自我修养(一):修心三问

"授人以鱼,不如授之以渔" 说的是传授给人知识,不如传授给人学习知识的方法.今天我想针对于此从思维层面再做一个升华:"授之以渔,则先令人悟之". 做好软件测试,首先具备的修养是需要弄明白三个问题.这就是上面讲到要的"悟".假如开发人员修改提交了BUG,我们使用"三问"的思想进行测试,对于测试人员了解需求会起到很大的帮助. 何以悟"三问".您一定会问:"哪三问?" 举个例子,咱们来设计一个

哪些要素在做产品需求的时候容易犯错?

产品经理是一个思考的工种,而多想多思考成为产品经理成长最为关键点.而经验会帮助产品经理在产品需求认知和产品设计上不会犯错误,而快速进入角色.很多新手却办不到这一点. 一.判别需求是否真实存在?需求真伪性 当产品经理接到一个业务部门的需求,一个老板的需求.很多人惯性的思维是如何完成这个需求.而展开对需求思考.但是在此之前,我们需要去判别这个需求的真伪性.如果是伪需求,那么做出来是对我们的产品没有任何的意义.需求是否真实存在,真实性如何?是否有场景可以承接这个需求本身. 二.表面需求后,没有去了解更

销售有时就是多一句话(探索需求)

销售,有时就是多一句话(探索需求) 2016-05-29 销售总监 学习使人进步 知道没有力量,悟到并做到才有力量! 在营销界有这样一个经典案例: 一老太太去买菜,路过四个水果摊.四家卖的苹果相近,但是老太太并没有在最先路过的第一家和第二家买苹果,而是在第三家买了一斤,更奇怪的是在第四家又买了两斤. 1.摊主一 老太太去买菜,路过水果摊,看到卖苹果的摊主,就问:苹果怎么样啊? 摊主回答:我的苹果特别好吃,又大又甜!. 老太太摇摇头走开了(只讲产品的卖点不探求需求,都是无效介绍,做不了单) 2.摊