一、需求与需求调研概述
我们讨论的问题是需求、需求调查和需求分析(研究)。在正式讨论需求与需求调研之前,我先提出两个假设,以作为讨论的前提。大家还可以对这两个假设进行讨论。
假设1,客户的需求,在一定的时间段内、一定的环境下(经济环境、组织结构、发展期间、IT应用水平)、一定的范围内,是确定的,或者说是相对确定的。由此,产生出一个结论:掌握了一定技能和方法的需求调研人员应该可以把握这个需求,能把这个需求通过调研和其他方式搞清楚;
假设2,需求调研人员已经掌握的需求,能不能完整的描述出来以便于软件开发的后续活动顺利进行?是使用自然语言还是形式化语言?我们假设目前采用的用例驱动的面向对象方法,可以有效获取客户的需求,并通过统一建模语言UML的使用,可以比较准确地描述需求。
本文基于以上的假设,对软件工程的需求、 需求调查和需求分析(研究)进行讨论。其中大部分内容是我这些年从事信息管理工作的体会,因此,每个章节都有一节“讨论”,欢迎大家指正。
1、需求
需求,在不同的语境中有不同的含义。对于软件需求来说,目前常见的定义是IEEE软件工程标准词汇表(1997年)中的定义:
(1) 用户解决问题或达到目标所需的条件或能力(或者是条件或权能 Capability );
(2) 系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力;
(3) 一种反映上述条件和能力的文档说明。
对于以上的定义,我总觉得说的不够清楚,客户可能就看不明白。或者说做软件开发的人们心里都明白,说不说都行;或许像有些人说的,人们并不清楚究竟该做什么,但却一直忙碌不停地开发。
在这里,我们不需要准确的去定义需求,但还是要讨论一下需求到底是什么。
管理软件的应用和实施,归根结底是一种经济活动。那么,换一个角度来看需求,可能更有助于理解。
从经济学的角度来看,“需求”就是人们的“欲望”。软件需求也可以说是客户在一定的条件下为了改善管理条件、追逐更大利润的“欲望”。当欲望得到满足,人们会感到快乐和幸福,这就是“效用”。不过,欲望和效应是无法计量的,捉摸不定的,因为它既有物质因素也有精神因素。而且,一般情况下这个效用(单位效用)是不断递减的(经济学上的边际效用递减法则),这样,人们的欲望就会越来越高。
从需求理论 来说,一方面,人们的欲望受到当时的社会生产规模、效果和资源条件的限制,另一方面,一个欲望得到满足以后就会产生新的欲望。
软件产品作为一种特殊的商品,是软件公司通过有限的技术手段为了应付客户的欲望而开发出来的。由于需求“效用”的不可计量,再加上软件产品的特殊性,于是客户就有可能会对最终产品产生“期望差异”。
软件产品是一种特殊的产品。按照《中华人民共和国著作权法》的定义,计算机软件是科学作品,“是指文学、艺术和科学领域内具有独创性并能以某种有形形式复制的智力成果。” 软件的开发,也可以称为创作,“著作权法所称创作,是指直接产生文学、艺术和科学作品的智力活动。” 具体来说,计算机软件是指计算机程序及其有关文档。同时,软件是一种知识产物,独立于其载体。
软件公司属于国民经济行业分类《信息传输、计算机服务和软件业》中的软件业。按照《计算机科学技术百科全书》的解释,兼有制造业与服务业的双重特性。给社会提供更多更好的软件产品是软件公司的基本职能。
关于期望差异和两个假设的话题,我们在本节的讨论中再展开。
注:关于计算机软件的特性和软件业的特点,以后再讨论。
2、需求调研的性质
需求调查从本质上讲是属于社会调查的范畴。
社会调查的一般理论:社会调查