ミスが許されない現場で、1年目エンジニアが心がけていること
はじめに
Next.jsを使った実務に携わって、約8か月が経ちました。
実務に入る前はあまり意識していなかったのですが、現在携わっているプロジェクトでは毎日成果物のチェックが行われています。プルリクエストは、1日1回、技術リーダーに提出。そして翌日にはクライアントの目に触れます。
つまり、その日のうちに大きなミスがあると、翌日のチェックがストップしてしまう可能性があるのです。そうなると、クライアントからの信頼を損なうだけでなく、プロジェクト自体の進行に支障をきたしてしまいます。
この記事では、そんなミスが許されない現場で、1年目エンジニアの僕が日々意識していることや工夫を紹介します。
なお、この記事の目的は、自分自身の振り返りの意味合いが強く、「こうするべき」と断言できるものではありません。また、効率が悪いと思われるような行動も含まれていますが、実際にミスを防げたことも多く、一定の効果は感じています。似たような状況の方の参考になればうれしいです。
「してはいけないミス」と「してもいいミス」を見極める
「ミスは絶対NG」と思いがちですが、実装スピードとのバランスを考えると、すべてを完璧にチェックするのは非現実的です。
そこで僕は、まず「絶対にしてはいけないミス」と「しても致命的ではないミス」を分けて考えるようにしています。
絶対にしてはいけないミス
- ページがエラーで真っ白になり、そもそもクライアントが確認できない
- バリデーションが機能せず、次の画面に進めない
このように、他の人の作業を止めるミスは絶対に避けなければなりません。
許容されるミス(状況次第)
- 特定のパターンでのみエラーが出る(基本的な動作には問題なし)
- 文言の誤りや見た目の崩れ
こうしたミスはもちろん少ないに越したことはありませんが、致命的でなければ、まずはプロジェクトの前進を優先しても良いケースもあります。
この判断力は経験を積まないと難しい面もありますが、あらかじめ基準を持っておくことで、精神的な余裕や作業スピードにもつながります。
僕はこれらを意識しているので、他の人が注意されている中のらりくらりとクライアントからの指摘をかわしながらやってこれています。
修正時は「最小の手数」で、慎重に
とにかく動くように修正できればいいと思って修正してしまうと、ロジックが複雑になって再修正の際に頭を悩ませることになります。また、他のページにも影響してしまう安易な修正をしてしまうと、確認作業やバグの原因にもなりますので、控えるべきです。
そこで、僕は修正箇所のロジックは確実に理解してから手を付け始めるようにしています。これは一見遠回りのように思えますが、特に大規模な開発では実は大きな手戻りを防げる近道です。
また、他のエンジニアが書いたコードでわからない部分があれば、わかるまで悩むよりも早めに聞くことを心がけています。幸い、僕の職場はエンジニア同士で気軽に質問できる文化があり、「ちょっと調べればわかるかも」と思うようなことでも、人に聞いたほうが早くて確実なら、素直に頼るようにしています。僕は人に聞くのを躊躇してしまう性格ですが、バグを引き起こしている原因が他の人にも関係があるのなら遠慮なく聞けるという心理です。
使用頻度の高いコンポーネント修正のときは特に気を付ける
プロジェクトの中には、さまざまな画面で共通して使われている重要なコンポーネントがあります。こうした高頻度で使用されるコンポーネントの修正は、特に慎重になるべきです。
僕が意識しているポイントは次の2つです:
-
すべての関連ページの挙動をチェックする
どんなページでも一つでも挙動がおかしくなっていないか、すべてチェックします。これは当たり前のようですが、使用頻度が高い=影響範囲が広いため、確認にはそれなりの時間と注意が必要です。 -
自分が作っていないコンポーネントは、事前に作成者に確認をとる
少しでも理解に不安がある場合は、そのコンポーネントを作った人に連絡を取り、ロジックをしっかり確認してから修正を始めます。
たとえ「ロジックは大体わかった」と思っていても、実際には把握しきれていないパターンが潜んでいることがあります。そのまま修正してしまうと、一見うまく動いていても、別の画面で予期しない不具合が発生することがあります。
なので、本当に完璧に理解している自信がない限りは、遠慮せず確認をとるようにしています。
細かい確認を積み重ねる
コード以外にも、日々のちょっとした確認作業でミスを防げることがたくさんあります。僕が意識しているのは以下のようなことです:
- ブランチを切り替えたときは、git branchでちゃんと切り替わっているか毎回確認するようにする。
- プルリクエストを出すときに、今日修正したファイルと内容をざっと読んで提出している。
→何度かこの作業に救われました。 - プルリクエストを出すときは毎回ビルドエラーをチェックする。
- ステージ環境に上がったら、その日のうちに大きな不具合がないか確認する。
→他人の作業によるバグにも気づけたことが多々あります。
などです。
ちゃんと寝る
最後に補足的に書いていますが、一番重要です。
僕は基本毎日8時間以上寝るようにしています。
おわりに
現時点で自分が意識していることは、ひと通り書き出せたと思います。
これらを地道に積み重ねてきたからこそ、なんとかここまでやってこられたと感じています。
とはいえ、最近はクライアントからの指摘を恐れすぎてしまい、逆に作業効率が気になり始めているのも事実です。
今後は、守るべきところはしっかり守りつつ、気をつけるポイントを取捨選択しながら、効率を上げる工夫にも取り組んでいきたいと思っています。
また、業務を通じて新たに気づいたことや、工夫したことがあれば、引き続き発信していけたらと思います。
Discussion