在接到软件开发任务之后,第一件要做的事情就是进行需求调研工作,基于前期的沟通以及合同向用户了解具体需求,从而有针对性地开展后续工作。整个调研过程分为调研准备,调研实施,需求分析。
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:我们开发一套业务管理的软件系统,您对我们的系统有哪些希望和建议?
在接到软件开发任务之后,第一件要做的事情就是进行需求调研工作,基于前期的沟通以及合同向用户了解具体需求,从而有针对性地开展后续工作。整个调研过程分为调研准备,调研实施,需求分析。
在软件项目的设计开发过程中,除了前期的用户需求调研确认,系统设计、数据库设计等工作之外,还有一些重要的工作需要考虑,比如软件开发模式,如何制定开发计划,如何协调开发人员开展开发工作等。
软件项目的部署和调试工作是项目开发生命周期中的重要阶段,它涉及将开发完成的软件应用程序部署到目标环境并进行测试和调试,以确保系统能够正常运行并满足用户需求。
项目结项后的运维阶段是确保软件持续稳定运行、修复问题、满足用户需求的关键时期。在这个阶段,需要建立有效的维护制度,关注各种问题,并采取相应措施来保障系统的可靠性和可持续性。
软件测试是指在软件开发过程中对软件系统进行验证和验证的过程。它的目的是确保软件能够按照设计要求正常运行,同时检测和纠正可能存在的缺陷和问题。软件测试有助于提高软件质量、可靠性和用户满意度。