思维的误区:XY 问题

因为生理特性、社会环境、家庭背景等诸多因素,每个人都会有不少思维方式上的缺陷。其中有些普遍性的思维谬误,我希望能够结合自身的经历分享出来,用以备份与警醒。

于是便有了「思维的误区」这个系列。第一个想谈的话题,就是阴魂不散的「XY 问题」。

何谓 XY 问题

如果你点进了上面的那个英文维基百科条目,那对 XY 问题(XY problem)应该已经有了初步的了解。但为了凑字数(而且大家肯定会偷懒),还是在此做一个简单的诠释:

XY 问题,就是某人试图解决问题 X,在向他人寻求帮助时却询问如何解决问题 Y,因为他确信解决问题 Y 是解决问题 X 的正确途径——尽管时常并非如此。

这个解释本身是不是就有点难懂?那不如来看个真实的例子。

一例糟糕的提问

在 XY 问题上,最近的一例大概是我离职前几天内审部门的某名同学提出来的。在和他经历了哑谜般晦涩而冗长的沟通后,我明白了他的需求:「我需要所有 git 仓库赋予的权限名单的并集的大小」。

这似乎很好理解。假设公司有三个 git 仓库 A、B、C,A 仓库授权给了小明和小红,B 仓库授权给了小红和小王,C 仓库授权给了小王和小明,他想要的数据就是所有 git 仓库赋予的权限名单的并集(小明、小红、小王)的大小——也就是 3。

需求相当明确,但也让我着实摸不着头脑。离职心切的我本想满足需求了事,但想到某些 API 令人发指的延迟,和系统设计里的几个暗坑,我还是沉下心来,再次和他进行了一次裹脚布式的交流,他也修正了自己的需求:「我需要能访问 git 仓库的人的数量」。

靠,本来跑一晚上脚本的事,现在需要连查几个部门的系统。我不禁问到:「你要这个数据做什么呢?这个数目大致就是公司研发的数量……」

结果对方一副兴奋的模样:「对,我要的就是公司研发的数量!」

我倒!直接背一个数字给他了事。

在这个例子中,这名同学就犯了典型的 XY 问题的毛病。他想要知道的就是「公司研发的数量」,却不直接发问,而是询问「能访问公司 git 仓库的人的数量」。

尽管在理论上这两个数字大致相等,却实在是舍近求远:能直接给出一个精确的数字,为什么要跑一晚上脚本得出一个偏差值不小的答案呢?

糟糕的提问者们

XY 问题是在寻求帮助与帮助他人时经常掉入的陷阱。正如上文的例子所显示的,某个问题本来有更高效的解决办法,提问者却只询问如何实现他自以为正确的途径;更有甚者,提问者自己意淫出来的路线牛头不对马嘴,即使解决了提出的问题,也很难助其达成真正的目的。

为什么会这样?原因在于不应假设自己的方案就是解决问题的最佳途径,尤其是在自己不擅长的领域。我们自己设想的解决途径可能有根本性的错误,但不提供充足的上下文,别人也就无法帮助我们修正。

一个人大可以一路询问向北的最快途径,但若路线本身就是南辕北辙,那再快的交通工具也无济于事。

问出 XY 问题的人,大抵可以算作「糟糕的提问者」。不仅因为「XY 问题」这个术语起源于《提问的智慧》,更重要的是这是对自己和他人的时间的双重浪费。

如何避免 XY 问题

在沟通过程中出现 XY 问题,一是增加理解成本,二是影响交流的收益。为了高效地沟通,不论是提问者还是被问者,都有预防 XY 问题的义务与方法。

作为提问者

XY 问题的直接责任人就是提问者,直接原因就是提问者没有给出自己的真实目的,而是自己得出了一套方案,只询问他人如何实现这套方案或者其中的一部分。

因此,暴露原始问题是提问者应尽的责任。预先假设出一种方案并非不可,但想要解决的原始问题不可或缺。

故而对于一个 XY 问题,理想的修正如下:

我正在试图解决问题 X,我觉得可以如此这般解决,但我遇到了问题 Y,我应该怎么做?

加入了前面两句对根本问题的阐述,他人提供帮助时就能够顺带评审你的方案的可行性与正确性。自然,如果你的方案本身就足够靠谱,那可以直接就 Y 问题展开讨论,万事大吉。

这样的追根究底还可以继续展开,比如 X 问题又是因为什么而存在的呢?在不导致问题过分延伸,或者显然超出对方职责的前提下,更多的上下文能够更好地辅助决策。

作为被问者

就算我们作为提问者时再自觉避免 XY 问题,被人问到 XY 问题仍然不可避免(苦笑)。当我们察觉到一个问题可能是 XY 问题时,便应该追问提问者:「你想要实现什么效果/目的?」

XY 问题最常见的特征,就是反常诡异,或者看上去过于复杂。其实被问者解决 XY 问题,就是引导对方按照上文的正确提问方式提供更多的上下文信息——我们可以不断询问对方,这个问题所属的方案是要达成什么目的,像剥洋葱一样慢慢剥开对方的心。

前文我举的例子中,对意图的探查其实有点晚。当弄明白他第一个诡异的需求时,就应该抛出这个问题来。

自省的迭代

XY 问题发生在人与人的交流之间,但在日常的思维习惯中,也有几分关联。

XY 问题起源的本质,与我两年前所说的内化有几分微妙的相似:先入为主的观念锁死了思想的宽度,即使是歪路也只能在上面越挖越远。

对 XY 问题的反抗实际上是对既定信念的怀疑,无论这个信念是方案、计划还是思想、信仰。这能避免我们 take everything for granted,在错误的根基上将思想的大厦越盖越高。

正确的思维习惯是怎样呢?就像一个被问者检查发问者有没有提出 XY 问题一般,不断检视赖以为生、理所当然的那些想法是否真的就正常。仿佛笛卡尔「普遍怀疑」的主张。当然,信息的自由与正确的逻辑至关重要,这一部分另有叙述,不再重复。

思维的误区:XY 问题”已有一条评论