需求挖掘是一个复杂,细致的研发工作,需要很好的沟通氛围,很强的谈话技巧,很迅速的逻辑整理理解能力,反向思维能力,很强的技术能力(迅速估计可行性)。
做需求挖掘,不要指望客户叫过来开个会,客户就会把需求原原本本,按部就班地告诉你,然后签字说一定不会改变。 其实所有的人,包括客户,对需求的理解都是片面的,朦胧的,这个挖掘的工作就是组织好所有的人,让他们对事情的认识,对业务的认识,对流程的认识,对操作的认识清晰化,最终形成文档。
前期需求分析做的越仔细,开发设计过程中所浪费的金钱就越少,需求分析过程中纠正了一个需求的Bug,挽回的损失是以万为单位计算的,而纠正这样的一个需求的Bug的花费,却可能只花几分钟,多说一两句话,多问一两个问题而已。
把需求挖掘分为三个阶段,准备阶段,业务理解阶段,摘要UseCase以及草图沟通阶段,详述Usecase以及用户体验设计阶段
(一)准备阶段:
确定好你要进行谈话的对象,这些对象可能有很多不同种类的人:
1. 客户方面的直接负责人: 这种人有拍板的能力,他能做的会是给你分配资源,确保你的工作能开展。但是通常,他可能不会直接使用到项目,具体细节不会太清楚。
2. 客户代表: 也就是参与者,需求代表着各方的利益,很可能不同角色的客户,在某个流程的需求处理上,会影响到自己的利益,或者是自己当前的工作习惯。这种权衡,调整就要请执行人来协调了。
3. 破坏者: 阻碍项目,唱反调的人。 他们的意见有时也很有参考价值,虚心接受,仔细分析他们产生想法的原因
确定好谈话对象之后,就该逐个建立良好的关系,营造好一种沟通的氛围。
千万不要小看这个过程,与一个陌生的人,和一个有点好感的人谈话,效果是差别很大的。谈话是需求挖掘的精髓,谈什么,怎么谈决定了成败。
1. 可以找机会主动接近下你的谈话对象,打个招呼,记住对方的名字,并大声说出来
2. 见面了问个容易回答的小问题,并给出你的赞美
3. 或者送个小礼物等等
主要的谈话对象应该是系统的各个参与者,他们都有各自的利益,目标,工作习惯,知识水平等,分析各个参与者的个体信息,明确对方的利益所在,你才能够挖掘到你想要的东西,从而达到双赢。
对于每个谈话对象所代表的群体,要预先整理出一个档案,明确写明对方的利益所在,其实不管对方的业务也好,流程也好等等都是以这个利益为中心的。 也许谈话过程中,对方会有很多你认为是荒诞的想法,但如果追溯到这个利益上面,你就能找到真正的原因。
目标,工作习惯,知识水平等这些简要描述,能帮助分析用户的内在原因。 用户有时候说的话,提出来一个步骤,说要怎么怎么做,其实并不是真的这么做就好,这个步骤也许是他拍脑袋想出来的,不完整,片面的,会损害到他人利益的。 这个时候作为需求挖掘人员,你的找打他这想法的内在驱动因素,然后和他讨论出一个更加完善,合适的方案。
总结起来,准备阶段需要做好三件事: 1.确定要谈话的对象 2. 和这些对象初步建立良好的关系 3. 整理出这些对象的档案
凡是预则立,不预则废, 有了准备之后,才有可能按部就班,进行良好的谈话。
(二)业务理解阶段:
每个真正的需求,都有其内在的驱动因素,但一旦被说出来,可能就会被各种各样的因素包裹住,从而让人对这个需求的理解产生偏差
谈需求前,先谈业务,有助于把握内因,真正了解用户目前在做什么,怎么做,之后,我们就能和用户一起想办法,进行改进,获得他们真正的需求。
理解业务其实很简单,系统性地问一系列的问题,就能挖出大部分的业务。已经有很多谈话高手,把这些问题整理出来了,我们所需要做的就是采用很好的方式去问这些问题,获得具体,清晰明了的答案,同时,在不同的情境中,这些问题可以不断地深化。 记住多问一个问题,就有可能多挽回数以万计资金的投入。
抽象层次,找出任务:
你整个组织的策略,目标是什么?
要实现你组织饿目标,你工作的具体目标是什么?
围绕这个目标,过去通常需要完成什么样的任务,用一句话概括你的每个任务?
对这些工作任务,将来有什么样的期待?
对任务分类整理:
哪些是通用任务,很多人都需要, 哪些是个人角色独有的任务?
每个任务的优先级如何?
任务之间有什么依赖的关系
对任务本身的研究:
这个任务由谁负责?
每个任务分哪几个步骤完成?
任务开始的前提条件是什么?
任务结束表示成功或者失败的标志是什么?
任务的输入输出是什么?
如何使用这些输入输出?
任务中一般有什么样的问题,以及异常的情况,突发的事故?
突发事故问题的原因是什么?影响有多大?一般如何应对的?
任务执行需要有什么样的技能?
任务是否对某些人或者事情有依赖性?
你在执行这个任务的时候,是处于一个什么样的角色?
你是亲自做这个任务还是指导别人去做?
一般完成这个任务你需要花多少时间,工作总量如何衡量?
你这个任务是为谁而做的?
这个任务有什么质量检测的指标吗?
你用什么软件工具,或其他工具来完成这个任务的?
你用的是一个软件还是一组软件?
任务过程中,有用到什么标准的格式或者模板吗?
任务中有没有谁来决定你用什么软件,或者工具?
你喜欢什么软件,或者不喜欢什么软件?
你期望什么软件能让你把这个工作做的更好,更迅速,更愉快?
这个任务中使用到的数据时如何获取的?
有没有能够重用到的数据?
如何跟踪到这个任务的效果?
以上的这些问题,摊开来可能有上百个,每个问题只是开个头,深入内容下去又会有更多的问题。这有助于挖掘人员,从客户代表那边挖掘出初步的业务,用户回答的每一个问题,都要仔细记录,确保充分理解。同时,如果遇到了不理解,或者比较模糊的细节业务,千万记得要寻根究底,一直问下去。这个时候就充分体现了营造一个很好谈话氛围,采用良好谈话技巧的重要性。
谈话高手能够让客户觉得自己被人关注了,受到尊重,从而讲起来滔滔不绝,不知疲倦,不厌其烦。 而粗鲁的挖掘者,则可能会让客户不停看手表,心理一直默念你有完没完。
(三)摘要UseCase以及草图沟通阶段:
了解到了用户的任务,那从任务中引申出UseCase,那就是自然而然的事情了,UseCase分三种类型:简述,摘要,和详述。 在这个阶段沟通任务还没完,我们需要设计好软件系统的UseCase,然后和用户确认。
这个时候摘要的UseCase是很合适的,通过一段简要文字的描述,讲清楚这个任务的主要成功场景,主要的失败场景。 这个UseCase不是给用户看的,只是为了我们写详述的UseCase的一个准备。
通过这个阶段的产出,摘要usecase, 我们可以开始绘制界面的草图。这个草图是指用铅笔,在白纸上,绘制好,并和客户一起讨论。用草图绘制出来的界面,看是否能够满足用户的需要。最好就是能鼓励用户自己画,挖掘人员从旁边进行指引。
这个阶段其实有个很有意思的活动,叫做纸质界面测试,我们在纸上画出所有的界面,然后找个用户用户在纸上进行点击操作,而我们责像电脑一样,和用户交互,负责界面的切换。通过这样的活动,我们能够知道,用户是否能够轻易在我们的界面上完成他的任务,是否满足业务的需求。
(四)详述Usecase以及用户体验设计阶段
用户草图最终经过测试和筛选,得到了一个界面的主体框架,usecase的初步框架也整理出来了,在这个基础上,有两个事情需要做:
1.开展用户体验设计
完善界面的各个元素,可以采用相关的客户端技术(Extjs,Flex), 制作出Prototype
用户体验设计又是另外一个很大范畴的东西,包括布局,导航,文本,响应性等一系列的技巧
2.UseCase的整理
采用标准的格式编写UseCase,写UseCase也是很大一个范畴,有一定的模板,语言规范。
另外,需要着重提出来的是,UseCase需要关注错误场景的编写,挖掘,错误场景经常是容易被遗漏,从而导致损失的。
很多赶鸭子上架,充当需求分析人员的开发人员,往往没有前面任何铺垫,就直接开始第四个阶段的设计,这个时候肚子里面是没有货的,全部都是拍脑袋造出来的方案,耗时耗力,并且毫无用处。
分享到:
相关推荐
### 数据挖掘技术在上海市电力公司电力营销上的需求分析及应用研究 #### 摘要解析与扩展 **一、背景介绍** 随着我国电力行业的快速发展,电力市场的竞争日益激烈。为了提高服务质量,提升管理水平,实现精细化...
这部分工作包括对学生考试成绩、平时成绩、出勤率、作业完成情况等各种学习行为数据的整理和收集,为后续的数据挖掘提供基础素材。 其次,对从成绩管理系统中提取的原始数据进行清洗、整合、转换和加载。这一阶段的...
- **需求分析:** 明确数据仓库的目标和需求。 - **设计模型:** 设计星型模式或雪花模式的数据模型。 - **数据加载:** 将源系统中的数据抽取、清洗并加载到数据仓库中。 - **维护更新:** 定期更新数据仓库中的数据以...
3. 模型构建:根据业务需求选择合适的数据挖掘方法,如分类、聚类、关联规则学习、序列模式挖掘、回归分析等。分类用于预测离散型目标变量,如决策树、随机森林等;聚类则是将数据分为不同的组或类别,如K-means、...
在本文中,我们将深入探讨“土地开发整理-土地整理施工方案1”所涵盖的关键知识点,以便理解这一过程的复杂性和重要性。 1. 土地开发整理概述: 土地开发整理是对土地进行有序、合理、高效利用的过程,旨在改善土地...
数据准备涉及数据的筛选、整理、变换和重组,这一步骤为后续分析打下基础。模型建立则依赖于提取出的数据结果,通过计算建立数据模型。模型解释阶段需要选出最实用的模型并进行合理性分析。最后,在模型巩固阶段,...
需求分析聚焦于单个功能点的输入、处理和输出,进而展开业务流程分析,最终达到全局视角,甚至挖掘隐式需求。测试需求分析则是在此基础上,反向操作,从全局角度出发,逐步细化至单个功能点的测试点,确保测试的全面...
#### 二、实现数据挖掘的关键步骤 1. **基础数据库建设**:这是数据挖掘的基础,企业需要积累大量的真实数据作为挖掘的对象。数据可以来源于**数据仓库**或**数据库**,但基于数据仓库的数据挖掘更受青睐,原因在于...
该系统需要完成数据管理、数据采集、数据预处理、数据挖掘、解释评估等步骤。同时,系统需要具备良好的用户界面和一定的性能要求。 概要设计 在概要设计中,我们需要设计超市商品销售数据挖掘系统的算法和流程。...
这涉及到数据挖掘、统计分析和用户研究等多个方面,通常包括用户画像构建、用户行为路径分析、用户满意度调查等步骤。 用户画像构建是用户分析中的关键部分,它通过对用户的基本信息、消费习惯、兴趣爱好、行为特征...
在IT行业中,需求分析师扮演着至关重要的角色,他们负责挖掘、理解和表述项目的需求,确保开发团队能够构建出符合用户期望的产品。本培训课程——“需求分析师培训-第2天”聚焦于需求分析的最佳实践,旨在提升学员在...
在大数据时代,数据已经成为企业决策、科学研究和社会发展的重要驱动力,而有效地整理数据则是挖掘其中价值的关键步骤。 数据整理通常包括数据清洗、数据转换、数据集成和数据规约等过程。数据清洗是指去除数据集中...
在软件开发过程中,需求分析是至关重要的第一步,它为后续的设计、编码和测试奠定了基础。...通过对需求分析文档的深度挖掘和系统化整理,我们可以构建出一套完整且高效的测试用例集合,确保软件的质量和稳定性。
- 确定研究对象,例如,目标服务对象的定位、服务需求挖掘和需求程度测量。 - 设计问卷或提纲,确保其涵盖所有必要的信息点。 - 安排时间节点,确保项目按时推进。 3. **执行&技巧**: - 实地执行调研,可能...
- 需求分析:将零散的需求整理成有结构的功能需求、非功能需求(如质量属性)和设计约束,确保需求的清晰和可实施性。 - 需求分析师的角色:需求分析师负责理解和提炼需求,协调各方,确保需求的准确传达和理解。 ...
- 华为采用了多层次的需求描述框架,包括原始需求、初始需求、系统特性和系统需求等,以确保从客户问题到最终产品实现的每一个步骤都清晰明确。 - 每个层次的需求都有其特定的定义和作用,比如原始需求反映了客户...
数据挖掘是一种从海量数据中抽取有价值信息和知识的技术,它涉及到多个步骤和概念。以下是针对提供的文件内容,详细解析的数据挖掘相关知识点: 1. 过拟合与泛化性: 过拟合是指在训练模型时,模型过于复杂,过度...