「禅とオートバイ修理技術」に学ぶデバッグの定石
仮説なき試行錯誤はデバッグのアンチパターン
「禅とオートバイ修理技術」という本を読みなおしていたのですが、これぞまさにトラブルシュート/デバッグのあるべき姿!という話が出てきたので書き留めておこうと思います。
「デバッグをしているときにサルのダーツ投げのように下手な鉄砲を沢山打とうとするのはよくない」という話はJulia Evans氏もおっしゃっていた話ですが、どうしてもやっちゃいますね。ほんと気を付けようと思います。
焦らずに1つ、1つ事象を書き出すことを意識して。。
引用
バイクのメインテナンスはそれほど複雑なわけではない。だがもし 混乱するようなことが出てきたら、そのときは焦らずに客観的に見直してみる ことが肝要である。生じた問題を一つ一つ書き留めるという行為は、混乱した頭をもとの漠然とした状態に戻してやることになる。 (略) ノートにはあくまでも論理的な記述をする必要があるが、分類するとすれば、それは六つのカテゴリーに分けられる。
_
(1)問題点の記述
(2)原因の仮設
(3)各仮説をテストするための実験
(4)実験結果の予想
(5)実験結果 (6)実験結果から導かれた結論
_
(略)これらの目的は失敗を導きかけない誤った考え方を、正確に処理することである