如何做需求分析

来自:    更新日期:早些时候
如何做需求分析~

一、 我们应当如何做需求分析
需求分析不是一蹴而就的,它应当贯穿整个开发周期,不断的分析确认的过程。这就是敏捷开发倡导的需求反馈。敏捷开发认为,需求分析阶段不可能解决所有的需求问题,因此在设计、开发、测试,直到最终交付客户,这整个过程都应当不停地用开发的成果与客户交流,及时获得反馈。只有这样才能及时纠正需求理解的偏差,保证项目的成功。
二、我们应当怎样做需求调研
1.初识。
我们对客户提出的需求进行深入理解以后,运用我们专业知识,提出比客户的原始需求更加合理、可操作的解决方案,让客户感觉你说的正是他们想要的。如果能够这样,客户不仅能够欣然接收你提出的方案,而且会感觉你非常专业,你在客户心目中的形象也会无形中提高,使你有更多的机会提出有利于开发的可行方案,降低开发的风险。这毫无疑问会形成一个良性循环,但要做到这一点并不容易,毫无疑问,在与客户接触初期的表现起到了极其关键的作用。
(1)高层领导关心的是宏观的目标,因此软件研发目标、宏观统计报表、决策支持功能,我们应该怎样做需求分析,应当与高层领导谈。
(2)中层领导关心的是具体的效益,即软件给各个部门信息化管理方面带来的效益,因此,中层领导是各项业务流程、功能模块的需求决策者。他们关心功能的定义、业务流转的衔接、查询报表的设计,但不太关心一些具体的操作,以及一些具体业务流程的细节。
(3)基层人员是每一项业务流程的操作者,也是软件今后真正的使用者。他们是真正了解你所要开发的软件的业务需求的领域专家,是你进行需求调研的重点对象。但是,基层人员往往受到自身视野的局限,可能只清楚自己工作涉及的十分狭小的一个范围,因此我们需要努力寻找那些业务涉及面广,经验丰富,又有一定大局观的真正的专家。另外 ,他们就是软件今后真正的使用者,让他们参加,会让他们成为今后软件推行的忠实支持者,对其他操作人员的指导者,益处多多。而他们关心的则是每项操作的细节。
俗话说:万事开头难。如果你在项目开始的时候总感觉千头万绪不知如何着手,在这里我给大家的三点建议:
1)树立良好的职业威信;
2)进行详细角色分析,将与会各方代表对号入座;
3)从宏观上制订目标与方案。随后的工作,就是与各方代码建立联系,逐一拜访他们,将需求调研工作一步一步进行下去。
2.拜访。
需求调研不是一蹴而就的事情,是一件持续数月甚至数年的工作(假如项目还有后期维护) 。在这漫长的时间里,我们需要依靠客户这个群体的帮助,一步一步掌握真实可靠的业务需求 。不仅如此,技术这东西总有不如意甚至实现不了的地方,我们需要客户的理解与包容,这都需要有良好的客户关系。尽管如此,我们也不能总是期望客户中的所有人都能与我们合作,很多项目都不可避免地存在阻碍项目开展的人。
3.研讨会。
(1)由于业务人员自身的局限 ,不可能对所有业务领域的细节全面掌握,往往总是有自己熟悉的部分,也有自己不熟悉的部
分。划分业务组,可以让业务人员分别在自己最熟悉的业务范围内参与讨论,可以有效提高业务讨论的质量;
(2)集中式的业务研讨形式和分散式的业务研讨形式;
(3)有效抑制个性化差异、分模块组织专项研讨会。
4.业务研讨
在需求分析过程中,客户存在的最大问题就是提不出正确的需求,这表现为几种形式:
(1)由于对软件不了解,客户提不出需求,不知道软件最终会做成什么样子。这类客户在需求讨论过程中,往往只能描述目前自己手工管理的方式是怎样的,不知道计算机会怎样管理。
(2)能提出一些业务需求,但当软件做出来摆在自己面前时,需求就变了。这类客户,他们能熟练使用电脑,对信息化管理是清楚的。他们提出的业务需求从整体上应当是八九不离十的 。但是,由于没有实物,在软件中的一些具体操作并没有完全想清楚。
(3)能非常详细地提出业务需求,甚至有时候该怎么做的提出来了。这类客户,参与过很多软件信息化建设,甚至有些还是软件开发的半专业人士。但是他们提出的业务需求过于具体 ,甚至怎样实现都说出来了,但这些有时候不是最佳设计方案、可能在技术上难于实现,甚至有些就是过于理想化而不可实现。
解决办法:
业务领域分析:客户现有的业务流程是什么样的,都有些什么操作?客户在业务中都有些什么事物,什么专用名词,都是怎样定义的,相互之间的关系是什么?客户在每一项操作中的目的是什么,为什么要这样做,他们制作的手工报表都说明了什么问
题?
(1)我们做需求分析,眼界不能仅仅停留在软件本身,应当更开阔一些,应当扩展到跟这个业务有关的那些领域知识中。
(2)在客户提出的所有原始需求中那些与业务实现有关的需求都是无效的需求,它们仅仅只能作为我们的一个参考。
(3)还有一些是技术难于实现或者根本就无法实现的需求,我们应当耐心地说服和引导客户,并给他提出一个更加合理的方案。
(4)需求分析不是一种简单的你说我记的收集活动,而是在大量业务分析与技术可行性分析基础上的分析活动。只有建立在这种分析基础上的软件研发,才能保证需求的正确与变更的可控。
5.迭代
在第一次的需求分析阶段,我们在一段时期内需要与客户进行反复地讨论,这个过程往往是这样一个反复循环的过程:需求捕获->需求整理->需求验证->再需求捕获······
(1)需求捕获:就是我们与客户在一起开研讨会,讨论需求的活动,客户可能会描述他们的业务流程,这时我们在纸上绘制简单的流程草图,及时地记录下来;客户在描述业务的同时,可能会反复提到一些业务名词,详细询问这些名词的含义,以及它们与其它名词的关系,用类图或者对象图绘制简单的草图;客户在描述业务的同时,还会提出今后的软件希望实现的功能,如能够展示某个报表、能够导出文件,以需求列表的形式记录下来。一个功能,在需求列表中会有多个需求,而每个需求应当能够用 1、2 句话,在 20 个字以内就可以描述清楚 。需求列表是客户提出的最最原始的需求,他不掺杂任何分析设计,是我们的每项功能必须实现的内容。
(2)需求整理:就是在需求研讨会后,需求分析人员对研讨内容的分析和整理的过程。首先,需求分析人员应当通过用例模型,划分整个系统的功能模块,以及各个模块的业务流程。用例模型分析是一个由粗到细的过程,这样一个过程也是符合人类认识世界的思维习惯的一个过程。最先,我们应当对整个系统绘制用例图,设计用例场景,并依次对这些用例进行用例描述、流程分析、角色分析等分析过程。当然,在整体用例分析的同时,我们还应当进行一个整体的角色分析,绘制一个角色分析图,进行一个流程分析,绘制一个流程分析图(可以是传统的流程图、UML 中的行动图,甚至一个简单的示意图,等等),再在整体用例图的基础上,依次对每个用例绘制用例图。每个用例图中,会更细致地划分出多个用例,并依次进行用例描述、流程分析、角色分析等分析工作。如此这般地不断细化,直到我们认为需求已经描述清楚为止。
(3)领域模型 :是对用户业务领域中相关事物、相互关系、相互行为操作的描述,它是以对象图和类图的形式表达的。需求人员对领域模型的分析,对业务理解的深度,对日后软件的设计,以及软件的功能扩展、升级演化,都起到了至关重要的作用。
(4)需求验证:需求验证工作应当贯穿整个研发周期,并且在不同时期表现出不同的形式。首先,在需求分析阶段,需求验证工作表现为对需求理解是否正确的信息反馈。需求分析人员与客户再次坐在一起,一项一项描述我们对需求的整理和理解,客户则时不时地对一些问题进行纠正,或者更加深入地加以描述。我们则认真地记录,回来整理,并等待下一次的验证。在需求分析后期,我们还可以制作一些简单的原型,更加形象地描述我们对需求的理解,会使我们与客户的沟通更加顺畅。随后的设计开发阶段,我
们则应当以迭代开发的形式进行。每开发完一个迭代周期,将开发的成果与客户反馈。这样做的结果是,客户可以及时地提出我们对需求理解的偏差,或者及时提出对我们设计不满意的地方,使我们存在的问题得到及时地发现与解决。问题及时的解决,使我们修复问题的代价得以降至最小。
6.需求捕获
经过深入分析我们会发现,从客户嘴中说出来的需求,只是整个软件需求中的冰山一角,还有两类需求需要我们自己去挖掘:客户嘴中没有说出来的需求 ,和客户压根儿就没有想到的需求
(1)什么是客户嘴中没有说出来的需求:并不是客户故意卖弄官子不愿说出来,而是在客户所在业务领域已经约定俗称,在他们看来已经是天经地义,根本就不用说出来的业务规则。然而 ,作为刚刚涉足该领域的需求人员,他们是不了解这些规则的。如果采用被动的方式去仅仅记录客户说出来的需求,毫无疑问会遗失这部分需求,这就是为什么直到项目后期,软件被研发出来即将交付使用,客户才提出说这不是我想要的软件,并提出大量变更需求的原因。要求我们在需求分析的整个过程,不断进行业务领域知识的学习。在我做需求访谈的初期,我往往不是跟客户谈需求,而是先跟客户谈业务。你们是怎样操作的?都经过些什么流程?谁来完成这些操作的?为什么这样操作?注意,在所有这些问题中,最后一个问题是最重要的。客户业务领域中的所有操作、所有流程都是有它存在的意义的,它体现了其内部的原因与作用。多问为什么,可以让我们深入地理解这些领域知识 。站在客户的视角去思考问题,进而深入地理解客户为什么要提出他们的那些业务需求
(2)另一种就是客户压根儿没有想到的需求:在需求分析阶段,虽然客户压根儿没有想到,但需求分析人员是软件研发领域的专业人员,他们应当在深入理解业务领域与需求的基础上,通过分析提前发现这些需求。作为需求分析人员,他们应当站在客户的角度去思考,我们的软件应当设计成什么样子,每个需求的真实意图是什么。站在这个基础上,再运用专业知识去整理、分析与设计。我前面谈到,客户描述的最原始的需求是编写在需求列表中的,而经过需求分析人员的整理、分析与设计,经过用例分析、领域建模,最终形成产品需求说明书(或称为产品规格说明书)。先在一些非正式的场合单独跟客户聊,产生第一手资料,最后将这些需求在比较正式的场合,如各部门参加的业务讨论会、有用户代表参加的

1、无针对性的用户访谈
一般来说,toB的产品,特定的用户是主要需求的提出者,而产品设计是为特定用户服务,在这种情况下,我们有机会与特定用户进行深度的沟通。但是,即使是明确了需求的提出者,在收集需求的过程中,还是有可能遇到很多“坑”。
2、头脑风暴
头脑风暴是比较常见的需求收集方式,对于头脑风暴的流程也有大牛讲解的非常详细,我就不重复了。

注意的有以下几点:
第一,确保会议围绕你提出的话题展开,而不是漫无边际的聊天。
第二,不要对任何一个人员提出的话题进行评价或者议论。
最后,控制时间、控制时间、控制时间。

(1)用户分析
通过用户生活形态分群的方法,按照用户的价值观和生活形态特征,对用户进行分群,形成具有典型性的细分群组,并且总结提炼出该群组用户的一般特征,清晰定位目标市场与目标用户群体,指导产品开发和创新。主要解决目标用户是谁,市场预期容量有多大的问题。
(2)需求挖掘
根据上一阶段选定的目标用户群,进行抽样研究,通过记录某一特定类型用户的生活场景或业务使用体验(见图3-3),洞察用户的典型行为或生活习惯,了解他们在特定场景下的需求,结合企业自身的能力,拓展业务创新的空间。
图3-3 用户需求场景研究示意图——“白领的一天”
(3)需求验证
在定性挖掘用户需求碎片的基础上,要通过定量的调查从两个方面对需求进行验证:首先,要验证需求的普遍性,目标用户群中是否大部分用户都有类似的需求;其次,要验证需求的迫切性,目标用户群中大部分用户对需求的排列顺序。经过验证排序后的需求,就可以作为用户需求的最后输入。当然,要最终成为产品需求并且转化成产品功能,还需要从其他几个方面进行分析和筛选,在此就不详细介绍。



需求分析就是对客户提出的“要求”或者“需求”进行深入细致地调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么,为系统设计、系统完善和系统维护提供依据。

需求分析是项目计划阶段非常重要的环节,该环节决定了需要“实现什么”,为下一步如何去“实现”提供了明确的方向

进行需求分析需要做到以下几点:

(一)需求获取:在准备阶段,我们首先要确定需求获取的目标及范围,根据你的目标来选择对应的方式获取需求。

(二)需求分类:一般情况下,我们会根据对象的不同,将需求分为业务需求、用户需求、功能需求等。

(三)需求筛选:有些需求是伪需求,有些需求则不具备实现价值,我们可以通过真实性、价值性、可行性三个维度来筛选需求,过滤掉虚假的、不可行的、没有价值、价值不大或投入产出比不理想的需求。

(四)需求提炼:对剩下的需求进行提炼,目的在于从获取的表面需求中提炼出客户的本质需求。找出“为什么要做”比“做什么”更重要。

(五)需求优先级排序:挖掘到客户的真实目的后,我们需要根据不同维度的需求归类方法,如KANO模型分析法、投入产出比ROI等,对其进行归纳整理并排出优先级,帮助产品有条理地安排开发秩序,避免盲目排序。

(六)产出需求文档:通过以上的分析,我们需要将收集到的需求进行分析、汇总、归类,输出产出需求文档,为接下来的工作做好铺垫。

以上是对需求分析的一些理解和思路,做好需求分析工作之后,就可以对可实现的需求进行落地方案的跟进。




如何做需求分析视频

相关评论:
  • 15972332484旅游APP软件如何做好市场需求分析
    孙菊伯答:需求分析。通过在旅游APP上对景区的初步了解,对自己的出行计划做一个初步的安排,这些都可以保存在APP上,可以随时查看,还需要了解用户对景区的评价信息等。旅游时,通过旅游APP能够得到周围人的帮助,而且还要有贴心交通攻略等。1、出游前:容易地查找到符合自己出行需求的景区介绍信息来筛选自己的目的地...

  • 15972332484需求分析方法有哪些?
    孙菊伯答:问题七:如何做需求分析 随着技术的不断发展和用户对网站功能性的需求不断提高,如今网站项目的设计已经不能再仅仅简单地利用静态Html文件来实现,与前几年网站设计由一两名网页设计师自由的创作相比,网站项目的设计和开发越来越像一个软件工程,也越来越复杂,网站项目的设计和开发进入了需要强调流程和分工的时代,建立规范...

  • 15972332484需求分析的四个阶段
    孙菊伯答:需求分析的四个阶段::问题识别、分析与综合、制订规格说明、评审。1、问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些需求包括:功能需求(做什么)、性能需求(要达到什么指标)、环境需求(如机型、操作系统等)、可靠性需求(不...

  • 15972332484在软件开发中,需求分析阶段有哪些
    孙菊伯答:4)优先级分析 优先级分析是以拆解后的子需求为单位进行的,根据各类优先级的判断方法、原则,初步评估各个子需求的上线顺序及时间。2. 常见问题 需求分析应该是大家从入行那天就知道要做的事,但大多数同学在做需求分析时会犯以下三个比较常见的错误。1)缺乏系统性 这是在分析中最常见的问题,即很多...

  • 15972332484怎样做软件的需求分析
    孙菊伯答:做软件需求分析的方法:1、确定产品所期望的用户类别。2、获取每个用户类的需求。3、了解实际用户任务和目标以及这些任务所支持的业务需求。4、分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息。5、将系统级的需求分为几个子系统,并将需求中的一部份分配给...

  • 15972332484产品经理需求分析的方法汇总
    孙菊伯答:4.需求转化:Y模型 采集用户的需求并解决它,是我们产品人的目标,我们要采取的策略是用心听但不要照着做。这就涉及到需求有效分析。需求分析有一种比较有效的方法叫Y模型分析法,如下图所示:“1”是用户需求场景,when/where/who/what,是需求的第一种深度——观点和行为;“2”是需求背后的目标...

  • 15972332484保险销售员怎样对客户进行需求分析
    孙菊伯答:和客户进行沟通,了解客户的需求点,是销售人员必须要做好的一点。在面对客户的时候,作为销售人员,首先需要做到的一点就是先对客户进行了解,只有了解了客户之后,我们才能根据客户的特点进行系统的分析,根据营销计划书范文制定出符合客户的一些实用的销售手段,通过这些销售手段和客户进行良好的沟通,确认...

  • 15972332484如何做好培训需求分析
    孙菊伯答:关于如何做好培训需求分析如下:1.明确培训目标:首先要与相关部门或业务负责人明确培训的目标是什么,包括培养哪些技能、提升哪些知识、解决什么问题等。目标明确后,才能有针对性地进行需求分析。2.收集信息:收集相关数据和信息,包括员工的现状、工作需求、技能水平、培训历史等。可以通过员工调研、问卷调查...

  • 15972332484如何做好网站设计需求分析
    孙菊伯答:其实在实际的生活工作当中,并不是每一个项目都是有机会去跟客户来进行直接面对面的交流的。所以,如何才能够让信息获得更加准确,更加全面,成为设计出一个完美的符合客户需求的网站的关键所在,一旦需求了解得更加透彻,那么整个项目的开展,也可以变得更加的顺利,所以如何才能够获得客户心目当中为真实的...

  • 15972332484如何做用户需求分析?
    孙菊伯答:5、收集和分析反馈:根据用户测试的结果,收集和整理用户的反馈意见。这些反馈可以涵盖用户体验、功能改进、界面设计等方面的建议。通过分析反馈,可以确定哪些方面需要改进,哪些方面已经满足了用户的需求。6、快速迭代和更新:基于用户反馈,对原型进行快速迭代和更新。修复问题、改进功能、优化用户界面等,确保...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网