本文内容不能帮你直接解决问题,但是试图去帮助更多人去系统有序地思考如何解决手头的问题。对有心人它将很有用,对公司它是工作可延续的一份重要文档。不过,这是一份个人自主总结的完全与公司没有半毛钱关系的也不将对公司公开的私人的但是共享的目前还是草稿阶段的文档。【特此声明】
一、 前言
问题无处不在,或大或小,或易或难,开发初始总是从一个坑踩到另一个坑,产品成型后紧接着BUG的修复,最后版本的迭代以至整个生命周期中都伴随着各式各样的问题。问题对于研发人员来说再平常不过,越到开发的后期,越是会出现系统性的不好解决的难题,因此可以说,一般的独立开发者都是解决问题的能手,对他们来说出现问题是值得兴奋的!
回忆过往,你会发现问题的复杂程度与引起问题点的复杂度没有任何关系,反而与你解决问题的方法、测试手段甚至运气有关,在解决问题的路上,最难缠的莫过于那些“偶发的难探测到”的问题而不是那些“难以追溯的问题”,所有“难追溯”的问题只要能够复现,好比无限复活闯关游戏一样,必会通关。相反那些低概率事件需要更多时间成本,如果可探测性弱那会雪上加霜,所以,在难能可贵的“抓获现场”必须要掌握一定的技巧,需要一些方法论的指导来提高解决问题的可能性和效率。
二、 故障排查
2.1 故障排查的基础
-
熟练使用工具
示波器,万用表等仪器,或者调试工具,循环测试工具等软件工具。
适时定制相关软硬件工具。如独立计数器,测试上位机
-
熟悉目标系统
结构,电路,液路,气路,业务流程
熟悉系统中已有的,也知道系统中没有的。知识积淀当然是多多益善。
-
良好的心态
信心最重要,同时留有后招,在一种试验即将进行的时候,对预判的任何结果都有后续措施,这样能够游刃有余,避免焦躁。
-
一定的策略和思辨力
这是独立于技术之外的一些普遍规律。例如在同等可能性的选项中,验证问题起因的顺序是先易后难;溯源时候定位问题点时有可能用到二分法的思路;对比、类比无处不在,