ムニエルブログ

ムニエルのブログ

日常生活で問題が発生したら『問題の切り分け』で解決しよう

みなさんは、日々の生活においてなんらかの問題が発生した際、どのように対処していますか?
我々エンジニアの間では、『問題の切り分け』を行なって解決するというセオリーがあります。

問題の切り分けとは

『問題の切り分け』とは、問題の原因となりうる要素を細分化し、互いに切り分けることです。
主にプログラムにおけるバグの原因を特定するために用いられる手法ですが、日常生活においても有用です。

問題の切り分け方

日常生活における例として、「iPhoneでYouTubeが見れなくなった」という問題に対して、問題の切り分けによる解決を試みます。

iPhoneでYouTubeが見れなくなった!

A「助けて!iPhoneでYouTubeが見れなくなったの!」
B「それは大変だね……じゃあ今から『問題の切り分け』をしようか」
A「問題の切り分け?なにそれ?おいしいの?」
B「ケーキじゃないよ」
A「じゃあなんなの?」
B「問題の切り分けっていうのは……まあ、説明するより実際にやってみたほうが早いかな」
A「どうすればいいの?」
B「今からいくつか質問をするから、それに答えていってほしい」
A「Akinatorみたい」

ネットワークの問題?

B「YouTube以外のサイトは見れる?」
A「うん」
B「ということは、ネットワークの問題ではないね」
A「どうして?」
B「もしネットワークに問題があれば、他のサイトも見れなくなってるはずだよね?」
A「なるほど!」

サーバーの問題?

B「YouTubeのサイト自体は見れる?」
A「うん」
B「ということは、サーバーの問題ではないね」
A「どうして?」
B「もしサーバーが落ちてたら、サイト自体見れなくなってるはずだよね?」
A「なるほど!」

動画の問題?

B「他の動画は見れる?」
A「ううん」
B「ということは、動画の問題ではないね」
A「どうして?」
B「もしその動画だけの問題なら、他の動画は見れるはずだよね?」
A「なるほど!」

アプリの問題?

B「他のアプリでは見れる?」
A「Safariでは見れないけど、YouTubeのアプリでは見れるよ」
B「ということは、アプリの問題である可能性が高いね」
A「どうして?」
B「もしそのアプリだけの問題ではないなら、YouTubeのアプリでも見れないはずだよね?」
A「なるほど!」

コンテンツブロッカーの問題?

B「ところで、Safariにコンテンツブロッカー入れてたりする?」
A「うん。最近入れたんだ」
B「試しにオフにしてみて」
A「あ!Safariでも動画が見れる!」
B「ということは、 問題の原因はコンテンツブロッカーだったわけだ」
A「うーん、動画が見れないのは困るし、オフにしておこうかな」
B「それがいいだろうね。YouTubeに限らず、多くのウェブサービスは広告収入で成り立ってるんだ。みんなが広告を見なくなると、サービスが有料になったり、継続できなくなってしまう可能性もあるんだよ」
A(作者の操り人形め……)

おわりに

今回は説明の都合上会話形式でお送りしましたが、問題の切り分けは一人でも行なうことができます。
まったく見当がつかないような問題も、切り分けてみたら案外単純なことが原因だったりするものです。
日々の生活でなんらかの問題に直面したら、試してみてください。

参考リンク


犬とハサミは使いよう (ファミ通文庫)

犬とハサミは使いよう (ファミ通文庫)