大话软件工程:需求分析与软件设计
上QQ阅读APP看书,第一时间看更新

6.1 基本概念

6.1.1 定义与作用

1.定义

需求调研就是通过与客户/用户不断地沟通,采用包括问卷、访谈、绘图、收集原始资料等形式收集需求,并以图形、文字和表格的方式进行记录。

需求调研就是收集系统需要做什么的过程。

2.作用

需求调研工作是决定软件开发能否成功的第一步,需求调研的质量对于应用软件的交付质量起着非常大的影响作用。

需求调研的结果就是后续设计和开发的依据,因此,如果调研有了偏差或是遗漏,其结果就有可能导致后续的设计和开发工作都出现问题。反之,如果需求工程给出了非常全面、严谨、逻辑清晰的结果,就会让设计师与开发工程师可以非常顺利地进行后续的工作。

在现实中,有很多软件企业在需求阶段与开发阶段的人员能力配置上是不平衡的,多数是需求阶段人员的能力相对较弱,开发人员的能力相对较强,这样完成的产品价值就会极大地受到需求质量的制约。

6.1.2 内容与能力

1.作业内容

需求调研的方法有很多,影响需求调研效果的内外因素也很多,例如:

● 需求分析师个人掌握的知识、积累的经验不同而形成了不同的风格。

● 需求分析师对调研对象业务的熟知程度、对该对象的知识和经验的积累多寡等。

由于以上原因很难给出一个套路来完全对应不同的调研场景,但是不论采用何种方式进行调研,调研的结果都会以图形、文字和表格的形式记录下来,而且最终要向后续工作交付的资料必须是可以传递和继承的,也就是说,要符合工程化的记录要求,因此本书将需求工程阶段的重点放在对需求记录方法的说明上,需求调研记录内容详见图6-2。

图6-2 需求调研的作业内容

不论需求分析师采用何种方式进行调研,其结果都必须要按照“图、文、表”三种标准形式进行记录,本书以结果为导向,把调研与记录的方法整合在一起,使用“图、文、表”三种记录形式对调研方法进行说明。

2.能力要求

需求调研所需要的能力有很多,这里列举几个基本能力作为参考(不限于此)。

1)沟通能力(嘴)

沟通能力,就是“会说话的能力”。因为与客户沟通首先就要通过“说话”进行,因此对于需求调研来说没有什么能力比“会说话”更重要了,客户的构成非常复杂,他们来自于客户的不同层级,有高层领导、中层管理者以及大量的业务执行者,每个客户都有不同的诉求、不同的业务背景、不同的脾气秉性。能够与不同层级的人沟通是调研的基本能力。

2)速记能力(手)

俗话说“好脑筋不如烂笔头”,做笔记也是需求调研的重要基本功,交谈时会出现大量的信息,特别是对重要的“关键词”的记录。做了笔记在后期的整理过程中就可以找出其中的重要信息,不会做笔记,事后客户说的很多重点就会被遗忘。

3)归集能力(脑)

将收集到的信息进行梳理、归纳,这是一名合格的需求分析师必备的基本功。归集需要掌握本书的关于需求归集的方法。

4)客户业务知识

当然要想做好需求调研就要理解客户的业务知识,因为需求分析师不是业务专家,他们需要调研不同行业的客户,因此对需求分析师来说,掌握短时间内快速地理解客户业务知识的方法非常重要。

6.1.3 思路与理解

1.用图形作为调研助手

对需求分析师来说,第一位的能力,不是知识、经验以及记录方法,而是与客户“沟通”的能力,例如遇到诸如调研之初如何打开“话匣子”?讨论僵持不下时如何解套?讨论中客户总出现跑题的现象如何应对?如何快速地打开局面或是控制局面?等等。一个非常行之有效的方法就是用“图形”来做引导,用图形做引导可以有如下的效果。

● 图形会引导大家的讨论方向一致、收敛,不易跑题。

● 图形会引起参与者的视觉共鸣,从而加速、加深理解的程度。

● 即使图形有错误,也可以调动起参与者的关心,成为吸引客户积极参与交流的“引子”。

● 图形的逻辑清晰,可以避免讨论结果似是而非的现象,为后续需求变动提供了证据。

另外,没有图作为调研助手,往往调研的结果只有“点需求、点功能”,而缺乏对客户业务的整体认知,特别是缺乏对“逻辑”的收集方法,造成后期的分析缺少逻辑支持,无法进行推演。

讨论前准备好各类参考图,讨论中经常在白板上用图进行分析,这种做法会大大地提升调研的效率和调研的质量。

2.调研的合适粒度

关于需求调研的粒度要做到什么程度才算够呢?

这个问题很难从正面回答,但是可以从结果上回答,那就是如果调研结束后,不需要再向客户进行咨询就可以进行设计工作了,那么这个调研就做到位了。否则,进入设计阶段了,还要再向客户进行咨询,例如,某个表单的公式不清楚、某个功能为什么需要、某个管控要做到什么力度等。第一次在现场沟通得越详细,调研的成本就越低,离开现场后需要再进行二次、三次的沟通,则调研成本就会增大(时间、费用、效率)。