Cynefin 框架与软件工程中的认知行为模式

300 阅读4分钟

Cynefin 框架与认知行为模式

Cynefin(发音为 kuh-nev-in),是一个威尔士语单词,表示我们所处的环境和我们的经历中存在着多种相互交织的因素,这些因素以我们难以完全理解的方式影响着我们。Cynefin 框架是由 Dave Snowden 最早在 1999 年提出的,用于帮助了解环境并做出决策动作的行为分析框架。通过自身认知与环境的匹配程度做出决策,判断什么是真正复杂的,什么是不复杂的,从而做出恰到好处的响应。

Cynefin 广为传播是在 2007 年登上哈佛商业评论的时候,通过对环境中已发生事件的因果关系判断,提供领导者决策视角。在软件开发领域,它与敏捷宣言一起成为了思想和实践的源泉,与知识工程结合证实了这是一种有效应对复杂度的框架。

下面这张图是 2021 年更新的 Cynefin 框架,它把决策上下文(Contexts)分成了五个域(Domains),处在不同的域会有不同的认知行为模式。Cynefin 框架特别强调这不是对问题域的划分,而是对认知行为模式的划分,因为复杂性更多的是一种思考世界的方式。

The Cynefin® Framework

清晰模式

清晰模式(Clear)指的是要解决的问题稳定并且有清晰的因果关系,容易分辨容易理解,也就是「已知的已知」(Known Knowns)。

认知行为表现为感知(Sense)- 归类(Categorize)- 响应(Respond) 。感知问题后,可以归类到已有的解决方案中,最后使用方案做出响应。比如根据 Git 提交规范(Conventional Commit)选择代码提交类型。

清晰模式是最受推荐的认知行为模式,知识得到充分吸收与应用,认知成本低、效率高,凝结了各种各样的最佳实践。

庞杂模式

庞杂模式(Complicated)指的是问题的解决有多种可行方案,也有着清晰的因果关系,只是能否从复杂环境中识别出这种关系依赖经验与分析能力,就是「已知的未知」(Known Unknowns),也称之为专家模式。

认知行为表现为感知(Sense)- 分析(Analysis)- 响应(Respond) 。庞杂模式相较于清晰模式的不同是感知后的处理方式,分析出选择哪种解决方案,也就比清晰模式有更高的认知负载和更低的认知效率。比如工程师了解 CPU、内存、中间件等出现性能瓶颈时的表现与解决办法,系统性能出现瓶颈时就要敏锐查找到潜在的关联,找出根因,具备性能分析与优化能力的一般都称之为性能专家。

复杂模式

清晰模式与庞杂模式在感知前可以确定有可行方案选择,统称为有序模式(Ordered),而复杂模式(Complex)是没有可行方案选择的,只能通过不断反思来找到真正的问题与解决方案。也无法借鉴已有规则与经验,状态是「未知的未知」(Unknown Unknowns)。

认知行为表现为探测(Probe)- 感知(Sense)- 响应(Respond) 。无法预见解决方案就要大量探索学习,认知负载远超有序模式,比如业务创新或创业。不可言说知识的传递主要就工作在复杂模式下,应用社会化活动对不可言说知识学习与传递。

混乱模式

混乱模式(Chaotic)没有可行方案,无法确定因果关系,寻找答案都是无意义的 ,是一种「不可知」(Unknowables)状态。

认知行为表现为行动(Act)- 感知(Sense)- 响应(Respond) 。这是应激反应而不是基于知识的反应,需要快速建立秩序,尽快回到复杂或有序模式下。

困惑模式

困惑模式(Aporectic/Confused,也就是图里的 AC)也是无序模式(Disordered),是一种低级认知,往往开始于想要进入一个领域的时候,对要解决的问题还没法理解,也没法做出决策。

模式转化与应用

Cynefin 提供了认知行为动态转化的工作过程,Cynefin Dynamics

Cynefin Dynamics

认知行为可以沿着线条流动,经过检查点就会发生质变。可以简单分析出几条实践经验:

  • 清晰模式、庞杂模式和复杂模式才是对知识工程有重要意义的,前两者需要知识消费,后者有大量知识消费
  • 清晰模式是最令人向往的,但并不是所有模式都可以有最佳实践,因为它的流入流出成本都很高昂
  • 复杂模式不能做过多规划,更需要做大量试验和尝试
  • 知识工程要避免进入混乱模式,控制复杂模式,尽量处于有序模式工作