在接到软件开发任务之后,第一件要做的事情就是进行需求调研工作,基于前期的沟通以及合同向用户了解具体需求,从而有针对性地开展后续工作。整个调研过程分为调研准备,调研实施,需求分析。
1 调研准备
俗话说,不打无准备之仗,在正式调研之前,软件开发方需要做一些调研前的准备工作,做软件项目也和做其他项目一样,都是渐进明细,刚开始的时候,对项目认识没有那么深刻,所以调研前准备的问题一般也是基于常识知识,后期随着对项目了解的深入,问题才会更加深刻且具体。
1.1 明确调研对象
一个是了解用户的组织架构,思考哪些部门哪些人员会使用软件或对软件开发工作起到作用,依据这些部门或人员对软件项目的影响程度,来制定调研的具体措施。将重点放在对软件有关键影响的部门或人员身上,如软件主要用户或者业务部门领导等,一般情况下,领导会对软件开发提出方向性、笼统的要求,以及完成的标准,用户会对软件提一些具体的使用要求。
1.2 准备调研内容
针对不同的调研对象,应该有不同的调研内容,当然也有一些共性的问题,下面是一些基础的共性问题,(1)组织架构及部门职责;(2)人员分配(用户权限)及每个人的岗位职责;(3)所使用单据;(4)有无处理业务的软件;(5)软件处理的业务问题有哪些;(6)提高业务处理效率的改进措施;(7)通过本软件解决哪些问题等等,这都是一些通用的问题,针对具体的对象,还需要提出一些有针对性地具体问题,特别是工作的细节,以及处理工作的方法,都对准确把握用户需求,有很多大帮助。
1.3 采取合理的调研方式
进行调研,可以根据自身和用户的具体情况,采用不同的需求调研方式,以下是一些常用的调研方式。
- 调查问卷:使用设计好的用户调查表,以书面的形式收集用户需求。具体调研问卷的常用问题参见附件。
- 用户访谈:与用户面对面的访谈,可以一对一或一对多,要求准备一个问题列表,用来获取有关用户问题和潜在解决方案的整体特征的信息。
- 开会讨论:头脑风暴会议,对跨部门、跨岗位的业务,可以把相关人员召集在一起,提出对现在问题的理解和思考,让大家提出问题、愿望和潜在解决方案的建议。
- 需求研讨:将所有相关用户集中在一起,进行一次深入的、有重点的会议,从项目用户那里收集全面的“愿望列表”,并区分有限顺序。
- 用例讨论:一个有组织的集体讨论会议,用来确定系统的主角、边界、用例和事件流等用例相关内容。
- 制作示意板:使用工具向用户说明系统如何适应组织的需求,系统如何运转。
- 原型开发:开发软件系统的早期缩型,显示新系统的部分功能,以确定用户需要。
1.4完成调研计划
初步梳理出需要调研的部门人员,以及调研内容和调研方式后,就要和用户联系,了解不同用户的时间安排,或让负责人协调,确定大致的调研时间,根据情况制定调研计划。
调研计划中应该包含调研背景,调研目标,调研部门人员以及时间安排,调研的内容,系统环境,业务工作情况等。后续的调研工作可以基本上依据调研计划开展。可以在资源栏目获得项目需求调研计划模板的文档。
2 调研工作
2.1 调研过程中的沟通记录
在实际开展调研工作的过程中,根据项目渐进明细的规律,前期以调研问卷、用户访谈、需求讨论的方式开展工作,后期可以根据前期的调研结果,画出流程图或者做出原型,再和用户进行更深入的讨论。
在调研过程中,对于同一个问题,可以向不同岗位的人进行调研问询,因为不同的人,所处的岗位不同,本身掌握的知识不同,对一个问题,可能有不一样的想法。比如,针对数据的检索问题,有用户提出来对某类数据有检索需求,而询问另外的用户,则说这类数据,已经在数据编号中体现出来的了。提出需求的用户实际上是对他们的业务数据不是太熟悉,所以提出的需求,在系统中也可以不体现,而是通过帮助或者说明书的方式,阐述清楚业务数据的编码规则即可。
在每次调研结束,还要做好记录工作,记录时间、地点、参加人员以及大家的发言内容,然后根据大家的发言,整理需求。也可以对不太明确的问题,通过打电话、微信、email等方式进行持续沟通。这样持续的调研,有利于不断地深入了解用户需求,对后续开发会有很大帮助。
2.2 调研过程中资料的收集整理
在与用户沟通的过程中,注意收集相关的资料。首先是组织架构的资料,对应的部门,职位,人员的数据,还有每个人或每类人的岗位职责,这些数据是创建用户表以及角色、权限划分的基础关键资料。其次是工作过程中的表单,可能在软件系统中也是以表单的形式呈现,而且表单信息里面如果涉及到审批签字,在软件里面就是审批流程,也需要实现表单数据在不同人员之间的流转。第三是报表资料,一般的报表都是统计信息,在软件系统中是以统计功能出现,可以做成统计工具,导入导出报表等。第四是相关的软件情况,特别是以前开发的同类型软件或者上下游软件,里面会有一些数据,有的可以处理后导入到新的软件系统中,直接使用。第五就是相关的历史数据,比如用户以excel、word等形式甚至是手写稿保存的数据,处理后导入系统,可以作为软件的基础数据。
3 需求分析
需求调研的最终目的是明确用户需要,为用户开发适合他们的软件系统。一轮调研完成后,就需要对调研的内容进行分析,这个分析的过程非常重要,是连接用户与设计的桥梁,需要非常清楚用户的深层次需求,将用户的问题转换为软件解决办法。比如开发的业务管理系统,调研中会了解到现在的工作运行情况如何,流程中每个环节怎么衔接的,通过各部门配合完成整个工作流程。如果使用软件系统,是否需要替换现有工作方式。这可能涉及到工作流程改造,一般情况下,尽量不要更改原有的工作流程,软件只是提供便利,不做流程的修改,这样符合用户的使用习惯,有利于软件的推广。
附件:需求调研问卷
问题1:您属于哪个部门,你们部门有几个人,部门主要负责哪些工作,您个人主要负责哪些工作?
问题2:您在工作中需要处理哪些业务文件,有哪些业务相关的单据?
问题3:目前是否使用软件系统处理日常业务?使用何种软件?您使用软件主要用来做什么?
问题4:在工作过程中,有哪些业务处理起来不够顺畅或者效率不高,应该进行什么样的改进?
问题5:我们开发一套业务管理的软件系统,您对我们的系统有哪些希望和建议?