【读书笔记】简约至上

简约至上

1. 产品应保持简单

功能过多的产品的缺陷

  • 越难发现真正对用户有价值的功能
  • 产品维护成本高
  • 难以灵活应对市场变化

技术产品设计的 3 个角度

  • 管理人员
  • 工程师
  • 用户 ⭐️

简单的产品应有的特征

  • 简单不意味着最少化
  • 朴素的设计仍具有自身的特征和个性
  • 简单的特征和个性应该源自你使用的方法、所要表现的产品,以及用户执行的任务

虚假的“简单”

  • 操作向导:把一件事分成几个步骤,却剥夺了用户的控制权 ⇒ 向导过程越长,体验越差
  • 有魔力的角色 ⇒ 看似友好且人性化,实际上让用户被卡通角色牵着鼻子走

2. 如何做到简单

了解你自己

  1. 搞清楚简化用户体验将会如何影响哪些方面

    汽车销售量 * 汽车单价 - 成本 = 利润

  2. 将这些改变排出先后次序 ⇒ 对每项改变的重要性和可行性做出评估

如何描述简单的体验

  • 快速方法:- 用一句话把体验写出来,包括我要设计什么、要遵循哪几条设计规则,尽量使用最简单的术语。

  • 花费时间的更好方法:描述我希望用户拥有什么体验 ⇒ 用户的使用场景,以及我的设计怎么满足用户在该场景下的需求。

准确描述体验需要做的事情:

  1. 走出办公室 ⇒ 拜访用户

    无法控制用户使用软件的环节,而只能使软件设计符合环境需求。

  2. 现实环境受到各种因素的干扰 ⇒ 你的用户体验应该简单到不受这些干扰的影响,能够在人们被打断的间隙生存

  3. 忽略专家型用户

    • 不是典型用户,判断会出现偏差
    • 不会体验到主流用户遇到的问题 ⇒ 他们追求主流用户根本不在乎的功能
  4. 为主流用户设计

    简单的用户体验是初学者、新手的体验,或者是压力之下的主流用户的体验

主流用户

  • 最感兴趣的是立即把工作做完
  • 认为容易操控最有价值
  • 想得到靠谱的结果
  • 只有合适就行
  • 想看到示例和故事

专家

  • 首先设定自己的偏好
  • 在乎操控得是不是很精确
  • 有拆解一切刨根问底的冲动
  • 必须精确匹配
  • 想看的是原理

三种用户类型

  • 专家型用户
    • 愿意探索你的产品或服务,并且会给你提出各种改进建议
    • 希望看到为他们量身定做的前所未有的技术
    • 这类用户总体上占少数
  • 随意型用户
    • 可能使用过类似的产品或服务
    • 有兴趣使用更高级更复杂的产品,但却不愿意接触全新的东西
    • 这一类用户比你想象得少,且学习意愿并不强烈
  • 主流用户
    • 不会因为你的技术而使用你的产品,使用你的产品的目的是完成某项任务
    • 会掌握一些重要功能的使用方法,但永远不会产生学会所有功能的想法

用户从一类人升级为另一类人几乎是 不可能发生的

什么是简单

  • 理解用户的感情需求

  • 简单意味着控制

    • 用户希望感觉是自己在掌握自己使用的技术

      你的设计不能和这种掌控的感觉有什么抵触,而是应该放大这种感觉 ⇒ 产品的响应方式都是意料之中的

    • 用户希望感觉是在掌握自己的生活

      从“掌握自己生活”这一需求出发,进一步问“然后呢?” ⇒ 最终发现用户的感情需求、合理需求,直至解决方案,也有助于对你想要解决的设计问题有一个更深入的理解

      只有知道用户是谁以及他们的真实想法,你才可能有自己深刻的见解。

  • 清楚“用户在做什么”

    • 描述用户从开始到结束一直在做什么 ⇒ 应该对用户行为而不是你的设计最感兴趣 (少描述自己的解决方案)
    • 不能遗漏用户体验过程中的任何一个步骤
    • 通过用户的语言来描述行动的经过,否则就有漏掉关键信息的危险。
  • 描述用户体验

    • 用故事描述对某个问题的认识 ⇒ 可以让读者更容易明白什么重要和为什么重要
    • 多花点儿时间把每一个细节都想清楚
  • 讲故事

    • 故事情节要简短
      • 简单的故事容易记也容易复述 ⇒ 容易传播
      • 容易让别人把这个故事的情节套用到其他环境中
      • 人们会认为你要展示一些重要的信息
    • 不要编造。你的故事必须可信,要想可信必须以真人真事为原型

    好的用户故事应该简明、具体、可信,并且拥有相关细节。

简单的体验能够适应极端条件

用户故事的三个层次

  1. 可信的环境 ⇒ 时间 + 地点
  2. 可信的角色 ⇒ 谁 + 为什么
  3. 流畅的情节 ⇒ 什么 + 怎么样

如何拿出简单的解决方案

  • 用简单的语言把正在设计的内容描述出来 ⇒ 在同一个层次上解释清楚注意功能
  • 故事 + 要解决的问题
    1. 回顾从用户那里收集的素材、他们面对的问题、他们生活的世界
    2. 从你的故事中寻找突破口
    3. 把设计要点按先后次序排列出来
    4. 验证见解 ⇒ 花更多时间观察现实中的人 + 使用原型或者竞争性产品作为辅助
  • 不要匆忙着手设计
  • 与别人分享你的认识 + 让核心理念随处可见

3. 四大策略

3.1 删除

删除杂乱的特性可以让设计师专注于把有限的重要问题解决好,而且,也有助于用户心无旁骛地完成自己的目标

  • “最重要的问题是什么?” + 渐进地添加最重要的功能和内容

  • 避免错删

    要总揽全局,保证只交付那些那些真正有价值的功能和内容

  • 增加价值始于改进核心体验

    • 用户认为那些关系到他们日常使用体验的功能最有价值
    • 能够消除他们挫败感的功能也会受到欢迎
  • 删掉实现得不够理想的功能 ⇒ “沉没成本误区“

    ”为什么应该去掉它“ ⇒ ”为什么要留着它“

  • 理解目的,而不是盯着流程 ⇒ 避免复杂性 ⇒ “还有其他的解决方式吗?”

  • 不保留非必要功能

    功能多对于没有试用机会的消费者有吸引力。但是,在消费者使用了产品之后,他们的偏好就会改变。一下子从重视功能,变成了更重视可用性。 产品承载过多的功能,更有可能降低主流用户的满意度,从而对产品的长期盈利能力造成损害。

  • 测试删除的影响

    • 做出模型让用户使用删除某个功能的影响
  • 如何删除

    1. 确定用户想要达到的目的,并排定优先次序
    2. 专注于寻找能够完全满足优先级最高的用户需求的解决方案,找到之后再满足其他目标
    3. 确定用户在使用产品过程中最常见的干扰源,并将解决这些问题的功能按难易程度排出优先次序
    4. 知道满足主流用户“足够好”与满足专家“精准的”之间的区别

    不要以功能的多寡来认定产品的价值,而应该看产品能否满足用户最高优先级的目标

  • 减少信息负担

    • 删除没人会看的文字
    • 简化布局
    • 去掉重复的链接
    • 精简按钮和链接的样式
    • 减少广告位和广告数量
    • 去掉分散注意力的元素
  • 提供更少的选择能够提升满意度

  • 选择聪明的默认值可以减少用户的选择

  • 删除选项和首选项 ⇒ 不强迫用户去做选择

  • 减少视觉混乱

    • 使用空白或轻微的背景色来划分页面,而不要使用线条
    • 尽可能少使用强调
    • 别使用粗黑线,匀称、浅色的线更好
    • 控制信息的层次(不超过 3 个)
    • 减少元素大小的变化
    • 减少元素开头的变化
  • 删减文字

    • 删除引见性文字
    • 删除不必要的说明
    • 删除繁琐的解释
    • 使用描述性链接
  • 精简句子

  • 避免删除过多

  • “删除”的核心是干掉分散注意力的因素,聚焦于项目

3.2 组织

  • 只强调一两个最重要的主题

  • 分块 ⇒ 景点建议是不多于 6 块

  • 围绕行为进行组织 ⇒ 按用户划分类别

  • 确定分类标准

    • 功能、选项 ⇒ 内部人才知道
    • 按特点分
  • 按字母表排列 ⇒ 看起来简单,实际不可行

  • 搜索 ⇒ 只有在没有提供有效导航的情况下,用户才会使用搜索

  • 按照时间和空间来组织

  • 实现清晰的布局

    • 利用不可见的网格来对齐界面元素
    • 设计不对称的布局来减少局促和受压制的感觉 ⇒ 奇数列或少量元素跨在两列甚至三列上
  • 元素大小和位置

    • 重要的元素大一些,及时比例失调也可以考虑

    • 不太重要的元素小一些

      如果一个元素的重要性为 1/2,那么把它的大小做成 1/4

  • 利用感知分层 ⇒ 颜色、灰色阴影、大小缩放、形状变化

  • 利用色标系统

    • 在确保人们会长时间学习,且重复使用你的设计时,可以使用色标系统
    • 使用人们已经知道其含义的色标

3.3 隐藏

  • 适合很少使用,但自身需要更新的功能
    • 事关细节 ⇒ 如配置
    • 选项和偏好
    • 特定于地区的信息
  • 自定义信息或自动定制 ⇒ 事实上都不适合提供给用户,但是如果需要,可以隐藏
  • 利用渐进式的展示
  • 可以随着用户逐步深入界面而展示相应的功能
  • 适时出现 ⇒ 只在合适的时机、合适的位置上显示相应的功能
  • 提示和线索 ⇒ 应邀探索设计模式
  • 标签放在关注点上比做大重要得多

3.4 转移

把正确的功能放到正确的平台或者正确的系统组件中去

  • 区分移动平台与桌面平台
  • 把复杂性转移给用户,用户知道自己想要什么
  • 了解用户擅长什么 ⇒ 搞清楚把什么工作交给计算机,把什么工作留给用户
  • 创造开放式体验 ⇒ 让一个功能实现多种用途
  • 信任用户有能力完成