为我们的新课程做准备为专门域设计复杂应用程序,我们已经开展了一系列的研究,以了解和定义复杂应用程序的性质,包括:

  • 目测会话用来监视用户在复杂应用程序中的组件上的注视和注视模式
  • 采访从事复杂应用程序的用户体验设计师和研究人员,了解复杂应用程序从业者面临的挑战和应对策略
  • 与复杂应用程序的用户进行远程观察会话,以观察交互行为和工作流

在这些研究中,我们观察到各种因素——无论是应用本身固有的因素,还是与用户目标和环境相关的因素——都是导致应用被归类为复杂应用的原因。

什么是复杂的应用程序?

我们定义A.复杂应用作为支持广泛,非结构化的目标或非线性工作流程的任何应用程序。

此外,复杂的应用程序经常:

  • 支持受过专业培训的用户
  • 帮助用户导航和管理大型底层数据集并启用高级兴趣制作或数据分析
  • 支持解决问题或结束目标,具有未知或可变的底层任务
  • 需要多个角色、工具或平台之间的切换或协作
  • 减轻执行高影响(或高价值)任务的风险,其中高损失(例如,收入甚至生命)是股权

复杂的应用程序通常针对特定领域。一个专业领域是需要专业知识或培训(即专业知识)的工作领域。通常,专业领域的工作需要高级的递归决策和信息分析。

通过比较,日常域的一般应用程序使非专业用户能够完成围绕结构良好的目标组织的大部分离散线性任务。

例如,用于创建杂货店购物清单的列表制作应用程序就是日常领域的通才应用程序的一个例子。科学家用来分析和预测海平面上升的地理信息系统(GIS)是一个专门领域的复杂应用。

复杂的应用vs通才的apss
复杂的应用程序支持专业用户在非线性工作流程中实现广泛的、非结构化的目标。多面手应用程序使广泛的用户群体能够完成与结构良好的目标相关的离散任务。

框架:5层复杂性

复杂性本身很难定义。设计和使用复杂应用程序的复杂性有很多来源。

在这里,我们提出了一个由5层复杂性组成的框架,首先是与应用本身的核心相关的复杂性(例如,技术平台和数据),然后是与使用应用的人的可变目标和环境相关的复杂性,在组织或特定领域的文化中,制度化的工作方式更加模糊复杂。

我们将这些领域分别标记为:

  • 集成
  • 信息
  • 打算
  • 环境
  • 机构
用于设计复杂应用的5层复杂性
使用和设计复杂应用程序的人可以浏览多个复杂层次,包括集成、信息、意图、环境和制度的复杂性。

1.综合复杂性

综合复杂性指基础技术的复杂性,例如支持应用程序的多个和可变(通常是遗留)后端系统或数据库的互连。

正如云计算行业的一位UX设计经理所述:

复杂性…来自于我将微妙地称之为“遗留IT需求”。有很多技术债务…我们有很多数据都在不同的资源中,在某些情况下,您无法对10个单独的数据源进行10次调用。您需要整理这些数据,将其清理干净,并将其放在一个更好的地方。数据的清洁和整合可能是最具挑战性的事情……因为你可以想象,如果一个记录集在15或20年前开始被捕获,那么它与我们今天捕获的记录集在一个非常不同的地方,对吗?它在一个旧的遗留系统中,旧的遗留数据库中。它不是结构化的;它不是集装箱运输的。

除了实践者在试图清理和巩固非结构化数据时感到的痛苦之外,集成复杂性经常表现在终端用户糟糕的UX中也就是说,缓慢的、手工的过程,比如繁琐的数据传输和数据输入,用户必须引用不同的系统或平台才能进行比较或查询。

保险行业的一位设计负责人描述了在一次现场研究中,保险商试图使用一个应用程序向客户提供报价,以及它对公司整体客户体验的连锁反应时,观察到这种特殊的挫败感:

所以,在跟踪过程中,我们问他们(为客户查询申请的承销商),“你知道客户为什么要等三分钟吗?有时他们会说,“哦。是的,这是因为每次客户询问这个、这个或那个时,我们都需要运行一个批处理。“或者,“哦,我们需要进入另一个系统来查找信息”…所以发生了大量的手动操作。有时候客户会说:“好吧,我在等你,你在干什么?”

集成复杂性通常来自对几个不同的遗留体系结构和平台的集成和分层,努力将几个以前不同的产品或功能组合到一个产品中,或将一个接口组合在一起,以表示对各种子系统的单个访问点。

工业自动化行业的一位首席用户体验设计师描述了这样一个案例:

我正在努力的这个应用程序是四种或五个软件的组合......我们拥有所有这些小件,那就做了很多事情。我们希望创建一款我们的客户可以购买的软件。

这样的尝试会很快压倒从业者和最终用户,并导致复杂的体系结构,在这种结构中,为了改进用户工作流程而改变系统是不可能的。

2.信息复杂性

信息复杂性指许多复杂应用程序中固有的数据量以及导航和分析此类数据集所需的交互行为(例如,探索、过滤、缩放和建模)。(这一层在某种程度上与综合复杂性有关,因为庞大的数据集可能分散在未链接的子系统中。)

在复杂的应用程序中,界面决策必须考虑如何允许输入调用数据集中的某一组项,以及如何显示和启用用户与表面数据的交互。当呈现的数据没有以支持领域专家工作流程的方式组织或排序时,就会出现混乱和混乱。

例如,医疗保健信息学的一名服务设计师描述了一个临床知识交付工具的经验,该工具要求医疗从业人员筛选大量信息:

所以,他们[医疗从业人员]需要知道在最后一次服用抗凝血剂后多久你可以做手术,或者你应该做手术?所以,他们来到这里,然后看。手术的血栓栓塞风险,然后。特定的出血风险,所以这些信息帮助他们做出决定,但是,这是主机的呕吐物。这是一个类似北部的页面。我的意思是,上面有这么多信息,我就想,“人们怎么能在这里找到任何东西呢?”

除了导航大量数据外,专家或专业用户的工作流程通常还涉及构建和分析复杂的数据模型以及假设情景。对于这些类型的场景,从许多不同来源摄取、聚合、分析和导出数据是一个繁琐的过程,会在用户工作流中造成持续等待和中断。

一名海岸工程师描述了在某些沿海地区创建海平面上升模拟计算机模型的过程:

请看,不幸的是,当您有千兆字节和千兆字节的数据时,它们可能需要数小时[运行]。像这样…可能需要半天的时间来做分区统计。是的,只要点击区域统计,你就可以离开半天。就是这样。所以…这就是为什么我有…70台计算机,你只需要在不同的计算机上启动进程,让它们运行一段时间。

在分析如此大的数据集时,就刚刚描述的,在投资的用户时间量方面显然存在很多股份。此外,存在高度的数据不准确或分析误差倾向。当分析结果出乎意料时,甚至专家用户甚至常常发现自己无法快速查明数据中的错误源。

在临床 - 试验处理上进行成本效益分析的医疗保健分析师在她分析中突破错误时表现出这一挑战。她描述了她在她的型号中开始揭开的过程中所需的过程:

我首先要确保所有的变量都有正确的输入,然后,如果(它)看起来仍然很奇怪,它们会[the application’s support team] offer 24-hour support, so you can basically just send them an email or call them and…they will look through it with you, because…it would be really hard to know if it was some sort of error, if it was something with the model.

信息复杂性的影响,例如持续的等待时间和对意外分析结果的倾向,会在复杂应用程序的使用中产生不确定性和缺乏信心。

3.意图的复杂性

意图的复杂性与支持非结构化目标和广泛任务相关的复杂性,这些目标和任务是复杂应用程序使用的特征。

解决复杂问题的工作流通常是非线性和可变的;并非总是有一组已知的、理想的子任务(或“快乐路径”),所有用户都可以遵循这些子任务来实现目标,用户体验从业者可以轻松地设计和衡量这些子任务的成功。使问题进一步复杂化的是,许多企业应用程序被设计成“开箱”软件,可以向许多行业和许多类型的领域专家销售。由于这两个事实,从事支持复杂工作的应用程序的设计师和研究人员甚至可能不完全了解其应用程序需要支持的用例或工作流的范围。

一位在分析和数据监控平台工作的UX设计师在一次采访中抓住了这个挑战,他描述了这个产品:

我仍然不知道它是如何工作的...它可以在内心运行的语境数量......我们甚至都不知道它是如何使用的,因为它是一个开源解决方案。所以,这意味着......你可以用它做一切。

这种模糊性和差异性使其难以理解和设计用于实际用途。在设计安全关键领域的应用程序时,在繁重的法规中,难度进一步增加。

航空航天/国防工业中的人类因素介绍了在广泛的目标和环境中提供灵活性的斗争,同时仍在为应用程序中的元素(如应用程序检查表)的标准化协议中设计:

有一种方法可以让飞行员按照清单进行检查。很长时间以来,所有东西都是纸质的……如果你让它电子化……你如何(设计)灵活性来确保它(让用户)跳过(一个项目),因为它不适合你正在做的事情?

根据手头的情况,设计适于这种类型的灵活性对于可能需要改变流程,跳过或改变的用户的成功至关重要。

4.环境的复杂性

环境复杂性指复杂应用用户的物理环境。如果没有第一手的、实时的现场工作,这些环境通常很难理解和设计。

作为一个例子,一个UX设计师在床头馆医疗申请中使用应用程序描述了医学员面临的环境复杂性,并为设计应用程序的从业者的挑战:

他们(医生们)总是有那么多东西在他们面前闪烁……除了要照顾电脑旁边的人之外,确保它(应用程序上的信息)精确提炼出某人需要的东西,他们需要的地方,这是非常重要的。

另一位从事航空航天/国防工业接口工作的从业者为飞行员描述了一个不同但同样复杂的环境:

它的复杂性是有很多方面的......如果你飞过飞机,那么实际的飞机本身,室内环境,外部环境,那么情境意识,那么飞机的健康和地位或任何你的身份'重新控制。

如果没有现场观察,用户体验从业者或其他领域外人几乎不可能理解复杂应用程序用户的竞争环境因素、干扰和分心。特别是对于领域经验较少的从业者,实地研究, 如背景调查,在复杂的应用程序设计过程的早期是至关重要的。

除了早期的实地研究外,现场用户测试和评估也同样重要。设计军事应用程序的可用性工程负责人接着描述了在实验室外对复杂应用程序用户进行测试可以揭示的关键发现:

我们做了很多性能测量。例如,触摸屏上的按钮多点触控。当他们(士兵)穿上防护装备时就会出现问题。响应式或传导性触摸屏无法工作,因为没有触控笔……软件在理想情况下可能会正确运行,但当我们进行用户研究时,我们会在(实验室外)进行。”

简言之,从业者必须花时间在工作领域,以了解轰炸复杂应用程序用户的环境因素。

5.制度复杂性

最后,制度复杂性指存在于组织内部的文化或微观社会结构,包括规范、态度、角色、政治紧张关系、权力来源和制度化的做事方式。

复杂应用程序的实践者往往遵从传统方法或制度化的电源,因为他们觉得自己无法与之抗衡,即使它们不是最理想的。

一位工业自动化行业的首席用户体验研究员对在这种“传统”环境中工作表示失望,因为在这种环境中创新受到限制:

但在大多数情况下,他们(这家公司)是一家企业,因为他们已经存在了很长时间,并且已经生产了100万种产品。然后它们就变成了旧的遗留产品,它们必须继续工作,因为人们依赖它们,然后它们就变成了旧的、糟糕的代码。然后你就会有一群在这里工作了很久的人,他们都是这么做的,因为过去就有人这么做过,而且很成功。所以,没有做新的事情。

对不断发展的遗留设计方法的抵制只是机构复杂性给从业者造成障碍的一种方式。同样,我们看到了制度文化的影响以及内部政治结构对设计师和研究人员如何被其他角色感知和重视的影响。特别是在领域排他性很强的工作领域(这意味着专业领域知识对外人不可用),从业者经常发现自己在包括工作领域专家在内的团队中为可信度而奋斗。

能源行业的一位高级用户体验交互设计师介绍了她与工作领域专家合作的经验,这些专家对领域知识有限的从业者几乎没有同情心:

团队有很多主题专家。他们已经在这个空间里有10多年......他们有时忘记了[他们周围的时间] - 就像,“嘿,你不仅仅来这里并知道一切。”你不得不升空几年......以及任何进来的UX人 - ......,它只是需要很长时间才能让他们到1)了解这项业务,而且2)[了解] ......这些用户的目标和动机,以及我们如何增强[该]经验?

另一位医疗保健电子产品制造领域的高级用户体验设计师呼应了这一点,并建议利用基层力量与受人尊敬的员工建立合作关系,以减轻挑战:

我通常会找个能帮我的人也许他们在这个领域(专业知识)有更多的发言权,然后我就与他们合作,他们帮助我……提出我的想法。因为我新。似乎(公司名称被修改了)有一种文化:“如果……你没有(在这里)工作(很长时间),你就不知道自己在说什么。”

制度的复杂性很难改变;然而,UX实践者应该观察这些因素对复杂应用程序设计过程中所采用的方法和假设的影响,以及最终用户与应用程序的交互,以建立对他们可能遇到的设计障碍的全面意识。

此框架在用户体验设计师和研究人员中的应用

用户体验实践者经常吹捧用户环境的重要性(他们应该这样做)。然而,当涉及到为特定领域设计复杂的应用程序时,将“上下文”定义为一个包含所有内容的、通用的、类似于伞的概念是不够的。(芭芭拉·米雷尔在她2004年的书中首次提到了这种方法的不足之处,复杂问题解决的交互设计:开发有用和可用的软件.)

当涉及到复杂的应用程序设计和使用时,不要被复杂性所压倒,也不要简化您的上下文镜头,而是使用本文中介绍的复杂性层次作为一个框架,来分解与您的工作相关的复杂性源,并“以树见林”必威手机app下载

事实上,在我们最近的虚拟UX会议期间,Complex Apps课程的与会者使用该框架作为制作复杂性的工具,它通过使用共享词汇和展示和讨论它的共享词汇和型号来更具管理,如下所示。

与会者讨论应用程序设计过程中出现的复杂性类型的小组活动截图必威手机app下载
来自最近一次虚拟研讨会的共享谷歌Sheets文档的截图,与会者使用复杂性层框架来记录和讨论围绕他们的应用程序的复杂性来源。

我们鼓励您也使用此框架,作为领域建模练习的一部分,作为现场研究观察工具,或只是作为与同事讨论工作复杂性的方法。

要了解关于为特定领域设计复杂应用程序的过程和方法的更多信息,请访问我们的全天研讨会,为专业领域设计复杂应用程序

参考文献

Mirel,B.(2004)。复杂问题解决的交互设计:开发有用和可用的软件. CA旧金山:摩根.考夫曼.