「間違っていないことの確認」を怠る人
後輩「合ってるはずのパスワードをコピペして入れてるんですが、何度やっても通らないんです」
僕「一度通らなかったら同じこと繰り返しても意味ないから、まずパスワードが正しいことを確認しようか」
後輩「いや、パスワードは合ってるはずなんです、このメールに書いてある初期パスワードをコピペしてるんで」
僕「なるほど、じゃあ、これが初期パスワードなら、違うパスワードを取り違えている可能性は、一旦ナシとみなそう。これから色々試してもダメだったら、この初期パスワードが合ってない線が濃厚だからね」
後輩「はい」
僕「それじゃあ、コピペした文字列が合ってるか確認しようか。メールからコピーした時に、行末のスペースや改行までコピーしてないか確認しよう」
後輩「いや、そんなはずないですよ」
僕「推測はいいから、実際に試して観測してみようか。そのコピーしてる文字をメモ帳に貼り付けてみて」
後輩「はい、貼り付けました」
僕「ほら、貼り付けたら何か改行が出てきたよ、やっぱ余計な文字までコピーして入力してたんじゃない?このメモ帳から改行を除いてそれを再度コピーして貼り付けてごらん」
後輩「はい……あ、通りました。えー、スペース混じってたんですか?そんなはずないんですけどねぇ…。自分はそんなつもりなかったんで……」
僕「人間側がどういうつもりだろうとなかろうと、事実はそうだったんだよ。いくら推測で正当性を主張しても、解決には繋がらないから、自分が間違ってないことを証拠付きで確認する習慣を付けような」
後輩「はぁ……」
最近、こういう「自分が正しいと思っているから正しいはずだ」と思い込める人が多い気がする。「僕がやったことの中の何が間違ってるんですかねぇ…?」という目線ではなく、「僕がやったことは正しいはずなのに、なんで上手くいかないんですか?」と言ってくる。
実際調べてみると、
- 前述のようにコピペの仕方がマズくてパスワードに余計な文字が混じっていたとか、
- コードの修正が反映されないと言っていたけどライブリロードしてなかった (本人は「さっきターミナルから立ち上げておいたはずなのに、おかしいな…」といった顔) とか、
- ライブリロードは立ち上げていたものの触っていたファイルが別のプロジェクトのファイルで、反映されるはずがなかったとか、
- マウスが効かないと言い出したがよく見たら電源スイッチが OFF になっていたとか
そういう初歩的な確認を怠ったことによる、しょうもないミスばかりなのだ。「はず」も「つもり」も、トラブル解決には無意味な言葉だから、検証して観測しよう。
こういう人がやらかしている特徴はいくつか挙げられるので、自分が以下に当てはまっていないか確認しよう。
- トラブルが起こるまでの自分の行動を正確に覚えていない
- 「記憶」に頼っている時点で正確ではないことを理解せよ。より正確なのは「記録」である
- 叩いたコマンド、触ったファイル、書いたコードを、1文字単位で間違いなく記録する
- その行動をキレイさっぱり戻せるように準備していない
- 作業を最初からやり直したら、解決の糸口が見えることがある。作業は再現性を高くしておく。つまり、キレイさっぱり元に戻せて、完全に同じ状態から同じ作業ができるようにしておくことが大事。
- Git でのコード管理だったり、ファイル削除はゴミ箱もしくは別フォルダに退避したりすることで、やり直しできるようにしておく。
- どこで、何に対して、何をしたか、をもう一度確認する
- 「書いたはず」ではなく「間違いなく書いてあることをもう一度見る」。
- その行動が本当に正しいのかもう一度調べる
- 間違いなく書いたその設定項目が本当に正しいか、記述位置、つづりを見直す。設定したことによる効果の内容に勘違いがないかもチェック。
- ハードウェア的な問題がないか確認する
- 電源は入っているか、電池は残っているか。
- USB などであれば、一旦挿し直して再認識させてみる。
- 操作しているサーバが本当に起動しているか、フリーズしたりしていないか。サーバの生存チェック大事。
- 故障はほとんどないと思うが、他に原因がないようであれば SSD や HDD の故障や、通信機器の破損などもチェックする。
しょうもないミスでつまづかない人は、何かトラブルがあった時にこうしたポイントを瞬時にチェックしていて、「あっ、電源入ってなかったわ」とすぐに復旧したり、「他に原因が見当たらないから、ココで追加したコードがまずいのかも?」と当たりを付けたりできるのだ。
デキる人は最初から一つもミスしないのではなく、「この辺はよくミスしがちなところ」と認識していて、すぐに繰り返しチェックする癖が付いている、ということなのだ。
それから、問題を素早く解決するためのアドバイスとして、以下が挙げられる。
- 慌ててむやみな行動を取らないこと
- パスワードが合っているはずだ、と3回間違えてみたりすると、パスワードロックがかかって復旧不可能になったりする。
- 慌てて行動して記録をしてなかったり、根拠の無い行動を取らないこと。怪しい時は何も触れず周りに助けを求める。
- 試すことは一つずつ試す
- 何かのコードが動かない時、「ココかな?それともこっちか?」などと、複数の場所に変更を入れて試さないこと。無関係なコードが別の悪さをするかもしれないし、たまたま上手く行ったとしても、無駄なコードまで追記が必要なモノと勘違いしたりする。
- 本筋とは違う不具合を踏んでしまうと、根本解決から遠のいてしまう。違うエラーが出たら、元に戻せるようにも準備しておく。
- これらは「自分が何をしているのか理解していない」ことが原因。そのコードの役割を認識せず、雰囲気で直そうとしているから無駄なコードを入れてしまいがち。
- 解決には向けて複数の手段が考えられるなら、一つずつ試す。それぞれの変更による結果を見比べて、その中で必要な一つ、もしくは組合せを見極める。
間違っていないことは何度確認したって良い。初歩的すぎる足元こそよく見ていないものだから、自分に「確信」があることであっても、何度でも見返しておこう。