[备忘.经验总结]该如何排查“棘手”问题?

发于 2024.03.31

首先把这次整理的经验做个记录,希望再次遇到类似的“棘手”问题,可以有一定参照作用。

1、排查复杂问题前,先审视下问题现象是否明确了。不止是问题的表现,还包括出现的环境和条件等。(本案例中的关键信息3,在开始并未明确出来)

2、各线索是否都真实可靠?只有确保了“事实”是客观真实的,我们才能避免被误导或走入误区。(本案例中的信息2.1可能是错误信息)

3、不急于凭感觉尝试各种解决办法,而是先有思路。比如先快速整理出排查问题的关键要素(在本例的打印问题中,关键要素包括打印的原始文件、打印的技术或方式、操作系统环境、打印机驱动、物理打印机、物理打印机上的配置等),然后根据线索分析可能的原因和影响因素,再去有目的和有计划地去逐个排查验证。

4、质疑的态度。遇到解释不通地方,除了可能是认知不足,也可能是信息有误。保持质疑,切忌一条路走到黑。

5、找找身边的“高手”。遇到卡点和疑惑,找合适的人帮助是条捷径。

(虽然并不是所有人都擅长解决“复杂”问题,但如果有需要,通过不断总结形成思路和方法、结合实践,相信能够逐渐提升自己的问题排查能力。)


再来说说这次的案例:    

    这周遇到了一个PDF中图片打印模糊的问题。虽然在项目上成功解决了该问题,但查看排查过程,却发现一些解释不通的地方。本着对产品和对用户负责的态度,有必要去探究问题的真相。
    这里根据我了解到的信息做了简要整理(省略了一些细节),回顾过程如下:

1 反馈问题的用户是新部署的环境(不需要考虑程序和环境的变化)

2 排查过程中得到这些信息:

  2.1 直接用谷歌浏览器打印正常,但我们的组件打印模糊(物理打印机&虚拟打印机都模糊)

  2.2 其中一台问题电脑重装组件后打印变正常了。但拿回重装前的备份文件进行对比,并未发现任何差异。

  2.3 隔天,在重装后恢复正常的机器上问题又重现了,而且再次重装也无法恢复正常。

3 该用户点有5台电脑。其中3台电脑打印有问题,都使用的打印机A;另2台正常,都使用的打印机B。

4 最终的解决方案是将3台问题机器切换到其它打印机,然后打印全都正常。

    如果光看信息1和3,我们大概率会先想到打印机问题,并按4的方式去验证处理(当然,要想进一步确认问题,也还需要去反向验证确实就是打印机A有问题。并且尝试回答为什么浏览器直接打印正常)。并且根据4的现实结果去反推信息2,也会怀疑信息2.2的正确性。

然而,这只是在罗列了所有信息后进行回顾的视角。但在当时,处理人看到是1、2.1和2.2这三条信息,也因此走进了死胡同。

上一篇:数据劫持--Object.definePropertie