はじめに
トラブルシューティングが苦手で、途中で投げ出してしまう方向けに記載しました。
- なぜ答えに全然たどり着かないのか
- なぜ途中で「本当に調べたかったこと」を忘れてしまうのか
- どうやって調べはじめたらいいのか
このあたりの気づきになれば幸いです。
また、「私はこうしています!」などの情報がありましたら、
いただけると今後の成長につなげられます。
急ぎの人向けのポイント要約
調べても調べても進まないときは下記を書き出して整理してみると良いと思います。
調べていない検索ワードのパターンや、試していない対処パターンの気づきが得られるかもしれません。
また、誰かに聞くときの材料にもなりますし、
自分が何を調べて何が分かったのかを振り返ることもできます。
慣れてくると書き出しも要らなくなってきます。
キーワードのチョイスも上手になってきてトラブルシューティングが早くなってきます。
- 目的 : 「何を解決したかったのか」
- 例) javaのプログラムを書いたけどエラーが出て動かない
- キーワード : トラブル時にでてきたワード・エラーログそのまま など(慣れてない場合は多めになるかもしれません)
- 例) IOException, java, java11, Eclipse, jdk...
- 調べたこと と その結果
- 例) 「java IOException」で調べた結果、「java Platform SE8」のサイトがヒットして、入出力の例外であることが分かった
極端な2つのパターンの調べ方
1つのことをとにかく深堀して調べるパターン
こちらのパターンでは、とにかく1つのことを徹底的に調べます。
「可能性1」について調べた後、出てきた分らない「用語1」「用語2」「用語3」について徹底的に調べ上げ、
完全に理解しようとします。
例)javaのプログラムを書いたけどエラーが出て動かない場合
- 「IOException」というエラーログが見えたので、「IOException」について調べる
- 「入出力例外」がよくわからないので調べる
- 「割り込み シグナル」がよくわからないので調べる
- :
この調べ方のメリット/デメリットは下記になります。
デメリットの★に陥ってしまったりすると、「よくわからない!」と、
あきらめて投げ出してしまうこともあるのかなと思います。
- メリット : 専門的な知識まで付けられる
- 原理的なところまで理解しようとすることができる
- 詳細に調べるので、深く理解したうえで判断ができるようになる
- デメリット : 正解にたどり着きづらい
- 1個ずつ丁寧に調べるので、正解にたどり着くまでに時間がかかる
- 深堀しているうちに「本当は何を調べたかったのか」を見失う★
- 「完全に理解」できない言葉が多く、1つの可能性から抜け出せなくなることがある★
色々なことをとにかく幅広く調べるパターン
こちらのパターンでは、とにかく色々な検索・解決方法を試してみます。
よくわからないワードがあったとしても、特に深堀はしません。
例)javaのプログラムを書いたけどエラーが出て動かない場合
- 「IOException」というエラーログが見えたので、「IOException」について調べる
- 「エラー行」に「try~catch~」を書きましょうと出たので、見よう見まねで書いてみる
- 「ファイルが作成されているか?」の確認を推奨されていたので、確認してみる
- 「ファイルの権限が正しいか?」の確認が推奨されていたので、確認してみる
- :
この調べ方のメリット/デメリットは下記になります。
今後につなげたいかや、置かれている状況によっては、
デメリットの★部分を気を付ける必要があると思います。
- メリット : 正解にたどり着くのが比較的に早い
- 色々試すので、とりあえず目的を達成することができる
- 本来の目的を見失い辛い
- 1つの可能性にはまって抜けられないことがない
- デメリット : 正確な知識が得られず真の原因が何だったかを把握しづらい
- 詳しく調べないので、「本当はこれが問題だったんだ」という知識を得られづらい★
- 浅い知識のまま終わってしまう可能性がある
- 色々試したりするので壊してはいけない状況や環境では危険★
結局どちらが良いの?
どちらかに偏り過ぎず、いい塩梅で組み合わせられるのが理想です。
自分が深堀タイプなのか、浅く広くタイプなのかを把握して、
上手く組み合わせられるように下記を意識すると良いと思っています。
- 「1つのことをとにかく深堀して調べるパターン」の方の意識ポイント
- 本当の目的を忘れないようにしておく(書き出すなど)
- 深堀は時間を見ながら行って、ある程度で切り上げてみる
- 深堀したことは書き出すなどして整理しておく
- 「色々なことをとにかく幅広く調べるパターン」の方の意識ポイント
- 調べた結果を鵜呑みにせず、自分の状況と照らし合わせて少しだけ詳細に調べてみる
- 解決後時間があるときに、深堀して詳しい知識を獲得しておく
まとめ
トラブルシューティングや課題解決の上手な人は、
- 頭の中で、色々な可能性を考える
- 頭の中で、持っている知識で最も可能性がありそうなもの順に並べる
- 可能性の高いものから順に調べてみる
- 分らない言葉があれば少しだけ調べる
- あまり時間をかけず可能性が薄くなれば調査は切り上げる
- 次の可能性を調査する
- :
という形なのかなと思います。
慣れないうちは、
「可能性がありそうな順に並べ」たり、
「可能性が薄くなれば調査は切り上げ」たりできず深堀したり
することが多いのかと思っています。
慣れないうちは 冒頭の要約 のように、
書き出すなどの工夫をして
- 目的
- キーワード
- 調べたこと/調べた結果
を意識して、
深堀しすぎて堂々巡りにならないよう、
ほかの可能性に気づかないことのないよう、
本当の目的を忘れちゃわないよう、
気を付けると良いと思います。
その他
トラブルシューティングのプロセスは、
木の探索アルゴリズム似ている気がしています。
知識がついてくると枝刈りも上手になるので、
解決策にたどり着くのも早いですね。