为新课程做准备为特定领域设计复杂的应用程序,我们进行了一系列的研究,以理解和定义复杂应用的性质,包括:

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

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

什么是复杂应用程序?

我们定义了一个复杂应用与任何支持广泛的、非结构化目标或非线性工作流的应用程序一样。

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

  • 支持受过专业培训的用户
  • 帮助用户导航和管理大型底层数据集,并支持高级意义构建或数据分析
  • 支持未知或可变底层任务的问题解决或最终目标
  • 需要在多个角色、工具或平台之间进行切换或协作
  • 降低执行高影响(或高价值)任务的风险,当高损失(例如,收入甚至生命)处于危险之中时

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

相比之下,日常领域的通才应用使非专业用户能够完成围绕结构良好的目标组织的大部分离散线性任务。

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

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

框架:5层复杂性

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

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

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

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

1.综合复杂性

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

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

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

除了从业者在尝试清理和整合非结构化数据时感到的痛苦外,整合复杂性通常表现为最终用户的用户体验不佳,即缓慢的手动过程,例如繁琐的数据传输和数据输入,用户必须参考不同的系统或平台,以便对r询问。

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

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

集成复杂性通常源于多个不同的遗留体系结构和平台的集成和分层,目的是将多个以前不同的产品或功能组合成一个产品,或将一个接口拼凑在一起,以表示对不同子系统的单一访问点。

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

我正在开发的这个应用程序是由四五个软件组成的……我们有所有这些小软件,它们可以做很多事情。我们想要创造一个软件,我们的客户可以买到它做所有的。

这样的尝试会很快让实践者和最终用户不知所措,并导致复杂的架构,在这种架构中,为了改进用户工作流而改变系统是不可能的。

2.信息复杂性

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

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

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

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

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

一位海岸工程师描述了为某些沿海地区的海平面上升创建模拟计算机模型的过程,证明了这种情况:

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

在分析如此庞大的数据集时,用户投入的时间显然有很大的风险,正如刚才所描述的。此外,数据不准确或分析错误的倾向性很高。当分析结果出乎意料时,即使是专家用户也常常发现自己无法迅速查明数据中的错误来源。

一名医疗保健分析师在对临床试验治疗进行成本效益分析时,被分析中的一个错误难住,从而证明了这一挑战。她描述了她开始发现模型中错误来源的过程:

我首先会确保所有的变量都有正确的输入,然后如果(它)看起来仍然奇怪,他们[应用程序的支持团队]提供24小时的支持,所以你基本上只需要给他们发一封电子邮件或打电话,他们就会和你一起检查,因为…很难知道这是否是某种错误,是否与模型有关。

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

3.意图复杂性

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

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

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

我仍然不知道它是如何工作的……它可以在多少环境中运行……我们甚至不知道它是如何使用的,因为它是一个开源的解决方案。所以,这意味着你可以用它做任何事情。

这种模糊性和差异性使得理解和设计变得困难。当设计安全关键领域的应用程序时,难度会进一步增加。

航空航天/国防行业的一名人为因素领导者描述了为广泛的目标和环境提供灵活性的努力,同时仍在应用程序内检查列表等元素的标准化协议中设计:

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

针对这种类型的灵活性进行设计对于用户的成功至关重要,这些用户可能需要根据手头的情况改变他们的流程、跳过或在工作流程中更改方法。

4.环境的复杂性

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

例如,一名从事床边医疗保健应用程序的UX设计师描述了使用该应用程序的医疗从业人员所面临的环境复杂性,以及由此给从业人员设计应用程序带来的挑战:

他们[医生]有那么多的东西随时在他们面前闪现……除了必须照顾电脑旁边的人……确保它[应用程序上的信息]被精确地提取到某人需要的东西,精确地放在他们需要的地方,这一点非常重要。

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

它的复杂之处在于它有很多方面。如果你在驾驶一架飞机,有实际的飞机本身,内部环境,外部环境,然后是态势感知,然后是飞机的健康和状态,或者你正在控制的任何东西。

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

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

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

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

5.制度复杂性

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

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

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

但在很大程度上,他们(公司)是一个企业,因为他们一直存在,然后他们生产了一百万种产品。然后它们变成了这些旧的遗留产品,它们必须继续工作,因为人们依赖它们,然后它们是旧的、糟糕的代码。然后你有一大群人一直在这里工作,他们用这种方式做事,因为过去就是这样做的,而且很成功。所以,没有什么新鲜事可做。

对演进遗留设计方法的抵制只是制度复杂性为实践者制造障碍的一种方式。同样,我们看到了制度文化的影响和内部政治结构对设计师和研究人员如何被其他角色感知和评价的影响。特别是在具有高领域排他性的工作领域(意味着外人无法获得专门的领域知识),实践者经常发现自己在包括工作领域专家的团队中为信誉而斗争。

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

团队里有很多主题专家。他们在这个领域已经有10多年了……他们有时会忘记(他们已经存在多久了),比如,“嘿,你不是刚来这里就什么都知道。”你得花好几年的时间来提升自己,而任何用户体验领域的人都需要很长时间才能让他们1)理解业务,2)[理解]这些用户目标和动机,以及我们如何才能增强用户体验?

另一位医疗电子制造业的高级用户体验设计师也认同这一点,并建议利用基层的努力,与已经受人尊敬的员工建立合作伙伴关系,以缓解这一挑战:

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

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

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

用户体验从业者经常吹嘘用户上下文的重要性(他们应该这样做)。然而,当涉及到为专门领域设计复杂的应用程序时,定义并使用“上下文”作为一个包罗万象、通用、伞状的概念是不够的。(芭芭拉·米雷尔(Barbara Mirel)在2004年的书中首次提到了这种方法的不足,复杂问题解决的交互设计:开发有用且可用的软件.)

而不是被复杂性或简化你的镜头的背景复杂的应用程序设计和使用时,使用复杂的层作为框架,本文打破来源的复杂性有关你的工作和“看到树木的森林。”必威手机app下载

事实上,在我们最近的虚拟用户体验会议上,复杂应用课程的参与者使用框架作为工具,通过使用共享的词汇和模型来记录和讨论产品的复杂性,使其更易于管理,如下所示。

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

我们也鼓励您使用这个框架,作为领域建模练习的一部分,作为实地研究观察工具,或者仅仅作为与同事讨论工作复杂性的方法。

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

参考文献

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