互联网软件@产业

JasperZhu's Tech Web
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
(一)有效进行需求调研的方法

1、明确整体思路

软件项目一般会包含客户的很多种需求,涉及客户的多方面业务和多个部门,因此需求调研一定要有一个明确的思路,从大处着眼,然后逐渐细化,直到详细的需求细节。比如,首 先是客户的整体要求和目标,然后是各个部门的各种业务项目及主要的业务流程,再到业务过程的每一个单据,每一条记录,以及表现形式等等。需求纷繁芜杂,在 需求调用的过程中要经常查看项目规格说明书,明确项目最初提出的目标和范围,主要是为用户解决什么样的问题,这样才能从众多的需求中分清主次,提取用户核心的、主要的业务。

2进行充分准备

无论是面对面的需求会议,还是电话沟通,都应该注意在交流之前尽量取得更 多的信息以准备。每次需求会议前先根据当前掌握的信息和需求列出问题提纲,这样在调研的时候才能问到点上,既提高效率,又增加用户对我们专业素养的信任。 不仅我们要充分准备,也可以先让用户提供一份用户自己写的书面需求,事先做一个较明晰的阐述。另外,还要提醒用户必要的材料和数据准备,这些准备将有助于会议的进行,以免用户在会议开始后再找材料查资料,中断会议的进行,影响调研的效果。

3区分调研对象

对不同的调研对象,询问和讨论的主题和内容应注意区分:一般对于用户的高层领导,不要讨论细节问题,要讨论高层的业务需求,讨论目标、方向等问题,另外要把握好时间,不宜过长;对于用户的业务领导,要多询问一些业务流程方面的问题,他们在这方面最熟悉并有见解,一般来说,软件的大部分需求都是这个层次的人员提出的,和这个层次的人员要注意关系上的协调;对于具体操作人员,可以多询问一些对方的操作习惯、业务处理的细节等问题;对于系统管理员,则可以讨论一些技术上的问题,比如,通过其了解客户公司的软硬件及网络环境,用户的操作水平等。

4详细明确的记录

记录包括会议记录和需求记录。每次沟通都应有详细的书面记录。这是形成需求分析结果的基础和下次需求调研的前提。如果不这样做,结束调研的时候只有一个模糊的印象,需求分析的结果仍然遥不可及,应力争每次需求会议都使需求分析向前推进一个阶段。讨论结束前将记录的文档向客户确认一下,让客户进行评论和更正,以保证没有错误和歧义。记录使用的语言须是用户熟悉的词汇,要使用明确肯定性语句,不要使用模糊的说法。比如,不能描述为一天产生的POS业务流水很多,应该明确到10的3次方的数量级,不能仅记录为要求日结账要快,应该明确到在200秒内完成

5多思考多提问

软件需求是分层次的,用户对我们描述的往往只是用户需求层次的表面问题,只了解这些是不够的,还要理解用户为什么要提出这样的需求,做到知其然又知其所以然。作为需求分析员,必须要深入理解客户的业务逻辑和需求目的。在大多数的软件系统中,最终用户可能都不清楚他的需求是什么。如果只知道用户提出的要求,而不知道其为什么有这个要求,那么很可能会误入歧途,获取不了用户的真正需求。比如针对上述会员多倍积分需求,用户要求在POS断网的时候也能实时执行。事实上如果不采用无线通讯这根本不可能,采用无线成本太高。询问原因后,才知道实际上用户是担心数据丢失,我们只要保证数据不丢失,在网络连接正常后再执行就可以了。

(二)容易忽视的事项

1、确定权利与义务

只有当双方参与者都明白促成当前信息管理系统建设的成功,自己需要做什么,合作方需要做什么时,才能建立起一种好的合作关系。为了需求调研的有效进行,可以在开始之前向客户明确其需求权利和应尽义务。可通过需求权利书规定客户在项目需求调研过程中的合理要求,这些权利同时对应着分析人员和开发人员的义务而通过需求义务书规定客户在需求过程中应承担的义务,当然这些也可以认为是分析人员和开发人员的权利。

2、搜集用户资料

很多时候用户对自己需求的语言描述带有随意性和模糊性,又加上思维角度的不同,往往会造成我们理解上的偏差而企业中的文档资料则真实反应了用户的业务。它们包括,打印出来的各种单据、报表,企业的业务管理规则、制度,内外部考核办法等。这些资料将有助于直观具体高效的获取需求。比如,可以询问用户是否已经制定出多倍积分的书面草案,有没有相关的会员积分政策文档作为参考等。

3到工作现场考察

对于难于理解的用户业务或性能方面的需求,一定要进行操作现场的实地考察,观察正在工作的用户,亲身感受实际业务流程、了解操作情况。现场考察是理解用户需求的最好的方式。主观推断往往和实际的业务操作有很大的出入。比如,有些开发人员不重视快捷键的设置,如果观察超市POS终端操作员的工作,将会明白这非常重要。再如,离岸BPO用来提交业务数据的软件系统对网路传输的速度、操作响应的速度等有非常高的要求,否则操作员难以忍受,并且大大影响工作效率。如果只实现了功能,而不能达到性能要求则远远没有满足客户的需求。

4非功能性需求

非功能性需求包括,客户现有的服务器资源、网络资源及环境、硬件条件、操作系统、操作人员水平、由用户的工作特点决定的对性能的特殊要求等。如果不事先了解这些情况,或事先告知客户进行必要的资源环境准备,可能会导致最终软件无法部署,操作人员无法使用等情况。比如用户服务器用的是免费的Linux操作系统,而我们开发的软件只能在收费的Windows操作系统上运行,将直接宣告项目的阶段性失败。

5旧版本,相关软件系统和接口

如果项目是对原有的软件重新开发或升级,那么一定要仔细研究旧的软件系统的功能,并询问客户旧系统不能满足当前需求的原因,以期在新的系统中得以改善和提高,同时系统中优秀的功能特点要予以保留。如果用户当前已经使用了其他系统,一定要了解这些系统,看有没有重复开发,或功能不 足的补充。还应注意相关系统中的数据编码规范、操作规范,用户操作界面,以便于用户对新系统的适应、培训和维护。如果用户要求软件和现有的系统进行数据交 互或经过调研发现需要数据交互,那么一定要弄清数据接口的规范、接口双方的通信方式、数据存储方式、采用的数据库系统、数据结构等。比如,增加会员多倍积分模块,就要考虑数据接口,通信方式,界面一致性,尤其是POS端快捷键不能冲突等多个方面。