「経験5年」から“本当に任される人”へ──Java/C#エンジニアの成長ストーリー
Photo by Melissa Askew on Unsplash
「Java歴、5年です。Spring Bootを使ったWebアプリの開発に関わってきました」
「C#で5年間、.NET系の業務システム開発をしていました」
そんな自己紹介でプロジェクトに参画してくれたエンジニア
教育業界の学生管理システムにて、主にバックエンドを担当してもらう予定だった
担当してもらうのは:
- 学生のステータス遷移(入学・休学・卒業など)の業務ロジック設計
- 年度更新処理のバッチ設計と実装
- 担当教員に連携する通知APIの実装
──実装経験はあるとのことだったが、最初のコードレビューで違和感が出てくる
- 1クラスに複数の責務が詰め込まれており、SOLID原則に沿っていない
- RepositoryとServiceの責務が混在
- ロジックの分岐が複雑で、テストコードが書けない構造
- インタフェースやDIの意図が形骸化
- 業務処理に対してドメイン知識がコードに反映されていない
「5年やってきた」と聞いていたが、
どうやら与えられた機能を形にする“実装”はしてきたものの、設計や構造を考える経験はほとんどなかったようだった
けれど、そのエンジニアはここで止まらなかった
「自分、クラス設計やアーキテクチャの理解が甘かったですね。やり直します」
そう言って、まず取り組んだのが、「なぜこの構造にするのか?」を学ぶこと
- DDD(ドメイン駆動設計)の文脈でのエンティティとバリューオブジェクトの違い
- DIコンテナの役割と、疎結合設計の意義
- 単一責任の考え方をクラスにどう落とし込むか
- サービス層とドメイン層の切り分け
Spring BootやASP.NET Coreの仕組みも、“使える”から“説明できる”へシフトしていった
次に取り組んだのは、実装する前にまず設計図を描く習慣
- 業務フローを聞き取り → ステートマシンで整理
- DBスキーマを見直し → 正規化と冗長性のバランスを検討
- API設計 → エンドポイントと責務をRESTの原則に即して整理
設計レビューでは初めて指摘だらけだったものの、着実に改善
3か月後には、自分で要件整理から設計・実装・テストまでをこなせるようになっていた
「5年の経験があります」
その言葉の中身が、少しずつ、確かなものに変わっていきました✨
年数ではなく、「何をしてきたか」
そして「これから何を学ぼうとしているか」
静的型付き言語での開発は、設計力・構造理解・保守性が問われる場面が多いです
だからこそ「設計に弱い」ことはマイナスではなく「設計を学び始めた」ことが強みに変わります
“経験5年”を「任せられる5年」へ。
その転換点は、自分の現在地を知ったときから始まるんですね😊