在产品经理的设计工作中,除了主流程方案的设计,异常情况的考虑也是保证功能上线后可以闭环的不可缺少环节。这篇文章将会探讨一种较常见,但容易忽略的异常情况:兼容性问题。以下将从功能兼容、数据兼容两个角度来分析。
一、功能兼容
当软件或功能存在不同版本时就要考虑向后兼容和向前兼容。
1.向后 (backward) /向下 (downward)兼容
通俗来说,就是向历史版本兼容。该兼容场景比较常见。比如:产品经理经常使用的 Axure 软件,它的 Axure 9 版本可以向下兼容,打开 Axure 8 生成的文档。
2.向前 (forward) /向上 (upward) 兼容
即向未来的版本兼容。这种情况比较难考虑到,因此也相对少见,比如刚刚提到的 Axure 8 版本就无法打开 Axure 9 生成的文档。
(Axure8 无法打开 Axure9 生成的文档)
但有一种特殊情况,当新旧版本的应用,需要通过同一个接口从后台读取数据时,就必须考虑这个问题。
举个例子,某个 App 首页展示的组件是后台动态下发的。此时在新版本 App 增加了组件样式,并且在后台配置了该新样式,旧版本 App 是无法识别的。如果你是产品经理,遇到这种情况,会怎么处理?以下是部分解决方案。
> 方法1:强制升级
如果没有提前考虑好向前兼容,旧版本 App 在遇到后台下发的“不认识”的新组件时会报错,严重的可能会导致 App 崩溃。这时只能启用 App 强制升级机制,让用户升级到新版本才能使用。但由于这种方法的用户体验不友好,一般迫不得已才使用。
(以“大众点评”为例)
>方法2:提前设计好应对方案
在设计旧版本 App 时,如果有提前考虑到后续新增组件样式的可能性,就可以设计好要如何统一处理。
比如,在无法识别的组件区域统一提示:”请更新应用版本”。更好的处理方法是,提前给不同类型的组件加上标签和版本,新增的组件可以通过标签找到对应的低版本组件样式,进行展示。
(以“大众点评”为例)
通过以上例子可以发现,提前考虑到向前兼容,可以更优地解决问题。
二、数据兼容
在产品迭代中,如何进行数据兼容也是要经常会遇到的问题。
1.历史数据按照新规则处理
功能迭代后,部分数据的规则可能出现了变化。此时,产品经理必须定义好,已经产生的历史数据如何按照新的规则处理和显示。
举个简单的例子,在用户的性别资料中,改版前可能存在“男”、“女”、“保密”三个选项,改版后只剩下“男”、“女”两个选项。此时产品经理必须定义好原来用户填写了“保密”的数据如何处理。数据需要清空,还是默认都改为“男”或者“女”。
2.无历史数据时如何展示
新定义的数据指标无历史数据时,经常被当作零处理。比如,微信公众号新增了“在看”功能,历史文章由于没有数据,全被当做数据为零。
在适当的情况下,也可以给用户相应的提示说明。比如,微信在2018年新增了“看一看”、“搜一搜”两个功能入口,这个时间段之前的不会有这两个入口的统计数据。针对这个情况,微信在公众号管理后台增加了提示文案:阅读来源看一看、搜一搜自2018/03/06开始拆分统计,此前计入“其他”来源。
(微信公众号管理后台文案提示)
以上是产品设计中常见的兼容性问题小结。最后给大家一个小 tips,新手产品经理可以把兼容性加入到产品文档的 checklist 中,评审前先自行检查,这样就不会担心遗漏了。
(欢迎关注公众号:一杯 Moscato)