5.3 需求的调查
需求调查是需求开发的重要阶段。需求调查的目的在于通过各种途径来获取用户的需求信息。
调查的主要内容有:
(1)系统用在什么地方?
(2)系统需要完成什么使命?
(3)与系统有关的利益主体都有哪几个方面?
(4)完成使命时关键性的系统参数是什么?
(5)系统有(或者需要)哪些组成部分?
(6)系统完成使命需要达到怎样的效率和效能?
(7)系统将要使用多少时间?
(8)系统的环境是怎样的?系统希望在怎样的环境下生存(或运用)?
这些内容在问题的确定阶段已经得到了一些,但不会很完整,因此需要进行调查。
有待构建的系统如果是一个实物系统,例如生产加工系统、计算机信息系统乃至软件系统,上述问题比较好回答。如果是构建一个组织机构,或者规划一个地区的社会经济发展,则首先得和委托者或用户进行探讨,看怎样把这个组织机构或者地区看成一个系统,系统的边界在什么地方,先在观念上达成共识,然后才好向下进行。
用户认识到了需求分析的重要性,可能仍然不知道从何处入手来表达自己的需求。这时,可以从他们所熟悉的业务需求入手。例如对一个企业来说,无论是领导还是一般员工,对自己的经营运作目标应该是比较清楚的。这种对经营背景的表述不仅让用户有话可说,也让开发者逐渐找到调查的线索。
需求分析不可能完全与它所处的社会背景相脱离,只有把系统真正放在它的社会和组织环境中,它的需求才能清晰地反映出来。这样,用户和需求分析人员才能逐渐清楚地了解:为什么要从事该项目;该项目最终能为业务和客户提供哪些价值;该项目有哪些使用者;数据来源和目的是什么;等等,从而使项目的功能也逐步清晰起来。
需求调查的方式有下面5种。
1.面谈法
面谈是最常使用的方法。进行系统需求分析的人员和项目委托者和用户的面谈,可以通过个别约谈、即一对一交谈的方式,也可以为了节省时间而采取小型座谈会的方式。但是许多人聚集在一起,有的人就会看领导或资深人士的脸色说话。因此要先考虑怎样分组。
面谈需要有所准备。没有准备的面谈不但得不到所需要的信息,而且白白浪费双方的时间,并为今后的交谈投下阴影。
邀谈的对象应该包括各个层面的人士,这样既能听到高层的意见,也能听到基层的意见。一般是从一两位高层人士开始的,这样能够首先得到一些带有战略性的观点和意见。然后通过中层和基层人员了解一些专业细节。但这不是一步到位的,常常需要上下反复几次。开始时要列出邀谈者名单给委托者(用户)方面,进行过程中还会有所增补。
面谈有封闭式与开放式两类。封闭式面谈是调查者事先准备好一组要在面谈中得出结论的问题,而开放式面谈则没有事先准备好的问题,而是围绕着所需要了解的问题以开放的形式交谈。在实际执行上多半是二者的混合方式,既要准备一些问题期望得到答案,又会随着谈话的展开,以开放的方式进行探讨。即使是开放的方式,调查者事先也得有所准备。一般开始时可以用开放的方式引入问题,然后逐渐聚焦到一些核心的问题上。
面谈的一个优点在于通过谈话不仅可以获得显性知识,而且通过发言者的用语和情绪,获得一些隐性知识,如对项目的内心期望和对前景的乐观或悲观估计等。
2.问卷法
这是一种从多个需求提供者中收集信息的常用方法。一般是将设计好的问卷发给被调查者,请他们填写,然后收集起来进行分析或统计。这种方法与面谈法相比,在时间限制上比较宽裕,给被调查者以更大的灵活性。过去的问卷是以纸面形式发放和填写的,现在就可以通过电子文件形式发放和回收。
使用问卷法的第一步是选择发放问卷的对象。一般是要选择与本项目有关的有代表性的人物。同样也应该包括有关的各个层次的人物。
问卷同样有封闭式与开放式两类。封闭式只能被动地回答所提的问题,甚至被动地选择候选的答案;而开放式则可由被调查者写出自己的看法,不限于所提的问题和答案。
问卷中的问题设计要注意下列几个方面。
(1)应该把问题按照逻辑顺序排列。
(2)重要的问题应该尽量放在前面。
(3)尽量不要使用带有倾向性或者暗示性的语句。
(4)使用匿名制。
使用问卷法的优点是可以用比较简便的方法得到较多的信息。它的缺点是不能保证百分之百地回收填好的问卷。另外比起面谈法来,获得的信息量要少一些。正如我国古代的典籍易传》所指出的:“书不尽言,言不尽意”,写出来的总没有能够说出来的多,而说出来的又没有所想的多。面对面还能够从言辞和表情上间接获得一些无法说出来的意见,而问卷则没有这样的可能性。
通过一些情景(例如一同进行调查或观看一些录像)的启发,获得被调查者的看法也是一种有效的方法。这一类方法的进一步发展就是下面的“用例”方法。
3.“用例”方法
这是通过用户的使用场景来获取需求的技术。用例提供一个或多个场景,场景说明系统与用户之间怎样相互作用,使用户获悉什么人能用系统做什么事情。通过用例的展示,用户的认识逐步具体化,从而提出对需求的意见。这在采用一些新技术或者新的工作流程的情况下是非常必要的。现在由于信息技术极为发达,这种场景完全可以通过虚拟现实或者增强现实技术借助计算机来实现。
4.文档分析法
这种方法比较简单,就是系统分析人员设法找到有关的文档,进行阅读,获取有关的信息和知识,必要时再找有关的人员进行谈话询问。文档有的是相关组织内部的文件资料,有的是组织以外的相关地域、行业以及其他技术的资料。在进行需求分析时,一般总是要阅读一些文档,但是常常会感到文档不足或者缺乏针对性。
5.观察法
这种方法就是实地观察与系统有关的场所、设施、组织与人员的活动,还包括对系统环境(如地形地貌、交通设施、供水和供电情况等)的实地观察。这种观察可以得到第一手材料,也可以作为对面谈和问卷所得到的信息的验证。在观察过程中,不要打扰原来工作的正常进行。特别是在观察某人的工作情况时,当被观察者觉察到他是在被观察时,他的行为有时候就和平常不一样而使观察者得到的是一种假象。
在第3章3.3节所介绍的软系统方法论中开始的几步,以及在第3.4节中介绍综合集成方法中的最初几步,也都是在进行调查。