需求分析师如何分析需求
目前国内并没有专门针对需求分析的系统理论以及相应的资格考试,在需求分析上,很多人都是“摸着石头过河”,我这两年同样也是摸着石头过河,如果一直摸着石头过河,没有将过河的经验记录下来,那可能永远都过不了河。
我始终认为,只有不断的总结,才能进步。
进入正文,需求分析师怎么去分析需求?
过去的两年我做的最多的就是需求分析,从客户那边获取需求后,分析需求的可行性、通用性以及实现方案,然后写需求说明书,画原型,跟开发讲解需求。
虽然客户的业务不同,提出的需求也可能不同,但在一些大的需求上,有一些通用的需求分析方法可以借鉴。
首先,先明白有哪些需求?
需求可以分为5种类型的需求,如原始需求、用户需求、新需求、产品需求和个性需求。
(1)原始需求
顾名思义就是最原始的需求,未经过加工过的需求。原始需求可以是客户直接提出的,也可以是一些监管机构提出(金融企业经常受监管要求要实现啥啥功能),在做需求分析的时候,一般会将原始需求单独写一章节,目的是给除了直接获取原始需求以外的人查看,避免需求传达之后的误解。
(2)用户需求
使用系统的人提出的需求,使用系统的角色一般不止一个,每个人基于自己的岗位会提出一些需求,有时,不同岗位的用户提出的需求可能会产生矛盾,这就要求需求分析师能以“上帝的视角”去看待不同的用户需求。
(3)新需求
系统本身没有以及不能通过改造系统本身的功能需要重新设计和开发的需求,对待新需求,需求分析师以前从未接触,不能害怕,相信自己可以通过查找资料以及各种途径快速学习。
(4)产品需求
对产品未来发展有益的需求,任何产品都需不断的迭代更新,功能不断优化,使用户体验越来越好,比市场同类产品具有更强的竞争力。需求分析师得从这些角度,自己提需求,使产品更优质。
(5)个性需求
用户提出的需求可能其他用户也适用,有些需求其他用户并不能适用,这就是个性需求,个性需求在版本的升级上,会比较麻烦点。
从具体的需求来划分,需求可以分为功能需求、计算需求、报表需求等。
对于功能需求的分析主要从两方面入手:业务场景和系统界面。
用户在提需求的时候,多问几个为什么,为什么要提这个需求?目前是遇到什么困难?现在是怎么做的?如果涉及到业务数量的,还可以问下量大不大?比如某公司就只有一个客户做某业务,为了这一个客户去开发一个大功能,浪费人力、物力甚至造成项目延期。但也不是说,就不做,如果后续做这项业务的客户会越来越多,开发功能是需要的。
将用户的需求理解清楚后,只是脑海中或者文字的说明,需要更形象,通常是除了文字说明还需要画原型图,很难理解的需求,画出系统界面后,开发人员能一下子看明白。原型工具用的比较多的Axure。
有些客户会提出一些计算需求,需要计算某一个数值。对于这种计算类的需求,需求分析人员在和客户沟通的时候,可以从以下几个方面与客户沟通:
算法是什么?
能不能提供公式?
用例?
这个数值有什么合理性和业务意义?
计算出来有什么应用?
这个数值的意义是什么?
弄明白这些后,计算类的需求分析大致有了基本了解,在与开发讲需求的时候,能讲的生动具体明确清晰。
用户还会提出做报表,对于报表的需求并不仅仅是用户提供了报表模板就完事了,需求分析人员还得知道很多东西,比如以下:
提供的报表是否齐全?
每张报表的数据范围及数据来源?
报表里字段的取值从哪取?
报表应用在哪?
报表的数据量有多少?
报表是否有排序?按什么来排?
报表有什么限制性条件?(极端的情况)
需求分析人员在和客户确认报表的需求时,最好将各报表都编码,以便双方都清楚需要做多少张报表,明确报表的数量。
从客户给出的报表,可以看出客户从哪些角度去看待目前所做的业务,他比较关注什么,能力强的需求分析人员能从客户提供的资料看出客户的意图是什么。
以上是需求分析师做需求分析时需求分析的一些基本方法。除了需求分析,需求管理也相当重要,需求管理不好,会造成整个项目进度延期、甚至不能验收结项。