ITエンジニアという仕事、時折「謎解き」をすることがあります。
よくあるシーンが「プログラムのバグ修正」とか「ネットワークトラブルの対応」とかですね。
そんな時、私が社員によく言うことがあります。
「それは、ファクト(事実)か?」
という質問です。
多いのですよ。
「目の前で起きた事象の原因」をあらかじめ想定し、それが「ファクト(事実)である」と「思い込んで」しまうこと。
例えば、プログラムエラーが発生して問題箇所を探す際、出力されたエラーメッセージは有力な手掛かりですが、たまに「エラーの本当の原因はエラーメッセージには表示されていない」というようなことがあります。
専門的になりますが、真の原因は単純な変数の型変換エラーで、TRY-CATCHでエラーステップに飛んだ先の処理に問題があって、メッセージではそちら側のエラーが表示されている、などのケースです。
ネットワークトラブルなどでは、「そもそも違うルータに繋いでいた」といった、拍子抜けするような単純な原因が、さんざん時間使って色々試した後に判明する、とか。
昔、同業種の先輩が
「デバッグは推理小説だ」
と言ったことがありますが、なるほど言い得て妙です。
本来、「仮説」でしかないものを「ファクト(事実)」と思い込み、それを基にして様々な調査や検証を行ってしまうと、思考は迷宮入りしてしまいます。
ひとたびそうなってしまうと、そこから正解にたどり着くまでに延々と遠回りを余儀なくされてしまうのです。
本当に時間泥棒なのですよ。「思い込み」って。
だから、何か問題が発生して原因を追究する際には、「仮説」と「ファクト(事実)」をくどいくらいに明確に切り分けながら作業を進める必要があります。
いちいち
「それは、ファクト(事実)か?」
という自問自答を繰り返しましょう。
それが、「情報システム開発」という仕事を順調に進めるための、とても重要な考え方の一つだと、私は思います。