基于问题的性质、变量的类型以及其他因素选择一定的研究方法,来收集与问题有关的主客观数据,进而为了解某些未来知的东西或者验证某种想法提供依据。
用户研究有很多方法,基于对已有知识的总结可知,影响研究方法选择的因素主要以下因素:研究的对象、产品的设计阶段、产品所处周期、成本、时间等。通常自情况下:
(1)根据收集的数据类型,可以将研究方法划分为定性和定量两种,见图1。
定性研究方法,通常适用于对小数量规模的样本进行分析,主要用于发现新事物的过程,揭露为什么会发生这样的事情,样本数量通常为10~20个,不追求精确的结论,而只是了解问题之所在,摸清情况,得出感性认识,比如用户访谈、卡片分类法、焦点小组、头脑风暴、可用性测试等,见图2。
定量研究方法,则是对大规模的样本进行分析,适用于揭露正在发生的事情,一般是为了对特定研究对象的总体得出统计结果而进行的,比如在线大规模调查问卷、网站日志分析以及A/B测试、自动化可用性测试等。
Ⅱ 用户如何使用结构化分析方法
结构化分析方法
结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。
结构化分析的步骤如下:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,生成数据字典和基元描述;④建立人机接口,提出可供选择的目标系统物理模型的DFD;⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;⑥选择一种方案;⑦建立完整的需求规约。
结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:①评审和细化数据流图;②确定数据流图的类型;③把数据流图映射到软件模块结构,设计出模块结构的上层;④基于数据流图逐步分解高层模块,设计中下层模块;⑤对模块结构进行优化,得到更为合理的软件结构;⑥描述模块接口。
结构化设计方法的设计原则
使每个模块执行一个功能(坚持功能性内聚)
每个模块用过程语句(或函数方式等)调用其他模块与
模块间传送的参数作数据用与
模块间共用的信息(如参数等)尽量少机构化方法A.概念:结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法,也称为新生命周期法,是生命周期法的继承与发展,是生命周期法与结构化程序设计思想的结合。其基本思想是用系统工程的思想和工程化得方法,根据用户至上的原则,自始自终按照结构化、模块化,自顶向下地堆系统进行分析与设计。
B.特点:ⅰ面向用户的观点;
ⅱ自顶向下的分析、设计与自底向上的系统实施相结合;
ⅲ逻辑设计和物理设计分别进行;
ⅳ严格区分系统阶段;
ⅴ结构化、模块化;
ⅵ开发过程工程化。
Ⅲ 运营数据分析方法有哪些
1、数字和趋势
看数字、看趋势是最基础展示数据信息的方式。在数据分析中,我们可以通过直观的数字或趋势图表,迅速了解例如市场的走势、订单的数量、业绩完成的情况等等,从而直观地吸收数据信息,有助于决策的准确性和实时性。
2、维度分解
当单一的数字或趋势过于宏观时,我们需要通过不同的维度对于数据进行分解,以获取更加精细的数据洞察。在选择维度时,需要仔细思考其对于分析结果的影响。
3、用户分群
针对符合某种特定行为或背景信息的用户,进行归类处理,是我们常常讲到的用户分群(segmentation )的手段。我们也可以通过提炼某一群用户的特定信息,创建该群体用户的画像。
4、转化漏斗
绝大部分商业变现的流程,都可以归纳为漏斗。漏斗分析是我们最常见的数据分析手段之一,无论是注册转化漏斗,还是电商下单的漏斗。通过漏斗分析可以从先到后还原用户转化的路径,分析每一个转化节点的效率。
Ⅳ 如何进行用户需求分析
1.概念
需求的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特性)来阐述需求.
关键的问题是一定要编写需求文档.我曾经目睹过一个项目中途更换了所有的开发者,客户被迫与新的需求分析者坐到一起.系统的分析人员说:"我们想与你谈谈你的需求."客户的第一反应便是:"我已经将我的要求都告诉你们前任了,现在我要的就是给我编一个系统".
百事通
而实际上,UGGs,需求并未编写成文档,因此新的分析人员不得不从头做起.所以如果只有一堆邮件、会谈记录或一些零碎的未整理的对话,你就确信你已明白用户的需求,那完全是自欺欺人.
需求的另外一种定义认为需求是"用户所需要的并能触发一个程序或系统开发工作的说明".有些需求分析专家拓展了这个概念:"从系统外部能发现系统所具有的满足于用户的特点、功能及属性等".这些定义强调的是产品是什么样的,而并非产品是怎样设计、构造的.而下面的定义则从用户需要进一步转移到了系统特性:
需求是指明必须实现什么的规格说明.它描述了系统的行为、特性或属性,是在开发过程中对系统的约束.
从上面这些不同形式的定义不难发现:并没有一个清晰、毫无二义性的"需求"术语存在,真正的"需求"实际上在人们的脑海中,这个人们主要是指客户,但一般情况下,用户并不能描述自己的需要,只就需要系统分析人员根据用户的自己语言的描述整理出相关的需要再进一步和客户核对.系统分析员和客户需要确保所有项目风险承担者在描述需求的那些名词的理解上务必达成共识.
任何文档形式的需求(例如如下将要描述的需求规格说明书)仅是一个模型,一种描述.
2.需求分析的任务
开发软件系统最为困难的部分就是准确说明开发什么.最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口.同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难.
目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题.
对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的.但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?
然而,即便并非出于商业目的的软件需求也是必须的.例如库、组件和工具这些供开发小组内部使用的软件.当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生.
近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件.不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能.结果这个小组只好手工抄写源代码文档以供代码检查.这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了.
相反的情况,我曾见一个要集成到"错误跟踪系统"中的简单界面写了一页需求说明.而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用.他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误.
事实上,需求文档在开发过程中一直起指导作用.
3.需求分析过程
可把整个软件需求工程研究领域划分为需求开发和需求管理两部分更合适,如图4-1所示:
图4-1 需求工程域的层次分解示意图
需求开发可进一步分为:问题获取、分析、编写规格说明和验证四个阶段.这些子项包括软件类产品中需求收集、评价、编写文档等所有活动.需求开发活动包括以下几个方面:
确定产品所期望的用户类别.
获取每个用户类的需求.
了解实际用户任务和目标以及这些任务所支持的业务需求.
分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息.
将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件.
了解相关质量属性的重要性.
商讨实施优先级的划分.
将所收集的用户需求编写成文档和模型.
评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚.
需求管理需要"建立并维护在软件工程中同客户达成的合同" .这种合同都包含在编写的需求文档与模型中.客户的接受仅是需求成功的一半,开发人员也必须能够接受他们,并真正把需求应用到产品中.通常的需求管理活动包括:
定义需求基线(迅速制定需求文档的主体).
评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它.
以一种可控制的方式将需求变更融入到项目中.
使当前的项目计划与需求一致.
估计变更需求所产生影响并在此基础上协商新的承诺,这种承诺具体体现在项目解决方案上.
让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪.
在整个项目过程中跟踪需求状态及其变更情况.
以上几点说明是我总结了成功实施项目后系统分析人员的经验,同时也根据国内外的其他系统实施的相关成功经验,进行了总结.
4.需求的类型
下面这些定义是需求工程领域中常见术语的定义.
软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求).
1.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明.
2.用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本说明中予以说明.
3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求.
在软件需求规格说明书 (SRS)中说明的功能需求充分描述了软件系统所应具有的外部行为.软件需求规格说明在开发、测试、质量保证、项目管理以及相关项目功能中都起了重要的作用.对一个大型系统来说,软件功能需求也许只是系统需求的一个子集,因为另外一些可能属于子系统(或软件部件).
作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等.它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性.所谓约束是指对开发人员在软件产品设计和构造上的限制.质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能.多角度描述产品对用户和开发人员都极为重要.
下面以一个字处理程序为例来说明需求的不同种类.业务需求可能是:"用户能有效地纠正文档中的拼写错误",该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器.而对应的用户需求可能是"找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词".同时,该拼写检查器还有许多功能需求,如找到并高亮度提示错词的操作;显示提供替换词的对话框以及实现整个文档范围的替换.
从以上定义可以发现,需求并未包括设计细节、实现细节、项目计划信息或测试信息.需求与这些没有关系,它关注的是充分说明你究竟想开发什么.项目也有其它方面的需求,如开发环境需求或发布产品及移植到支撑环境的需求.尽管这些需求对项目成功也至关重要,但它们并非本书所要讨论的.
5.需求分析的原则
不重视需求过程的项目队伍将自食其果.需求工程中的缺陷将给项目成功带来极大风险,这里的"成功"是指推出的产品能以合理的价格、及时地在功能、质量上完全满足用户的期望.下面将讨论一些需求风险.
不适当的需求过程所引起的一些风险:
1. 无足够用户参与
客户经常不明白为什么收集需求和确保需求质量需花费那么多功夫,开发人员可能也不重视用户的参与.究其原因:一是因为开发人员感觉与用户合作不如编写代码有意思;二是因为开发人员觉得已经明白用户的需求了.在某些情况下,与实际使用产品的用户直接接触很困难,而客户也不太明白自己的真正需求.但还是应让具有代表性的用户在项目早期直接参与到开发队伍中,并一同经历整个开发过程.
系统人员在实践过程中,也有些感觉,在实施一家公司的项目时,若无足够的用户参与,系统人员获得的需求是片面的,不完整的,这样系统在需求之初就埋下风险.
2. 用户需求的不断增加
在开发中若不断地补充需求,项目就越变越庞大以致超过其计划及预算范围.计划并不总是与项目需求规模与复杂性、风险、开发生产率及需求变更实际情况相一致,这使得问题更难解决.实际上,问题根源在于用户需求的改变和开发者对新需求所作的修改.
要想把需求变更范围控制到最小,必须一开始就对项目视图、范围、目标、约束限制和成功标准给予明确说明,并将此说明作为评价需求变更和新特性的参照框架.说明中包括了对每种变更进行变更影响因素分析的变更控制过程,有助于所有风险承担者明白业务决策的合理性,即为何进行某些变更,相应消耗的时间、资源或特性上的折中.
产品开发中不断延续的变更会使其整体结构日渐紊乱,补丁代码也使得整个程序难以理解和维护.插入补丁代码使模块违背强内聚、松耦合的设计原则,特别是如果项目配置管理工作不完善的话,收回变更和删除特性会带来问题.如果你尽早地区别这些可能带来变更的特性,你就能开发一个更为健壮的结构,并能更好地适应它.这样设计阶段需求变更不会直接导致补丁代码,同时也有利于减少因变更导致质量的下降.
3. 模棱两可的需求
模棱两可是需求规格说明中最为可怕的问题.它的一层含义是指诸多读者对需求说明产生了不同的理解;另一层含义是指单个读者能用不止一个方式来解释某个需求说明.
模棱两可的需求会使不同的风险承担者产生不同的期望,它会使开发人员为错误问题而浪费时间,并且使测试者与开发者所期望的不一致.一位系统测试人员曾告诉我,她所在的测试组经常对需求理解有误,以致不得不重写许多测试用例并重做许多测试.
处理模棱两可需求的一种方法是组织好负责从不同角度审查需求的队伍.仅仅简单浏览一下需求文档是不能解决模棱两可问题的.如果不同的评审者从不同的角度对需求说明给予解释,但每个评审人员都真正了解需求文档,这样二义性就不会直到项目后期才被发现,那时再发现的话会使得更正代价很大.
4. 不必要的特性
"画蛇添足"是指开发人员力图增加一些"用户欣赏"但需求规格说明中并未涉及的新功能.经常发生的情况是用户并不认为这些功能性很有用,以致在其上耗费的努力"白搭"了.开发人员应当为客户构思方案并为他们提供一些具有创新意识的思路,具体提供哪些功能要在客户所需与开发人员在允许时限内的技术可行性之间求得平衡,开发人员应努力使功能简单易用,而不要未经客户同意,擅自脱离客户要求,自作主张.
同样,客户有时也可能要求一些看上去很"酷",但缺乏实用价值的功能,而实现这些功能只能徒耗时间和成本.为了将"画蛇添足"的危害尽量减小,应确信:你明白为什么要包括这些功能,以及这些功能的"来龙去脉",这样使得需求分析过程始终是注重那些能使用户完成他们业务任务的核心功能.
5. 过于精简的规格说明
有时,客户并不明白需求分析有如此重要,于是只作一份简略之至的规格说明,仅涉及了产品概念上的内容,然后让开发人员在项目进展中去完善,结果很可能出现的是开发人员先建立产品的结构之后再完成需求说明.这种方法可能适合于尖端研究性的产品或需求本身就十分灵活的情况.但在大多数情况下,这会给开发人员带来挫折(使他们在不正确的假设前提和极其有限的指导下工作),也会给客户带来烦恼(他们无法得到他们所设想的产品).
6. 忽略了用户分类
大多数产品是由不同的人使用其不同的特性,使用频繁程度也有所差异,使用者受教育程度和经验水平也不尽相同.如果你不能在项目早期就针对所有这些主要用户进行分类的话,必然导致有的用户对产品感到失望.例如,菜单驱动操作对高级用户太低效了,但含义不清的命令和快捷键又会使不熟练的用户感到困难.
7. 不准确的计划
据统计,导致需求过程中软件成本估计极不准确的原因主要有以下五点:频繁的需求变更、遗漏的需求、与用户交流不够、质量低下的需求规格说明和不完善的需求分析.
对不准确的要求所提问题的正确响应是"等我真正明白你的需求时,我就会来告诉你".基于不充分信息和未经深思的对需求不成熟的估计很容易为一些因素左右.要作出估计时,最好还是给出一个范围.未经准备的估计通常是作为一种猜测给出的,听者却认为是一种承诺.因此我们要尽力给出可达到的目标并坚持完成它.
6.需求分析人员和用户的合作关系
优秀的软件产品是建立在优秀的需求基础之上的.而高质量的需求来源于客户与开发人员之间有效的交流与合作.通常,开发人员与客户或客户代理人,如市场人员间的关系反而会成为一种对立关系.双方的管理者都只想自己的利益而搁置用户提供的需求从而产生摩擦,在这种情况下,不会给双方带来一点益处.
只有当双方参与者都明白要成功自己需要什么,同时也应知道要成功合作方需要什么时,才能建立起一种合作关系.由于项目压力与日渐增,所有风险承担者有着一个共同的目标这一点容易被遗忘.其实大家都想开发出一个既能实现商业价值,又能满足用户需要,还能使开发者感到满足的优秀软件产品.
软件客户需求权利书列出了十条关于客户在项目需求工程实施中与分析人员、开发人员交流时的合法要求.每一项权利都对应着软件开发人员、分析人员的义务.而软件客户需求义务书也列出了十条关于客户在需求过程中应承担的义务.如果愿意,可以将其作为开发人员的权利书.
客户有如下权利:
1:要求分析人员使用符合客户语言习惯的表达
需求讨论应集中于业务需要和任务,故要使用业务术语,你应将其教给分析人员,而你 不一定要懂得计算机的行业术语.
2:要求分析人员了解客户的业务及目标
通过与用户交流来获取用户需求、分析人员才能更好地了解你的业务任务和怎样才能使产品更好地满足你的需要.这将有助于开发人员设计出真正满足你的需要并达到你期望的优秀软件.为帮助开发人员和分析人员,可以考虑邀请他们观察你或你的同事是怎样工作的.如果新开发系统是用来替代已有的系统,那么开发人员应使用一下目前的系统,这将有利于他们明白目前系统是怎样工作的,其工作流程的情况,以及可供改进之处.
3:要求分析人员编写软件需求规格说明
分析人员要把从你和其他客户那里获得的所有信息进行整理,以区分开业务需求及规范、功能需求、质量目标、解决方法和其它信息.通过这些分析就能得到一份软件需求规格说明.而这份软件需求规格说明便在开发人员和客户之间针对要开发的产品内容达成了协议.软件需求规格说明书可以用一种你认为易于翻阅和理解的方式组织编写.要评审编写出的规格说明以确保它们准确而完整地表达了你的需求.一份高质量的软件需求规格说明能有助于开发人员开发出真正需要的产品.
4:要求得到需求工作结果的解释说明
分析人员可能采用了多种图表作为文字性软件需求规格说明的补充.因为如工作流程图那样的图表能很清楚地描述出系统行为的某些方面.所以需求说明中的各种图表有着极高的价值.虽然它们不太难于理解,但是你很可能对此并不熟悉.因此可以要求分析人员解释说明每张图表的作用或其它的需求开发工作结果和符号的意义,及怎样检查图表有无错误及不一致等.
5:要求开发人员尊重你的意见
如果用户与开发人员之间不能相互理解,那关于需求的讨论将会有障碍,共同合作能使大家"兼听则明".参与需求开发过程的客户有权要求开发人员尊重他们并珍惜他们为项目成功所付出的时间.同样,客户也应对开发人员为项目成功这一共同目标所作出的努力表示尊重与感激.
6:要求开发人员对需求及产品实施提供建议,拿出主意
通常,客户所说的"需求"已是一种实际可能的实施解决方案,分析人员将尽力从这些解决方法中了解真正的业务及其需求,同时还应找出已有系统不适合当前业务之处,以确保产品不会无效或低效.在彻底弄清业务领域内的事情后,分析人员有时就能提出相当好的改进方法.有经验且富有创造力的分析人员还能提出增加一些用户并未发现的很有价值的系统特性.
7:描述产品易使用的特性
你可以要求分析人员在实现功能需求的同时还要注重软件的易用性.因为这些易用特性或质量属性能使你更准确、高效地完成任务.例如,客户有时要求产品要"用户友好"或"健壮"或"高效率",但这对于开发人员来说,太主观了并无实用价值.正确的应是:分析人员通过询问和调查了解客户所要的友好、健壮、高效所包含的具体特性.
8:调整需求,允许重用已有的软件组件
需求通常要有一定的灵活性.分析人员可能发现已有的某个软件组件与你描述的需求很相符.在这种情况下,分析人员应提供一些修改需求的选择以便开发人员能够在新系统开发中重用一些已有的软件.如果有可重用的机会出现,同时你又能调整你的需求说明,那就能降低成本和节省时间,而不必严格按原有的需求说明开发.所以说,如果想在产品中使用一些已有的商业常用组件,而它们并不完全适合你所需的特性,这时一定程度上的需求灵活性就显得极为重要了.
9:获得满足客户功能和质量要求的系统
每个人都希望项目获得成功.但这不仅要求你要清晰地告知开发人员关于系统"做什么"所需的所有信息,而且还要求开发人员能通过交流了解清楚取舍与限制.一定要明确说明你的假设和潜在的期望.否则,开发人员开发出的产品很可能无法让你满意.
客户有下列义务:
1:给分析人员讲解你的业务
分析人员要依靠你给他们讲解的业务概念及术语.但你不能指望分析人员会成为该领域的专家,而只能让他们真正明白你的问题和目标.不要期望分析人员能把握你们业务的细微与潜在之处,他们很可能并不知道那些对于你和你的同事来说理所当然的"常识".
2:抽出时间清楚地说明并完善需求
客户很忙,经常在最忙的时候还得参与需求开发.但无论如何,你有义务抽出时间参与"头脑风暴"会议的讨论,接受采访或其它获取需求的活动.有时分析人员可能先以为明白了你的观点,而过后发现还需要你的讲解.这时,请耐心一些对待需求和需求的精化工作过程中的反复,因为它是人们交流中的很自然的现象,何况这对软件产品的成功极为重要.
3:准确而详细地说明需求
编写一份清晰、准确的需求文档是很困难的.由于处理细节问题不但烦人而且又耗时,故很容易留下模糊不清的需求.但是,在开发过程中,必须得解决这种模糊性和不准确性.而你恰是为解决这些问题作出决定的最佳人选.不然的话,你就只好靠开发人员去正确猜测了.在需求规格说明中暂时加上待定(to be determined, TBD也可采用汉语拼音略写"DQD:待确定")的标志是个不错的办法.用该标志可指明了哪些需要进一步探讨、分析或增加信息的地方.不过,有时也可能因为某个特殊需求难以解决或没有人愿意处理它而注上TBD标志.尽量将每项需求的内容都阐述清楚,以便分析人员能准确的将其写进软件需求规格说明中.如果你一时不能准确表述,那就得允许获取必要的准确信息这样一个过程.通常使用所谓的原型技术.通过开发的原型,你可以同开发人员一起反复修改,不断完善需求定义.
4:及时地作出决定
正如一位建筑师为你修建房屋,分析人员将要求你做出一些选择和决定.这些决定包括来自多个用户提出的处理方法或在质量特性冲突和信息准确度中选择折衷方案等.有权做出决定的客户必须积极地对待这一切,尽快做处理、做决定.因为开发人员通常只有等你做出了决定才能行动,而这种等待会延误项目的进展.
5:尊重开发人员的需求可行性及成本评估
所有的软件功能都有其成本价格,开发人员最适合预算这些成本(尽管许多开发人员并不擅长评估预测).你所希望的某些产品特性可能在技术上行不通,或者实现它要付出极为高昂的代价.而某些需求试图在操作环境中要求不可能达到的性能或试图得到一些根本得不到的数据,开发人员会对此作出负面的评价意见,你应该尊重他们的意见.有时,你可以重新给出一个在技术上可行、实现上便宜的需求,例如,要求某个行为在"瞬间"发生是不可行的,但换种更具体的时间需求说法("在50ms以内",但若没有准确的技术分析不能轻易下结论),这就可以实现了.
6: 划分需求优先级别
大多数项目没有足够的时间或资源来实现功能性的每个细节.决定哪些特性是必要的,哪些是重要的,哪些是好的,是需求开发的主要部分.只能由你来负责设定需求优先级,因为开发者并不可能按你的观点决定需求优先级.开发者将为你确定优先级提供有关每个需求的花费和风险的信息.当你设定优先级时,你帮助开发者确保在适当的时间内用最小的开支取得最好的效果.在时间和资源限制下,关于所需特性能否完成或完成多少应该尊重开发人员的意见.尽管没有人愿意看到自己所希望的需求在项目中未被实现,但毕竟是要面对这种现实的.业务决策有时不得不依据优先级来缩小项目范围或延长工期,或增加资源,或在质量上寻找折衷.
7:评审需求文档和原型
正如我们将在第1 4章讨论的,无论是正式的还是非正式的方式,对需求文档进行评审都会对软件质量提高有所帮助.让客户参与评审才能真正鉴别需求文档是否的确完整、正确说明了期望的必要特性.评审也给客户代表提供一个机会,给需求分析人员带来反馈信息以改进他们的工作.如果你认为编写的需求文档不够准确,就有义务尽早告诉分析人员并为改进提供建议.通过阅读需求规格说明,很难想象实际的软件是什么样子的.更好的方法是先为产品开发一个原型.这样你就能提供更有价值的反馈信息给开发人员,帮助他们更好地理解你的需求.必须认识到:原型并非是一个实际产品,但开发人员能将其转变、扩充成功能齐全的系统.
8:需求出现变更要马上联系
不断的需求变更会给在预定计划内完成高质量产品带来严重的负面影响.变更是不可避免的,但在开发周期中变更越在晚期出现,其影响越大.变更不仅会导致代价极高的返工,而且工期也会被迫延误,特别是在大体结构已完成后又需要增加新特性时.所以一旦你发现需要变更需求时,请一定立即通知分析人员.
9:应遵照开发组织处理需求变更的过程
为了将变更带来的负面影响减少到最低限度,所有的参与者必须遵照项目的变更控制过程.这要求不放弃所有提出的变更,对每项要求的变更进行分析、综合考虑,最后作出合适的决策以确定将某些变更引入项目中.
10:尊重开发人员采用的需求工程过程
软件开发中最具挑战性的莫过于收集需求并确定其正确性.分析人员采用的方法有其合理性.也许你认为需求过程不太划算,但请相信花在需求开发上的时间是"很有价值"的.如果你理解并支持分析人员为收集、编写需求文档和确保其质量所采用的技术,那么整个过程将会更为顺利.尽管去询问分析人员为什么他们要收集某些信息,或参与与需求有关的活动.
系统分析人员在开发过程中可能会遇到以下问题,一些很忙的客户可能不愿意积极参与需求过程,而缺少客户参与将很可能导致不理想的产品.故一定要确保需求开发中的主要参与者都了解并接受他们的义务.如果遇到分歧,通过协商以达成对各自义务的相互理解,这样能减少今后的摩擦.
7.需求文档
需求开发的最终成果是:客户和开发小组对将要开发的产品达成一致协议.协议综合了业务需求、用户需求和软件功能需求.就像我们早先所看到的,项目视图和范围文档包含了业务需求,而使用实例文档则包含了用户需求.你必须编写从使用实例派生出的功能需求文档,还要编写产品的非功能需求文档,包括质量属性和外部接口需求.只有以结构化和可读性方式编写这些文档,并由项目的风险承担者评审通过后,各方面人员才能确信他们所赞同的需求是可靠的.
你可以使用以下三种方法编写软件需求规格说明:
用好的结构化和自然语言编写文本型文档.
建立图形化模型,这些模型可以描绘转换过程、系统状态和它们之间的变化、数据关系、逻辑流或对象类和它们的关系.
编写形式化规格说明,这可以通过使用数学上精确的形式化逻辑语言来定义需求.
由于形式化规格说明具有很强的严密性和精确度,因此,所使用的形式化语言只有极少数软件开发人员才熟悉,更不用说客户了.虽然结构化的自然语言具有许多缺点,但在大多数软件工程中,它仍是编写需求文档最现实的方法.包含了功能和非功能需求的基于文本的软件需求规格说明已经为大多数项目所接受.图形化分析模型通过提供另一种需求视图,增强了软件需求规格说明.
Ⅳ 什么是用户行为分析怎么做用户行为分析
第一个问题,什么是用户行为分析:
过去的用户行为分析普遍的问题是:分析不聚焦、采集不全面、开发周期长、完全依靠人工埋点、事后分析、维度单一、指标传统。
所以当下可以把用户行为分析定义为:基于用户生命周期管理模型、全面采集所有数据、事中分析、提前预测、实时多维组合、科学维度划分、自定义指标的分析。
第二个问题:怎么做用户行为分析
你提出这个问题,证明你可能暂时没有数据分析团队,或者数据分析团队尚不成熟和完善,所以需要开展数据分析工作的话建议是借助第三方的平台。
这一块业务目前国内已经相对成熟,也有很多不错的合作伙伴可以选择了,硅谷的明星公司可以选择Google Analytics或者Mixpanel等,不过我最推荐的还是国内的数极客。
具体如何开展,我个人的建议是:
选择采用AARRR模型的平台,通过对用户全程行为的跟踪,让我们在经营中运营中,拥有Acquisition(获客)、Activation(激活与活跃)、Retention(留存)、Revenue(收入)、Refer(二次传播) 全程数据分析功能。
Ⅵ 什么是用户画像如何分析用户画像
用户画像是真实用户的虚拟代表,是建立在一系列真实数据之上的目标用户模型。
通俗来讲,就是——我们产品的目标受众是什么,使用我们产品的核心人群是什么样的,他们有什么行为特征、消费习惯,什么是能够刺激他们购买的核心需求。
1.网络大数据洞察:网络指数
网络指数是以网络海量网民行为数据为基础的数据分享平台。分别有趋势研究、需求图谱、人群画像是网络指数的三个展现维度。
趋势研究:这是网络指数最核心、最基本的功能,是以时间维度,判断关键词的关注热度;我们可以做对比分析,从而找出规律。
以美术班为例,搜索关键词后,发现了一条规律,每年的3月和9月是搜索高峰期,这也正好应对了两个开学季。
需求图谱:通过用户在搜索该词的前后的搜索行为变化中表现出来的相关检索词需求。
比如,通过“美术”这个大关键词,检索出的相关小关键词。可以帮我们更精准地掌握用户的需求。圆中的圈越大,说明与大关键词的关联性越强。
人群画像:搜索关键词的人群共性特征,是从地域、年龄、性别分布以及兴趣属性这几个特征展开的。
2.全域数据洞察——观星盘
观星盘汇聚了网络域内数据、客户数据、合作伙伴数据组成的全域数据,构建海量用户行为标签,提供多维度行业和品牌洞察能力,全方位感知用户行为和意图,帮助品牌锁定精准目标用户。
借助观星盘数据精细化细分人群,可以覆盖不同侧重点进行引流营销,增强目标用户对品牌的认知,提升影响力。
Ⅶ 用户体验研究方法及分析方法是哪些
需求
1.用户和客户是谁?
(1)调查(survey):发现用户是谁、他们想要什么、他们在做什么、他们买什么、他们在哪里购物以及他们拥有什么的最便宜的方式就是调查他们。
(2)用户角色/市场细分(persona/market segmentation):将调查结果转换为有意义的聚类。特定用户群想要什么样的功能、他们在做购买决定时最在乎什么?不要仅仅考虑性别、收入和年龄,把任务和领域经验也作为关键的区分指标。
(3)竞品分析(competitive analysis):很少会有一个产品或网站之前从来没有人做过。了解你的市场,找出市场上的类似公司并将眼光投向类似行业。有哪些特性是共同的?什么能够讨得客户的欢心?使用行业基准,比如测量口碑的净推荐分数和测量可用性的系统可用性量表。
(4)现场调查(Contextual Inquiry):用户不是总能清楚地说明自己需要什么或想要什么。通过在他们的工作场所或家里观察用户如何解决他们的问题和达到他们的目标,我们能够发现未满足的需求和理解他们执行的任务。
(5)利害关系人访谈(Stakeholder Interviews):大量的信息已经存在于公司的不同部门。可以使用结构化访谈的方法来询问客服、QA、开发、市场和销售来发现什么需要建立、修正和排除。
(6)质量功能展开(Quality Function Deployment):将来自内部利害关系人的想法和来自用户和客户的数据整理成矩阵,以理解什么功能可以满足大部分的内部和外部需求。
2.用户想要做什么?
(1)任务分析(Task Analysis):将用户想要完成的事情分解以理解应用应该如何让任务更有效率和更为有效。
(2)关键任务分析(Top Tasks Analysis):你的应用不能一直为每个人做所有的事情。大部分人使用应用(软件或网站)只是用来完成一小部分任务。调查你的用户并找出哪些关键任务可以在大部分时间满足用户大部分的需求。同事要保证你的应用能够很好地完成这些任务。
设计和开发
界面看起来怎么样?
(1)线框(Wireframing):早期可以用纸笔、Visio或PowerPoint将界面的主要元素绘制出来。对理解功能、流程和发现改进的机会,这已经足够了。这可以让你领先利害关系人而得到设计。
(2)原型(Prototyping):提高设计的保真度,并尽早和经常地进行测试。
测试和评估
1.如何组织?
(1)卡片分类(Card Sorting):你要如何称呼你的功能、屏幕和抽象概念?你要如何组织它们?不要猜测,让用户来将这些项目归类并给每个类别命名。
(2)Tree Testing:使用仅仅一个抽象分类,让用户尝试着在导航上定位项目来测试导航的线框和原型。
(3)首次点击测试(First Click Testing):如果用户去到了错误的路径,他们更可能迷失并在任务上失败。理解用户会从哪里开始。
(4)键击级别模型(Keystroke Level Modeling):在没有测试一个用户的情况下,你也可以对任务完成时长或提出的改进是否增加或降低了完成时长有一些了解。KLM方法用到了一些核心的HCI法则来估计一个技能娴熟的用户要花多长时间来完成任务。
(5)启发式评估(Heuristic Evaluations):在将问题带给用户前提早发现它们。启发式评估可以发现用户会遇到的大概30%的问题。理想情况下,你有至少两名独立的评估者,他们指导HCI法则和该领域的知识。在浪费有价值用户的时间前修正这些明显的问题。
2.用户会遇到哪些问题?
(1)有主持的个人测试(Moderated In Person Testing):移动设备测试的理想方法,或者很难远程地提供原型时,可以在实验室、会议室甚至过道测试用户,以了解哪些任务有问题,以及哪些地方有待修正。
(2)有主持的远程测试(Moderated Remote Testing):使用廉价和普及的服务如GoTo Meeting 或WebEx,你可以招募世界各地的人来参与任务,甚至可以利用摄像头来记录他们的面部表情。不要只是问他们对设计怎么想,让他们参与任务,并调查任务的困难度、收集定量数据。
(3)无主持的远程可用性测试(Unmoderated Remote Usability Testing):如果你的设计和任务很明确,你可以在网上测试你的原型,用户可以远程参与任务而不必面对面。你甚至可以使用热点来测试图像。使用诸如UserZoom, Usertesting.com和Loop11的服务来实施结构化的任务和询问特定问题,你可以在一天得到10多个到上百个用户的数据结果。按这种方法测试,然后再次测试。
开发和上线
(1)可用性基准研究(Usability Benchmark Study):可以通过让一批代表性用户参与任务来了解网站或软件的可用性。收集定量数据,使用置信区间来得到可靠的基准。在测试后或研究结束后使用标准化的问卷也是可以的。这些可以在实验室环境下实施或远程实施。
(2)无主持的远程可用性测试(Unmoderated Remote Usability Testing):你可以使用一个在线网站来让用户参与你在关键任务分析和构型设计阶段确定的任务。你可以记录点击,甚至对整个过程进行录像来观察用户在你不在场的情况下会遇到哪些麻烦。
(3)比较性基准研究(Comparative Benchmark Study):用户使用你在需求阶段确定的竞争性产品来完成一个任务有多困难?招募用户,使用诸如成功率、时间和任务难度来考察网站的优缺点。有时最好的比较是在不同行业中提供类似服务的一个最佳网站。如果你正在销售你的移动服务,可以考虑比较DirecTV或Zappos结账体验。
(4)A/B测试(A/B Testing):不要猜,要测试。在你发布产品后设计和改善并没有结束。测试表单、按钮、拷贝、图片和价格。不要害怕测试通配符(wild-card)。
(5)多变量测试(Multivariate Testing):一次测试一个变量微调网站,但如果你想要测试许多则要花费很长时间,并且你也不知道两个元素如何相互作用。例如,当你将更低的价格和不同的产品包装(proct package)结合时,有可能发生出乎意料的事情。你可以在一个在线网站上进行多变量的测试,或在研发环境下利用态度数据而不是实际购买来模拟这一体验。
(6)调查(Survey):你的用户会推荐你的网站或产品吗?他们信任它并觉得它有吸引力吗?将你的分数和行业基准比较,并使用标准化的问题。询问用户进一步改进的意见,并开放性评论和定量数据联系起来。
Ⅷ 设计师用户分析常用的方法有哪些UI设计
一、观察用户行为
在产品产出早期,面向产品的用户并没有很多,甚至只是一些内部人员,ui设计师可以通过观察用户使用产品过程中的一些行为,记录下交互流程中用户的操作与预设有哪些出入;记录下这些偏差并思考这些偏差从何而来,以及背后很可能反映的用户的真实诉求和意愿。
二、正视数据作用
数据虽然对我们的研究有很大作用,但是设计师依然要学会正确看待数据,不能随意建立因果关系;需要注意的是数据采集后可以帮助我们发散思维,但一般不将得到的数据用于总结后得出结论,这样得出的总结容易造成一定的误差,这就是数据会说谎的起因。
三、情景化设计
ui设计师需要明白所设计的界面是方便用户在具体什么样的的场景下使用的。情景化设计也可以正确的引导设计,避免设计师的主观设计,认为用户应该欣赏我精心设计的界面,认为用户应该明白这里我加弥撒阴影是潮流等等,这些都是一些比较片面的想法。
四、切分产品模块
如果有同类竞品那正常走分析的流程就好,这里主要说一下万一产品够新且出击较快,很可能互联网这块还未布局,那我们的产品如何做竞品分析?一般来说是将要开发的产品切分模块,新业务是基于什么原先的产品形态和商业模式?先把这些理清楚,再分析研究竞品。
ui设计师分析用户的常用方法。分析用户不仅要对早期的用户行为进行观察,还要进行一定的情感化设计,正视数据在用户分析过程中产生的作用,并且理清新业务原有的商业模式。从而更好地分析研究竞品,找出产品设计的不足,并加以改正,进而提升用户的使用体验。
Ⅸ 300字思考:目标用户需求分析方法
目标用户需求分析法主要是了解用户的需求,根据用户的需求进行生产。并且提供服务。
Ⅹ 如何做用户数据分析
一般的流程有两种:
一种流程是先有数据,看看在这些数据上可以做什么分析。
另一种流程是明确了需要分析的目的,然后去组织数据,最后进行分析。
第二种方法是传统的用户研究的方法,以目的为导向,第一种方法比较考验分析员的知识储备以及对数据敏感性和问题敏感性的把握。
如果是第二种,主要的步骤是:
1、沟通、明确本次用户研究需要实现的目标,可以模拟一些结论性的示例和目标方沟通,看看是否是其希望的内容。
2、基本沟通的结论分析一下需要什么样的数据
3、以数据为导向选择需要的调研方法
4、从执行角度分析,看看数据是否可行,如果不可行要回到第二步,考虑数据的修改,例如用某些数据来替代原来考虑的数据。
5、数据修改完以后,如果涉及到对目的打折扣的情况,回到第一步,要与目标方再次沟通
6、与目标方确定后,自己思考一下,在不影响成本和效果的情况下,可能可以补充什么数据,为将来可能出现的问题做一些准备。
7、执行调研,跟踪数据质量和项目进度,处理突发情况。
8、数据的处理和呈现
如果是第一种,主要的步骤是:
1、汇总数据,将手头的数据进行整理,同时将一些以前的数据,开源的数据进行汇总。
2、以最新的数据为核心思考主要可以提供的用户研究方向,这个要记录下来
3、将你思考的几个方向与不同的部门和团队进行沟通,看看大家关注的兴奋点是否匹配,匹配就进一步往下做,不匹配就不要做了(如果自己感兴趣,也可以做),将大家的关注点记录下。
4、对于匹配的方向,用现有的数据先进行一次初步的研究
5、沟通,从初步研究的结论中看看大家是否感兴趣,并提出进一步的研究方向,如果大家感兴趣,可以立项要钱了。
6、整理自己的汇总数据,纳入自己的库里,如果需要的时候,下次这些数据可能就能成为你再次研究的起点。
总结最后的成果:数据汇总、这些数据可能的研究方向,目标方可能的关注点,这些你可以在下次有数据的时候进一步进行分析。
整个过程中最关键点是:不要陷入自己的数据中,而要陷入目标方的问题中,并超越问题给出答案。