NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割

人们与复杂性之间的关系很奇怪。我们往往将简单的问题复杂化,同时又可能将复杂的问题过于简化。无论哪种情况,这种复杂性偏差都会导致一种普遍的心态,即越复杂越好——在构建产品时,这通常表现为相信更多的功能会为用户提供更多的价值。

然而,增加更多功能通常会适得其反。如果我们总是不能认识到复杂性陷阱的诱惑,在解决问题时不努力打破这种消极的思想模式,结果可能是灾难性的。

1、复杂性的蛊惑力

大多数产品经理都熟悉Occam 剃刀,这是一个原则,即当提出多个相互竞争的解决方案时,最简单的解决方案很可能是正确的。但是,要找出最简单的解决方案说起来容易做起来难。

复杂的问题将有许多潜在的解决方案——并不是所有的解决方案都是平等的。此外,几乎总会有比简单解决方案更复杂的解决方案。根据定义,复杂的问题很难理解,更不用说找到一个简单的解决方案了。

其次,很容易将简单的解决方案(Simple Solution快速解决(Quick Fix方法混淆。通常,我们评估的初始问题是由根本问题引发的表面问题。如果不花时间深入探讨这个问题,我们很可能会创建一个权宜方案,它不能解决根本问题,并且给产品本身增加了不必要的复杂性。

人们不仅在处理复杂问题时会犯复杂化错误,处理简单问题时也同样可能复杂化。问题越不复杂,就越容易对此发表意见,结果是更多的关注和辩论,这往往导致过于复杂的解决方案。这就是常说的车棚效应或琐碎定律。

当涉及到问题时,复杂性水平与前期规划成反比。这就是为什么我们最终为简单和复杂的问题都提供了过于复杂的解决方案。在每种情况下,对复杂解决方案的偏见都让我们相信自己做出了正确的选择:

上图展示了产品的复杂性悖论:我们过于复杂化简单问题,而对困难的问题过于简化——这导致复杂的解决方案和权益修复方案,以及一些负面的产品影响。

2、复杂性对产品的影响

我们过度复杂化简单问题、同时又过度简化困难问题的倾向,以及对复杂解决方案的迷恋,将导致一些现实问题:

2.1复杂性的成本和局限性

随着产品变得更加复杂,相关的业务也必须变得更加复杂,因为它需要更多的人来处理类似于下面列出的这些问题:

  • 内部和最终用户的沟通和培训
  • 不断增长的特性集和相关的依赖关系的维护和性能
  • 维护更多特性的运营和支持

复杂性的增长限制了产品和业务的进一步增长、规模化和变革能力。在同一页上获得 50 人比获得 1500 人要容易得多:修改只有 5个核心功能的产品要比修改有500个核心功能的产品容易得多。

2.2 复合效应

选择一次更复杂的方案可能会导致有限的额外复杂性,但是,如果10次都选择更复杂的解决方案将导致巨大的产品复杂性。这是因为复杂的解决方案会滋生更复杂的问题,并且它们开始指数级叠加。

此外,随着系统复杂性的增加,由于系统依赖性增加,添加任何新功能变得更加困难。有时的确需要复杂的解决方案,但通过尽可能选择简单的解决方案,它将使实现所需的复杂解决方案更加容易。

2.3 用户体验

很容易认为复杂的解决方案对最终用户更好,因为这些复杂的解决方案往往提供更多的功能。重要的是要记住,更多的功能也会增加更多的复杂性,要求最终用户思考的更多,使产品更难上手。

如果能够真正解决关键问题,那么提供更多的功能的确很棒。但是,由快速修复和表面问题引发的新功能最终会导致用户端不必要的复杂性。

我们通常不是简化当前的功能特性集的可用性,而是粗暴地添加更多功能。这是一个简单的选择,让我们面对现实吧,客户总是会要求更多——但这是让伟大的产品淡入平庸的道路。

3、如何简单而伟大

现在我们知道为什么找到一个简单的解决方案来解决一个复杂的问题是困难的,并且复杂的解决方案可能是个大问题。那么,我们可以采取什么步骤来限制产品的复杂性?

3.1 通过产品映射找到复杂性基线

软件非常抽象,因此很难将产品的"大小"概念化——这使得很容易低估其复杂性。理解产品复杂性的第一步是使抽象更加具体,这可以通过产品映射完成,即Product Mapping。

产品地图(Product Map)是产品的所有特性以及相互关系的物理地图,它使我们能够了解总体的复杂性水平,以及更改已有特性或添加新特性到产品的潜在影响:

依赖性地图(Dependency Map)的复杂性将直接与产品的复杂性相关。高度复杂的产品可能需要多层地图。某些产品能够在单一级别列出核心模块以及模块之间的交互。更复杂的产品将需要第二层级的地图来勾勒出模块内部的交互。

产品地图的目标是建立产品复杂性的有形基线(Baseline)。这使我们能够解释产品推进过程中的复杂性。思维映射工具是创建产品地图的一个很好的起点。

3.2通过整合性思维创造惊人而简单的解决方案

整合性思维是拥抱复杂性的绝佳方式,并将其用作寻找最佳解决方案的工具复杂的问题带来了多种解决方案,每个解决方案都有其自身的复杂性和积极属性。整合性思维平衡了每个解决方案的积极因素,并致力于创建单一的、更好的解决方案。

找到解决复杂问题的简单方法往往需要跳出既有框架进行思考——这可能是困难的,因为我们是习惯性生物,而我们内心的偏见会导致盲点。整合性思维利用一组不同的观点来简化框外思维(Outside the box thinking)。

这最适合于一组不同的观点,因为这增加了提出相反观点的机会。其次,个人或团体走到一起,提出他们的想法,并努力达成一个精简的解决方案:

  1. 分歧(Diverge):让多人或多个小组评估问题并提出推荐的解决方案。贡献者的观点越多样化越好,因为它更有可能产生多样的选择。
  2. 汇聚(Converge):聚集在一起评估所有选项。有些解决方案将立即被驳回,另一些解决方案可以被视为具有潜力。在潜在的解决方案中,可能有些要素会重叠。权衡每个潜在解决方案的利弊,找出潜在选项的汇合点,并创建单个整体解决方案。
  3. 简化(Simplify):统一多个解决方案的过程很可能会导致复杂度高于最佳级别的解决方案。在组成员中具有多个视角也有利于简化解决方案,因为它允许对解决方案真正必不可少的部分进行更高水平的压力测试:

正如所有解决方案应该的那样,这是一种迭代的方法,通过最终用户对解决方案的测试,来确保它真正解决核心问题。其结果是一个验证的、整体的、但简化的解决方案。

4、不要害怕复杂性

复杂性是构建产品的必然组成部分。我们可以选择忽略它,并长期付出代价,或者选择拥抱它,并为我所用。

虽然我们无法控制复杂性的发生,但我们可以控制如何应对复杂行。作为产品领导者,我们的工作是了解复杂性对我们产品的影响,并尽可能不断寻找更简单的解决方案。


原文链接:The Product Complexity Paradox

BimAnt翻译整理,转载请标明出处