試行錯誤の結果、起きたこと

日本では、まず自分の力で試行錯誤することが尊ばれるし、まわりからも評価される。だが、IT技術者には試行錯誤がとても良くないのである。もう一つ例を挙げよう。

あるとき日本に一時帰国中に作業していると、ログを管理するプラットフォームで、ログファイルを見ると完全に正常に動いているようにしか見えないのにクラウドのポータル(最初に表示されるWebサイト)のほうには、遠隔からのデータ(テレメトリ)が来ていないという奇妙な現象が生じた。

チームのメンバーにTeamsで画面共有をして、「ほら、出ないでしょ?」と見せると、なぜかそのときはテレメトリがポータルに来ている。その後自分で何回試してもやっぱり出ない。

もう一回別のメンバーに助けを求めるチャットを書いて「Fiddler(ネットワークのモニタリングを行うツール)使って分析したらいいんじゃね?」とアドバイスをもらった瞬間にポータルを見ると、今回だけテレメトリが出ているというまるで呪いのような症状だ。

そこで私は、いろいろと試行錯誤した。パケットがたくさん送られたときにカットされてしまうのが原因か、ポータル側でフィルターがかかったのか等、様々なアイデアが錯綜さくそうする。

スクリプト(簡易的なプログラミング言語)を改造したり、ログ出力をファイルのみにしてみたり、スクリプトの実行パターンを数個だけにしたり……私は各パターンを試して問題解決をはかろうとした。

「何も成長していない」

だが、丸一日つぶしたあげく、これらの試行錯誤はすべて失敗に終わった。ふと、チームの一人が「ちゃんとデータは出ているよ」と説明してくれたことが脳裏によぎった。そう言えば、彼女は、スクリプトを使わず手動でテストしていた。

自分も試しにスクリプトを使わず、手動で実施してみた。すると完璧に動作した。

問題は「スクリプト」だったのだ! そこから意味不明の挙動の正体を特定し、問題を完全に解決した。

問題は解決できた。一日以上使ってやっと。

しかも振り返ってみれば、丸一日かけたのに、私は「何も成長していない」のだ。単に思いつきでいろいろなパターンを試して正解を探しているだけなので、とても時間がかかる上、新しい知識を何も学んでいない。

まったく同じ状況で、同じ問題が起こったら、メモをとっておけば、次回の解決に役立つだろうが、問題が少しでも違えばお手上げだ。似たような問題が生じれば、また同じだけ時間を使ってしまうことも十分あり得るのが残念すぎる。