8.打破砂锅问道底

“接受别人给的解释。别人告诉你问题出在了什么地方,你就去看什么地方。不需要再浪费时间去追根究底。”

前面谈到的一些习惯是关于如何提高你和团队的技术的。下面有一个习惯几乎总是有用的,可以用于设计、调试以及理解需求。

假设,应用系统出了大问题,它们找你来修复它。但你不熟悉这个应用系统,所以它们会帮助你,告诉你问题一定是出在那个特殊的模块中——你可以放心地忽略应用系统的其他地方。你必须很快地解决这个问题,因为跟你合作的这些人耐心也很有限。

广告:个人专属 VPN,独立 IP,流量大,速度快,连接稳定,多机房切换,每月最低仅 5 美元

当你受到那些压力的时候,也许会觉得受到了胁迫,不想去深入了解问题,而且别人告诉你的已经深入了。然而,为了解决问题,你需要很好地了解系统的全局。你需要产看所有你认为霍问题相关的部分——即使他人觉得这并不相干。

观察一下医生是如何工作的,当你不舒服的时候,医生会问你各种各样的问题——你有什么习惯,你吃了什么东西,什么地方疼痛,你已经服过什么药等。人的身体非常复杂,会受到很多因素的影响。如果医生没有全面地了解状况,就很可能出现误诊。

例如,住在纽约的一个病人患有高烧、皮疹、严重的头痛、眼睛后面疼痛,以及肌肉或关节疼痛,它也许是染上了流感或者麻疹。但是,通过全面的检查,医生发现这个倒霉的病人刚去南美洲度假回来。所以,这病也许并不是简单的流感,还有可能是在新大陆染上的热带传染病登革热。

在计算机世界中叶很相似,很多问题都会影响你的应用系统。为了解决问题,你需要知道许多可能的影响因素。当找人询问任何相关的问题时,让他们耐心地回答你的问题,这是你的职责。

或者,假设你和资深的开发者一起工作。他们有可能比你更了解这个系统。但他们也是人,有时他们也会忘记一些东西。你的问题甚至会帮助探明理清思路。你从一个新人角度提出的问题,给他们提供了一个新的视角,也许就帮助他们解决了一直令人困扰的问题。

“为什么”是一个非常好的问题,事实上,在一本流行的管理图书《第五项修炼》中,作者建议,在理解一个问题的时候,需要渐次地问5个以上的“为什么”。这听起来就像退回到了4岁,那时对一切都充满着好奇。它是很好的方式,进一步挖掘简单直白的答案,通过这个路线,设想就会更加接近事实真相。

在《第五项修炼》一书中就有这样的例子。咨询师访问一个制造设备工厂的经理,就用到了这样一个追根究底的分析。看到地板上有油渍的时候,经理的第一反应是命令工人把它打扫干净。但是,咨询师问:“为什么地板上有油渍?”经理不熟悉整个流程,就会责备这是清洁队的疏忽。咨询师再问:“为什么地板上有油渍?”通过一系列渐次提出的“为什么”和许多不同部门员工的帮助,咨询师最后找到了真正的问题所在“采购政策表述不明确,导致大量采购了一批有缺陷的垫圈。

答案出来之后,经理和其他员工都十分震惊,他们对这事一无所知。由此发现了一个重大的隐患,避免了其他方面更大的损失。而咨询师所做的不过就是问了“为什么“。

“哎呀,只要每周重启一次系统,就没有问题了。”真的吗?为什么呀?“你必须依次执行3次构建才能完成构建。” 真的吗?为什么呀?“我们的用户根本不想要那个功能” 真的吗?为什么呀?

为什么呀?

不停的问为什么。不能只满足于别人告诉你的表面现象,要不停地提问知道你明白问题的根源。

切身感受

这就好比从矿石中采掘贵重的珠宝。你不停地筛选掉无关的物质,一次比一次深入,直到找到发光的宝石。你要能感觉到真正地理解问题,而不是只知道表面的症状。

平衡的艺术

□你可能会跑题,问了一些与主题无关的问题。就好比是,如果汽车启动了,你问是不是轮胎出了问题,就是没有任何帮助的。问“为什么”,但是要问道点子上。

□当你问“为什么”的时候,也许你会被反问:“为什么你问这个问题?”在提问之前,想好你提问的理由,这会有助于你问出恰当的问题。

□“这个,我不知道”是一个好的起点,应该由此进行更进一步的调查。而不是在此戛然结束。