「エラー/不具合がでて動きません」と相談するときに意識したいこと
「エラーが出て動きません」
プログラムを書いている方なら誰しもが遭遇しうるもの「エラー」。エラーと一括りにしても色々あり
・コンパイルエラー
・構文エラー
・実行時エラー
と様々な種類があります。「エラーによって動かない」も、そもそもプログラムの実行ができない、特定の処理を行うと発生してしまうといった形で理由も様々です。
或いは何かの変更をきっかけに、今まで動いていた処理がうまく機能しなくなり、画面に表示されるべきものが表示されないといった不具合も発生したりします。
自力で修正ができればベターですが、時には別の人に質問しないと解決できないことがあるかと思います。
その際に、次のような相談の仕方をしていませんか?
「急にエラーがでるようになりました」
「xxxをしたらエラーが出て動かなくなりました」
「yyyを実装したら動かなくなりました」
確かに、エラーや不具合が発生して動かなくなったことに関して質問していることはわかるのですが、
相談された側からすると、実は困る相談だったりします。
(ここでの"困る"は"迷惑"という意味ではなく、"大変"という意味合いが強いです)
なぜ困るのか
相談をする側からすれば、何故発生したのか、どうしたら解決できるのかが分からない状態なので、エラーや不具合が起きたという事象のみを伝えがちになってしまうのですが、
先述のような相談の仕方をしてしまうと、圧倒的に情報が不足しているため、相談を受けた側は更にヒアリングする必要がでてきてしまいます。
たとえば、「急にエラーがでるようになりました」と相談を受けた場合は、
「何かエラーログはでていますか?」
「どの画面や機能で発生していますか?」
「変更を加える前のバージョンでも発生しますか?」
といった具合に、エラーや不具合についてより詳細な情報を聞く必要がでてきます。
相談者は魔法使いではないので、流石に「エラーが出ました」だけでは特定するのは不可能です...。
相談を受けた側は、相談を受けるとおそらく、次のようなことを考えます。
・いつから発生するようになったのか
・どこでエラーが発生しているのか
・どのような手順を行うとエラーが発生するのか
・どんなエラーログが出力されているのか
・原因が特定できた場合の解決方法は何か
これらを質問して状況を把握・分析し、原因の特定をして解決策を提示しないといけないので、何も詳細な情報がない状態からスタートすると、やりとりの数が増え大変になります。
或いはある程度このあたりが原因だろうと予測したり、様々なケースを想定しながら推論しないといけないので労力がかかります。
では、どのように相談するのが良いのでしょうか...?
どのように相談するのがベターか
エラーや不具合が起きるに至った経緯や、どういったエラーが発生しているのかの詳細な情報を、相談する際に合わせて共有することが大切になってきます。
例えば次のような情報を、相談するときに一緒に報告すると相談を受けた側は1回目のやりとりである程度状況の把握ができるようになり
原因の特定までにかかる時間を減らすことができます。
・masterブランチの最新の変更を取り込んでから発生するようになった
・Aというライブラリのバージョンを上げてから発生するようになった
・エラーが発生したときにXXXXというログが出ている
・A,B,Cという手順を踏むとエラーが発生する。
・Aの状態では発生しないが、Bの状態では発生する
・YYYという動作をすると、画面が次のようになってしまう(+スクリーンショット添付)
ここまでの話を踏まえて、ある相談のBefore/Afterの例を示してみます。
# Before
「YYYに変更を加えたらエラーが発生して動かなくなりました」
# After
「
XXXという機能を実装していて、YYYに変更を加えたのですが、実行してみると、"~~~~~~~~~~"というエラーが出て画面に何も表示されなくなりました。
手順としては、
- A
- B
- C
と動作を行うと発生するようで、この手順で動作させると毎回発生します。
発生する画面は、Zという画面で下記に添付するスクショの画面になります。
どうしたら修正できますか?
(スクリーンショットを添付)
」
これだけ情報があれば、相談を受けた側は状況を把握しやすくなります。
原因箇所の見当もつけやすくなり、追加で少し質問をすれば解決に向かってスムーズに進められます。
少しの手間をかけるだけで変わる
手軽に相談したい気持ちもあるかもしれませんが、エラーのログだけでも添える、不具合が起きてどういう状況になっているのかスクリーンショットを共有するといった少しの手間があるだけでも、相談を受けた側はとても助かります。
もしエラーや不具合が起きた際は詳細な情報を伝えるように心がけてみてください。