浏览 1510 次
锁定老帖子 主题:需求挖掘--操作步骤整理
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-26
做需求挖掘,不要指望客户叫过来开个会,客户就会把需求原原本本,按部就班地告诉你,然后签字说一定不会改变。 其实所有的人,包括客户,对需求的理解都是片面的,朦胧的,这个挖掘的工作就是组织好所有的人,让他们对事情的认识,对业务的认识,对流程的认识,对操作的认识清晰化,最终形成文档。 前期需求分析做的越仔细,开发设计过程中所浪费的金钱就越少,需求分析过程中纠正了一个需求的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需要关注错误场景的编写,挖掘,错误场景经常是容易被遗漏,从而导致损失的。 很多赶鸭子上架,充当需求分析人员的开发人员,往往没有前面任何铺垫,就直接开始第四个阶段的设计,这个时候肚子里面是没有货的,全部都是拍脑袋造出来的方案,耗时耗力,并且毫无用处。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |