故障排除:永不过时的技能

主要观点:

  • troubleshooting 是系统地确定系统中不良行为的原因并加以修复,很多领域的工作可归结为这一技能,且该技能可单独磨练。
  • troubleshooting 通常是隐性学习,很少被单独讨论为一种技能,但有效方法的许多特征是领域无关的。
  • 介绍了一系列 troubleshooting 的步骤和技巧,如退后思考、确保调整正确的部分、确定流程、观察症状、隔离问题、断开子系统、找到好的切割点、平衡获取信息和尝试修复、了解风险、不要过度思考、保持耐心、获取系统信息等。

关键信息和重要细节:

  • troubleshooting 心态需对系统底层结构感兴趣、有耐心、注重细节和坚韧,有时缓慢、深思地处理更有效,避免陷入反应式解决问题而不思考真正原因。
  • 确定要调整的正确部分,如弹吉他时确认调的是正确的弦,调试系统时先做有确定效果的事,如拉动可能有问题的电线等。
  • 从系统流程入手,确定输入、输出和转换,将不同类型的物质分组为子系统,在电气、机械、软件等系统中可通过物理追踪等方式进行。
  • 观察症状,根据症状缩小受影响的子系统,意识到理解系统往往是 troubleshooting 的障碍,即使自认为了解系统也可能不完全。
  • 隔离问题,形成关于问题的假设,先排除最容易和最可能的问题区域,进行非正式二分搜索,找到最简单的方法来证伪假设。
  • 可能时断开要调试的子系统,以避免与其他系统的奇怪交互、保护其他系统和缩短反馈回路,也可通过探针在不同点进行测试。
  • 找到好的切割点,如火花塞,测试系统内部和与外界的接口,以确定问题所在。
  • 平衡获取信息和尝试修复的努力,根据对问题难度的先验判断来决定何时尝试修复何时收集信息。
  • 了解 troubleshooting 的风险,包括对调试者、旁观者、系统和他人的危险,根据风险调整处理方式。
  • 不要过度思考或假设问题简单或复杂,要有耐心,获取关于系统的信息,包括知道使用何种搜索引擎、如何用搜索运算符缩小或扩大搜索范围、学会从系统中获取信息等。
  • 短反馈回路有助于调试,可通过多种方式实现,如减少代码中的硬编码超时等;减少系统中的噪声,断开子系统和缩短反馈回路都有帮助。
  • 用写作作为 troubleshooting 工具,如进行橡皮鸭调试和留下线索,还可通过向黑箱系统输入特定内容来排查问题。
  • 理解问题,找出真正导致故障的原因,而非简单更换部件,好的 troubleshooter 应知道何时放弃寻找根本原因而采用更高效的解决方案。
  • 关于 troubleshooting 是否可教,作者正在思考通过实验来验证阅读相关文章对 troubleshooting 技能的影响。

最后还分享了一些 troubleshooting 故事,并邀请读者帮忙排查文章中的问题。

阅读 9
0 条评论