👌

失敗から学ぶエンジニアのキャリア

2024/11/24に公開

はじめに

エンジニアとして働く上で、失敗はつきものです。新しい技術に挑戦する中でコードが動かない、プロジェクトがスケジュール通り進まない、レビューで辛辣なフィードバックを受ける――こうした失敗は、成長の糧となる一方で、恐怖心を与えることもあります。しかし、「失敗をしてはいけない」という意識を持ちながらも、それを成長につなげる姿勢が大切です。

この記事では、私自身の失敗談を交えながら、失敗を前向きに捉え、挑戦意欲を引き出す方法を共有します。

1. 失敗は避けられないが、許容されない

エンジニアとしての業務では、失敗が完全に避けられることはありません。特に新しい技術や未経験の分野に挑む際は、必ずといっていいほどつまずきます。

\textcolor{red}{ただし、「絶対に失敗してはいけない」場面も存在することを忘れてはいけません。}

たとえば、サービスのリリースや顧客に直接影響を与える部分でのミスは、取り返しがつかない可能性があります。だからこそ、次のような考え方を持つ必要があります。

  1. 準備と検証を徹底する
    • 万が一のリスクを軽減するために、事前のテストやレビューを欠かさない。
  2. 失敗から学ぶための仕組みを作る
    • 振り返り(レトロスペクティブ)やドキュメンテーションを活用して、失敗を再発させない。

2. 私の失敗談

背景

あるプロジェクトで、私はタスクを細かく分けず、巨大なタスクとして進めました。その結果、以下のような問題が発生しました。

  • 馬鹿でかいPull Requestを出してしまった。
    コードレビューに非常に時間がかかり、レビュワーからも「全体が見えない」と指摘されました。

  • テストコードを用意しなかったため、大量のバグが発生。
    その修正によりプロジェクト全体の進行が遅れる結果となりました。

得られた教訓

  1. タスクの粒度を小さくする

    • 実装を小さな部品に分けて、ひとつずつ確実に進めることで、Pull Requestも小規模になり、レビューがスムーズに行えるようになります。
  2. 自動テストの仕組みを最初に整備する

    • プロジェクトの初期段階でテストを自動化する環境を整えることで、コード変更の影響を早期に検知できるようにする。

3. 失敗を糧に成長する心構え

失敗を繰り返さないためには、いくつかの心構えが必要です。

1. 失敗を恐れずに挑戦する

  • 成長は挑戦の中にあります。新しい技術や手法を試すことにはリスクが伴いますが、そのリスクを負わなければ経験は積めません。

2. 「失敗の振り返り」を習慣化する

  • 自分が失敗した際に、「なぜ失敗したのか」「どうすれば防げたのか」を振り返る。これを繰り返すことで、同じ失敗を防ぐ力が身につきます。

3. 学びを共有する

  • 自分の失敗をオープンにし、チームメンバーと教訓を共有することで、チーム全体の成長につなげることができます。

4. 失敗を前向きに捉えるための実践例

例: 自動テスト環境を整備したことで得られた安心感

失敗から学び、次のプロジェクトでは以下を実践しました。

  1. 最初にCI/CD環境をセットアップ
    • コードをPushすると自動的にテストが実行され、エラーがあれば即座に通知。
  2. タスクを小さく分割
    • 「機能ごとに小さな単位で開発し、段階的に統合する」という方針を徹底。

結果として、コードレビューがスムーズになり、プロジェクト全体の進行速度も向上しました。

5. 読者へのメッセージ

失敗は、エンジニアとして避けられない通過点です。しかし、それをどう捉え、次にどう活かすかがキャリアを左右します。「転んでもただでは起きない」という気持ちを持ち、失敗を自分とチームの成長につなげていきましょう。

まとめ

  • 失敗は学びの機会である
    恐れずに挑戦し、そこから得た教訓を次に活かしましょう。
  • タスク管理と自動化が鍵
    タスクを小さくし、自動テスト環境を整えることで、失敗を未然に防ぐ仕組みを作りましょう。
  • チームで成長を共有する
    失敗談や教訓を共有することで、組織全体での学びが深まります。

Discussion