产品设计的数据分析方法论
前提
- 计算机的核心功能是 存储, 计算, 呈现
- 软件产品,就是以数据作为核心的载体,通过某些对数据的处理,组织,分析,呈现的方法进行理念的声明或者功能的实现,根本目的是改变现有主体(人和信息)之间的关系
- 本方法论适用于个人开发者、小团队工具类产品的设计与分析,尤其适合CLI工具、本地应用、轻量服务。
- 六个数据维度是核心理念的物化载体:理念决定每个维度的设计边界,维度设计共同支撑理念落地,最终重塑主体间关系。
- 因而我将产品设计中对数据的生命周期分为六个部分
- 数据的输入: 从数据源获取数据并转化为系统可识别的格式,完成数据从外部到内部的首次写入,严格限定为用户的显式交互
- 数据的存储: 以物理的方式存储数据,核心是数据物理上在哪里,数据在物理上的所有权分配
- 数据的处理: 根据某种特定类型的输入对现有的数据进行基本的CRUD的处理,限定了数据变化的方式和边界
- 数据的分析: 通过一些更加复杂的方式对数据中具有的信息进行挖掘和提纯,获取更高纬度的数据价值
- 数据的分发: 通过某种方式对数据进行封装,在网络中传输,并且通过一些限定来明确谁能拿到这些数据
- 数据的呈现: 以某种特有的方式呈现数据的逻辑关系,决定了使用者以什么样的方式看待数据
输入
- 数据的输入决定了用户以何种形式与软件进行交互, 我认为一个很好的变革就是从电子邮件到微信这类社交媒体
- 电子邮件的输入: 目标邮箱,标题,信息,发件人,附件
- 微信的输入: 目标(通过点击进入对话界面实现而不需要手动输入), 任何形式的信息(可以是一条文本消息, 语音, 文件, 图片, 位置信息等等)
- 事实上, 微信最大的优势就在于输入方式的改变,让网络沟通的门槛大大降低,在微信的这种输入方式下,所有人都能通过简单的方式进行网络通信
- 输入设计遵循最小必要原则:只收集完成核心功能必需的数据。
- 例:wt的
wt upload <文件路径> [包名]仅需文件路径,对比传统仓库需填写大量元数据,极大降低门槛。
存储
- 数据的存储决定了数据的物理位置,很多软件越来越注重于本地存储, 这与日益增加的信息主权的需求密切相关
- 根本的原因在于,对于服务商来说,在服务器上的海量用户数据在很多时候都具有很高的商业价值,并且如果对于用户来说,这些数据也非常有价值的话,用户的粘性和可持续性会变得很高,而可持续性的产品是最被服务商青睐的,因为相比于一次性的交易,提供存储和计算服务可以获得源源不断的稳定收益, 这对于长期发展是非常重要的
- 所以我们会看到, 支持本地存储的软件,开源的居多,并且商用软件需要购买使用权。这背后的底层逻辑就是数据物理上在谁手上,这决定了数据最根本的所有权
- 数据所有权包含三层递进:物理所有权(存在哪)、访问控制权(谁能看)、导出权(能否带走)。
- 例:wt所有包以原生文件存储在用户指定目录,用户可直接通过文件管理器备份迁移,完全掌握数据主权。
处理
- 数据的处理是很多传统也是现代的软件必不可少的一环, 其中最具代表性的就是 CRUD, 它说明对于一个软件产品来说, 数据的可变性是必不可少的一环,这种可变性提供了无限扩展的价值, 当数据源源不断地进行积累,其价值往往也会变得越来越高, 这也是保证用户粘性的很大一部分原因。
- 一个非常典型的例子就是微信的聊天记录,对于情感生活丰富而且重度依赖微信的用户来说,聊天记录承载了ta大部分的回忆,并且这会随着时间的积累越发明显,只使用过一天并且没有什么要事发生的微信和一个使用了十年并且记录了一路的回忆的微信的价值完全不在一个量级
- 因而我们可以说数据的基本处理是必不可少的一环, 事实上, 它的本质依旧是数据的输入和处理,这里单独讲是因为它在现代软件工程当中是举足轻重且很多时候必不可少的一环
- 数据处理分为基础CRUD操作和场景化业务处理,后者是产品差异化价值的核心。
- 例:wt的基础处理是文件上传下载,业务处理是标签管理和元数据同步,通过两级Token控制操作权限。
分析
- 数据的分析是从原始的数据中提炼出更加高纬度的价值并显式或隐式地给出下一步的实践建议的过程
- 从金融市场最直观而简单的收益曲线到复杂的定投全年模拟和预测, 从心理调查的测试到深入的ai问答心理分析, 分析的方法有很多, 但是近几年来AI的发展正在产生一种全新的分析范式 -> 从隐式的价值呈现到自然语言的显式价值呈现, 并且AI能够带来更深入的信息挖掘的可能
- 分析分为显式分析(直接给用户看,如收益报告)和隐式分析(优化系统本身,如推荐算法)。
- 例:wt目前仅显式展示包大小、上传时间;未来的镜像源自动选择属于隐式分析,自动为用户选最快下载源。
分发
- 典型的代表就是 http -> https 协议, 中心化网络服务 -> tailnet 点对点信息传递 的转变
- 对于不同类型的服务,必须要分析清楚合适的信息分发方式, 在大多是场景下, 中心化网络服务 + https 是够用的, 但在一些特殊的场景下,点对点的通信, 去中心化的网络则是更好的选择
- 这一点, tailnet做了非常好的变革, tailscale默认没有网段这个概念, 所有的设备点对点进行连接,每个人都可以部署自己的服务并成为服务的提供者,也让一些对称架构的软件成为可能
- 分发设计需平衡三个核心属性:安全性、传输效率、范围可控性。
- 例:wt内部分发用HTTPS+Token控制权限,公开分享集成Tailscale Funnel实现点对点加密传输。
呈现
- 数据的呈现是数据到用户的最后一公里, 解决的是逻辑上数据如何组织的问题
- 事实上, 我们日常使用的文件系统也是一种巧妙的数据呈现设计, 在文件系统中看到的树状的文件关系, 并不是数据真实的物理存储方式, 而是使用指针对数据的逻辑关系进行呈现的,这让我们可以搭建出清晰的逻辑结构
- 还有一个例子是siyuan笔记的网状思维导图, 将markdown文件中的各个概念呈现在一张图上, 打破了线性的思维, 扩展了想象的空间
- gnome的桌面没有任何的图标, 支持插件实现一个工作区只放一个窗口, 全程全屏模式, 这种信息的呈现方式带来了线性专注, 开发者一次只专注于一件事, 没有任何多余的干扰, 让开发者更容易进入高效的心流状态
- 呈现设计遵循分层优先+多视图适配:核心信息突出展示,同一批数据可适配不同场景的呈现方式。
- 物理存储与逻辑呈现的分离是现代软件设计的核心:不改变底层数据,仅通过改变呈现方式就能创造全新体验。
小结
六个维度形成完整的数据闭环,任何一个环节的设计偏离,都会导致核心理念无法落地。