最初に
開発の質問に答えている時に、そんな場当たり的な解決じゃなくて知識教えて欲しいと!!みたいなこと言われてちょっと改めて考えてみました。
結論、知識とか問題の原因を理解することは大切ですが、実務ではむしろ知識とかで解決できない場合にどうするか?みたいなところもエンジニアとして大切なんですよね。
ただ、自分でもその手段を人に伝えらえるほど具体的に考えているわけじゃないので、
それを改めて言語化してみようと思います。
良さそうなアイディアがあったらコメントいただけると嬉しいです。
動かない時にPC/インスタンス再起動
アプリが動かない、xcodeでうまくビルドができない、なんかPCが重たい、画面が開かない、、、そういう時には再起動しましょう。
理由を調べることはできますが、問題を解決することだけが目的であれば再起動はありです。
今後二度と起きないようにするためにはもちろん調べた方が良いですが、その場合でも問題解決した後に調べるとかでよかったりします。
時間は無限ではないので時には諦めて再起動しましょう。
また、再起動とか試す前に先輩とかに質問すると怒られることもあるかもですね。
なんかよくわからないけど治ったものを出すのはプロとしてどうなんだってところはありますが、時と場合によっては出さなければいけないこともあるので選択肢には入れておきましょう。
バグをバグのまま放置する。問題を捨てる。
バグがゼロになることなどあり得ないので、優先順位をつけたり影響範囲がデカすぎた場合にやります。
あまりにも使いすぎると後で困ったりしますが、最善の結果になるようにうまく調整していきたいですね。
ただ、見つけた際に報告しないこととは違うので、勝手に判断しないように注意しましょう。
とりあえず最初から作り直す
作ったものが動かなかった時、なぜか作り直したらうまくいくことはあります。
良い方法ではないですが、完成させることが目的であれば何時間も問題の箇所探すよりもよかったりします。
また、AWSで何かしらのサービスを使う時、作ったインスタンスとかちゃんと動かないこととかは割とあります。
その場合にはこっちでは判断がつかなくて、AWSのサービスに問い合わせとかしないといけないので、作り直すのも立派な解決方法です。
もちろんすでに動作しているものに関しては簡単に使える方法ではないですが、こちらも選択肢から除外するべきではないですね。
問題のことを忘れて寝かせる
1時間、2時間、3時間とかけて解決しなかった問題が、お風呂入った瞬間とか次の日の出社直後に考えたら普通に解決することがあります。
もちろん解決しないこともありますが、このパターンで解決した時は脳汁が出るのでとても気持ちよく、その後忘れることも基本ありません。
ただ、闇雲にこれをやればいいわけではなく、全力で考えた後に神様が与えてくれるプレゼント的なものなので、全力で考えて考え尽くした後にやるようにしましょう。
別のツール、サービス、解決方法を使う
そのツール自体を使うことが目的になってしまっているエンジニアの人は結構見かけます。
大体そういう人は仕事の出来が微妙ですね。
新しいものを使いたいのは悪いことではないですが。
サービスを使うのは何かしらを解決することが目的なので、その目的が達成できるのであれば、どんなツール、サービスだろうが問題ないのに、永遠に最初決めたものに思考が囚われてしまったりするのはすごく勿体無いです。
オーバースペックなものを入れたりとかも同様です。
うまく目的が達成できない時には、他のツールを探して使ってみるのも検討しましょう。
最後に
改めて言語化すると、逃げるは恥だが役にたつって感じですね。
あんまりこの記事は有用なものになっているかはわかりませんが、
数人のためにでも役に立つと嬉しいです。