見出し画像

"追加でこのLogを送って下さい"は危険!

私は現在企業向けのSecurity改革をご支援させて頂いており、多くのお客様の実証実験のプロジェクトに携わっています。実証実験中にはSoftwareの予期せぬ動作不具合に遭遇するケースが少なくなく、それらの動作不具合の事象を調査しながら根本原因を解析したり回避策を提示したりしながらプロジェクトを進めています。


バグの無いSoftwareは存在しない

Softwareは人やモノから求められるサービスをプログラム言語で実装したもので、何らかのプラットフォーム(例/OS, Library, Framework)上で稼働することを前提としています。プラットフォームの組み合わせはほぼ無限に存在するため、Software開発企業もほぼ無限に存在するプラットフォーム上で事前にテストすることは不可能で必ずバグが潜んでいます。


今わかる事象を元に仮説を立てる

動作不具合に遭遇したら発生している事象を可能な限り単純に定義します。プロジェクトに関与しているどんな立場の人が読んでもすぐに理解できる内容の文と簡単なダイアグラムが良いかと思います。次に関連していると思われるコンポーネントのLogを取得して事実関係を調査しながら、"xxがxxのため動作不具合が発生しているのでは"といった仮説を立てます。


仮説が本当に正しいか検証する

仮説ができたら関係者間で共有して、仮説が正しいか間違っているかを判断するために必要な調査項目を明確にします。調査項目が明確になったら調査に必要な事実(=Log)を収集して調査の準備を行います。仮説の共有が無いままに何となくこのLogを下さい、あのLogを下さいとお客様に依頼してしまうと、依頼されたお客様は"何でこのLogが必要なのかなぁ。当てずっぽうで言っているだけなんじゃないかなぁ。。。"といった不安感が募ってしまうと思います。


別のアプローチを検討し続ける

仮説は今わかる事象を元にした邪推でしかないので100%正しいことはありません。かつ、検証の結果その仮説が正しい場合でも他にもっとよいアプローチがあるかもしれません。一度立てた仮説を未来永劫信用することなく、常に別のアプローチを検討し続けることがより良い結果につながると思います。

この記事が気に入ったらサポートをしてみませんか?