收录日期:2021/01/28 15:29:41 时间:2016/07/31 12:13:21 标签:研发管理
平时,我们最常见到的有关需求的话题是:如何调研需求,以及如何管理需求。我今天遇到了一件事,我以“对待需求”为题发起这个讨论: 
面对用户提出的各种需求,我们应该持以何种心态来对待用户的需求?今天,有个项目经理告诉我:用户的需求是会变的,我们不需要非常细致的把控它,很多业务是模糊的,用户都说不清,我们不一定非得搞得那么清楚。而我的部门主管也比较赞同这种说法。但是,我并不同意这种看法。我仅仅说明我个人的观点:需求本身是客观存在的,它到底有多细致,某种程度上取决于我们调研和理解的深度。做好一款软件,对需求越是深入的了解,越能发现需求背后的业务含义。明确的和细致的需求理解有助于我们设计系统的时候能有良好且灵活的把控。那个项目经理还告诉我:用户自己有时候都说不清自己需要什么。我想问:这难道成了我们不需要详细了解需求的理由了吗?恰恰是因为用户不能明确表达自己的需求,我们这些软件人员才有责任去协助和引导用户发现自己的需求。另外,有时候,用户说怎么做我们就怎么考虑的想法也是不对的。用户有时表达的需求其实是他们想要的东西,这就像是用户直接给我们一个解决方案了,其实,用户真正遇到了什么问题,他真实的需求是什么,这才是我们做需求发掘的目的所在。那为什么要发掘需求呢?也是为了更为细致地了深刻地理解需求。而这一切,应该讲都是为了更好地开发一款能为用户带来价值的软件。 
上面,是我初步的想法,我很希望和大家一起理性、客观地看待和深入地讨论这个问题。在我工作的这几年中,我越来越发现“对待需求”的心态就决定了这个系统的成败! 
1.作为一个技术人员,难得楼主有这样的认识;
2.让开发人员做调研不是个好主意;
3.尽量避免正面调研,调研者到处走走看看,然后跟他们轻松地、随性的谈谈管理、谈谈业务,然后你能“揣摩”出他们想要什么;
4.在业务领域而不是数据上明确需求边界,比如你要确定:是不是要解决采购计划流程,而不是确定有哪些字段,如果实现确定没有采购计划,而后来加入了,那就要增加费用;如果是处理流程的变更或者字段变更,那么这属于应用程序的设置功能;
5.对于存在竞争对手的领域,尽量发掘出别人没有发现的需求
我们面对的客户是多样性的,根据具体客户要采取不同的调研方法,楼主的思想是准确的。既要实现客户的业务需求,又要把握系统的实现难度。
快速原型、快速迭代;让产品经理成为领域专家。
非常感谢大家在百忙之中答复我的问题。关于microtry所说的让开发人员参与调研,目前,我们部门面临人员紧缺的问题,仅有两人在岗,算上我三人,所以我发动大家一起去调研的。我主要担心个人需求调研后,突然离职的情况(之前就发生了这种情况,导致现在的另一个项目比较尴尬)。不过,我发现一个问题,开发人员去调研后,我们在一起讨论需求的时候,他们所表现出的那种思想和智慧,对项目是大有裨益的,对其个人的成长也是很有好处的。我们原来是这样一种情况:之前的项目,都是只有部门经理去调研,然后他把需求传达给项目经理,而项目经理对任何问题都不去了解需求背后的真实业务含义,仅仅是听取部门经理的调研(我们部门经理现在也要离职了)。结果,在开发系统前期,乃至贯穿整个项目的期间都给整个项目组传达了这么一种思想:很多东西是模糊的,我们做的东西,只要给用户记录最后的结果即可,至于这个结果是怎么来的可以不去关心。当然,有些得到结果的过程是不好用系统实现的,但是,这样的指导思想导致目前的系统成了一个记录用户业务结果的工具,其中用户复杂的计算功能都不去考虑,甚至是很多业务都不去考虑其实际的业务意义了。所以,我自己感觉现在的系统做的非常生硬。
当然,我需要说明的是:我不是在抱怨这个项目做的不好,而是考虑,后面的项目要从中汲取哪些经验和教训,以便我们设计的系统能真正地帮助用户提高他们的业务效率,减少他们的各种成本。
赞同楼主的观点。
的确很多客户都不清楚自己到底想要什么,挖掘出客户真正的需求不仅会减少需求变动的可能,更加能获得客户充分的信任,从而根据我们的需要去影响客户的想法
引用 4 楼 andark 的回复:
非常感谢大家在百忙之中答复我的问题。

我主要担心个人需求调研后,突然离职的情况

之前的项目,都是只有部门经理去调研,然后他把需求传达给项目经理,而项目经理对任何问题都不去了解需求背后的真实业务含义,仅仅是听取部门经理的调研(我们部门经理现在也要离职了)。

你知道为什么走人成为你的顾虑吗?甚至为什么会走人?就是因为你们的工作从流程到细节把握,都太粗糙,没有规范。

为什么没有规范,或者说有规范而没有实行?并非是单纯的对处理需求的理解不同的原因。从楼主你个人的认识来说,有值得肯定的地方,但你忽略了一个关键的问题,就是明明对的事情,有助于每个人把自己工作做好的规范,为什么没有人愿意做?

一句话,公司是否公平仁义?是否让大家愿意正常付出并得到理所应得的报酬?还是只能应付了事,揣明白当糊涂呢?

不要说在一些环境里“谁明白谁就得最受累”的现象(除非你上面的领导都比你明白),就算是“枪打出头鸟”的事情,在很多公司都是常态。

在一个人的社会里,你不能只用一个代码式的思维想问题,除非你的代码智能到可以在0和1之间找到一个适当的中庸值。
用户可以做好业务,却说不清楚业务需求,这是什么原因?
这就是其中有很多只可意会,不可言传的隐性知识。这些隐性知识,需要凭借调研者的主观能动性,自己去学习。如果你只管调研,写出需求规格说明书就完事,那么读你的文档的人,同样获得不了这些隐性知识,他要想弄明白,也只能和你一样,自己去学。这样一遍一遍地重复学习,实际上是一种浪费。快速原型法的优点,就是把这些隐性知识封装进了原型,后面的人不必再学了,只要对原型照猫画虎就可以完成工作。
theforever讲到的一些问题,确实我有所忽略。在实际的工作中,确实存在某种程度上的“不公平”,但是,我们也面临着实际的困境:这种不公平我们很难处理。比如:个人的待遇、职位、工作量等等。有时,项目经理会认为能者多劳,但是,能者却不能多得。那么,对于能者来说,要么平时仅做与自己收入水平差不多的工作,要么就走掉了。当让,人的离职有各种原因,我也不能明确到底是什么原因致使他们离职的。其实,我这个讨论的主题仅仅是反映一下我们对待软件需求的心态,我本不应该为这个问题添加任何背景色彩,当然我上面举得例子已经包含了某种背景,所以使得我们的讨论可能有某种程度的发散。不过,看的出来,大家对于软件需求的认识还是很“积极向上”的,我也很高兴,最起码,我知道大家的想法后,我也更加坚定我自己的想法了,希望后面能与大家一起探讨更多的问题,也希望我们能做出真正有意义的软件。
非常支持。。。

用这种思想开发出的软件应该都是精品
但这种想法有时候会受到其它因素的制约
如时间限制等。。

那么就需要对需求深度有一个把握,也就是说需求要做到什么样的一个层次,这个全局的度不好把握!
以上只是个人想法,并未实践!!

如何进入汇编跟踪啊啊,请指教? 关于Webborwser控件的问题。。。请不吝赐教!!! 请教大虾,在Jbuilder开发平台下,应该用什么地图开发工具啊.谢谢 如何获得客户端的mac地址? 因为要开发象qq和msn那样的界面,有人可以详细的告诉我一下什么是 active skin 技术,顺便可以提供这方面的资料,谢谢!在线等待中 请各位高手来讨论一个热点话题(论坛群发)!!! 请教如何知道listview里的某一行checkbox被选中? java程序员 我是个初学者,询问个简单问题 如何科学的在类和窗体之间传递状态信息? 大家来讨论一个热点话题(论坛群发!)!! 我建立了一个300个字段的表,同事说vb没法insert这样多字段的表,是bug,请问大侠,对否?微软的这个bug号码是多少呢? C#中簡單綁定問題 DB2中的字段可以定义为自增,如何知道刚插入的纪录中自增字段的值?100分 手机号码对对碰:写下你手机的最后六位,看看谁的靓 请大家来讨论一个人们话题(论坛群发)!!!!!!!!!!!!! java画图!! Variable required错误,莫名其妙想自杀! 高分求救!!printdocument实例 大家来讨论一个热门话题(论坛群发)!! 有想换工作的吗?(熟练使用ASP.net+Oracle并能做一些设计工作)(上海) 把显示器分辨率调太高了看不到图象了,怎么把它设回来?谢谢! 手机编程 大家帮忙看看,这条HQL语句错在哪? moto sdk5.2的配置问题? 从pc access(*.mdb)转换到pocket access(*.cdb)时密码失效? 打印机打印图片时CPU占用率为100%(xp)? c++中的结构和类的区别?小弟不明白 想学 smartphone 应用程序开发 MFC程序里 重载new delete 操作符遇到的麻烦.