目标导向设计
目标导向设计是一种软件设计的方法莫道不消魂论学。它定义了一个适当的软件开发模型/流程以及相关步骤中可使用到或能解决其中碰到的相关问题的方法、指导原则和模式。遵循这样的一个方法莫道不消魂论学所开发出来软件具有一定的生命力和成为成功产品的能力。
当前的软件产品设计有什么问题
软件不友好 – 用户很容易触发错误,并且大量的错误提示框来告知用户各种各样的错误。或是提示信息极不友好,令人感到不舒服。
软件主观臆测 – 软件主观认为用户是对计算机有了解。如:关闭文件前请保存文件。一般的用户怎么能理解什么是保存呢。
软件很晦涩 – 软件经常以一种晦涩的方式来表达一些信息或提出问题,或要求用户做出决定,它这之前他对后果却一无所知。如:请指定IRQ;菜单命令或图标不能有效表达其含义;让用户决定是完全安装、定制安装、还是便携安装之前不知道他们之间的区别。
软件行为不当 – 软件做出的反应与用户认知/期望的不一致。
为什么有这样的问题存在
软件人员对软件用户一无所知
软件人员面对利益冲突。软件开发人员也就是程序员,通常需要在编码容易及容易使用之间做出选择。而往往程序员都是在极其紧迫的开发计划中来完成开发工作。
缺少有效的软件开发过程。工程部门、市场部、销售部都有一套行之有效的流程来确保工程、产品的质量及在商业上的生存能力。但软件开发过程却没有一套可重复的分析过程,它能够将对用户的理解转变为能同时满足用户需求和激发他们想象力的产品。
目标导向设计方法
制造业设计的演变
从制造业的设计过程的演变中找到解决软件开发中碰到的问题。早期的工业产品,只需工程和市场过程就能生产出令人期望的产品。但时间的推移,消费产品就面对激烈的竞争,吸引的产品外型和令人舒适地使用才能使产品脱颖而出。Larry Keeley提出了一个使产品成功所需的三个要素:可行性、生存能力和期望性。
行为规划和设计
如何才能确保产品的期望性呢?这就需要我们理解用户的生活和行为,使设计产品的行为和形式能够支持和促进用户的行为。这就叫交互设计。要做好交互设计,首要就是要了解用户的目标。
识别用户目标
什么才是用户的目标?有时候我们看到的并不是用户真正的目标。如:会计处理发票。我们可能猜测会计的目标是如何高效地处理发票,但其实那是老板的目标。会计的个人目标是关心自己能否显得胜任本职工作,以及在完成例行的重复任务同时保持这份工作。有时候产品是关心用户了,但却过多地关心用户的任务或技术而不是用户的目标。
目标VS任务
目标不等于任务。目标是终结条件,相反,任务只是达成目标的一个过程。目标受人的动机驱使的,是不受时间推移而改变的。任务是短暂的,几乎完全基于身边的技术。如:一个人的目标可能是舒适地到达某地。在50年代,他可以坐火车。在当今,他可以坐飞机。当目标明确了,就可以根据技术来消除不相关任务。根据任务来设计的软件界面在某方面是满足了用户的需求,却不一定能改善用户的效率并用户满意。它并不是一个成功的产品。
设计要满足上下文中的目标
不要认为将界面设计得容易学习应该始终是设计的目标。容易学习只是一个原则,设计目标是要根据具体的上下文来决定的——谁是用户,他们的目标是什么。如:自动呼叫分发系统。这产品是基于这系统处理了多少呼叫来收费的,他关注的是效率,而易学习性则是次要的。由其是当用户熟悉了这个系统后,如果还让用户一步一步的执行操作是会令人叫狂的。相反,如果产品是放在公司大厅里帮助来访者寻找路线的公用信息站则需要易学性了。设计师应该超越这些任务,思考谁是最重要的用户,他们在做什么,他们的目标是什么。
目标导向设计过程
它能有效地把用户调查的数据转化为产品的需求定义,以及用一种逻辑的、合适的界面结构来表达需求。
目标导向设计如何弥合用户与产品的差距
当前存在的问题在于分工的不合理。调研工作由市场人员完成,然后将所得数据扔给设计人员。设计人员却不能真正有效的了解用户。解决办法就使设计人员参与到调研的活动中,让设计人员用等同用户的心态去理解用户,去掌握用户的工作方式。在调研过程结束后建立起用户模型并最终定义出产品的需求及产品的交互框架。
目标导向过程
调研 – 现场研究及人物访谈等。这阶段得出的产物为一系列的使用模式。使用模式有助于对潜在的和已有产品的使用方式进行分类。它暗示着目标和动机(使用产品时所期望的结果)。在商业和技术领域这些行为模式倾向于映射为职业角色。对于消费者产品,它们更可能对应于生活方式的选择。使用模式和相关的目标促使了建模阶段的人物角色(Personas)的创建。
建模 – 领域模型和用户模型。领域模型包括信息流向和工作流程图。用户模型(Personas)是非常详细的合成的用户原型,这些原型代表着在研究阶段观察和识别到的不同行为模式、目标和动机。在这一阶段中,设计者采用不同的方法学工具来对角色进行综合、区分和排序,挖掘不同类型的目标,并且将人物角色映射到不同的行为范畴。基于人物角色和目标的相关程度,设计者可以得出一张人物角色对最终设计形式和行为的影响清单。
首要人物:需求非常独特,要特别的界面形式和行为。
次要人物:主要界面经轻微修改或补充以满足角色的需求
补充人物:需求完全可由主要界面满足
所服务的角色:角色不是产品的实际用户,但受产品及其使用的间影响
负面人物:角色作为具有修饰色彩的显示样例,表明产中不为谁设计。
需求定义 – 采用上下文脚本提纲的设计方法并逐步迭代细化的过程最终得出需求的定义。脚本提纲关注的是用户角色及用户目标,而不是用户的任务。这样设计者就能捕捉哪些是用户有意义的任务,并有充足的设计空间。
框架定义 – 在需求定义的高度上描述了数据及功能性后,按照交互原则,把它们转变为设计元素,然后再按照模式和原理,又将它们组织为设计草图和行为描述。这就是交互框架的定义——一些稳定的设计概念。这为往后的细化工作提供了逻辑和总体的形式结构。
细化 – 使用关键路径(key path)或预排和确认脚本提纲,通过更详细的界面关注情节串连。
总结:成功的产品关键在于是否完成用户期望的目标而不是产品的特性