【エンジニアあるある】「このコード誰が書いたの?」と思ったら自分だった

コードレビュー,ソフトウェア開発,バグ,プロジェクト管理,命名規則,品質保証

こんばんは!IT業界で働くアライグマです!

ソフトウェア開発に携わるエンジニアであれば、一度は体験したことがあるであろうこの現象。「誰がこんなコードを書いたんだ?」と思いながら調べた結果、自分だったというオチ。最初は驚きや恥ずかしさを感じるかもしれませんが、この経験こそエンジニアとしての成長やプロジェクト管理の重要性を学ぶ絶好の機会です。

本記事では、この「エンジニアあるある」を深掘りし、なぜこうした状況が発生するのか、その背景を探りつつ、再発防止のための実践的なアプローチを詳しく解説します。

なぜ「自分のコードを他人のように感じる」のか?

技術的スキルの成長

エンジニアとしての成長が進むにつれ、過去のコードに対する見方が変わります。新しい設計パターンやコーディング規約を学び、以前は問題ないと思っていた部分が「改善すべき点」に見えるようになるのです。この変化はポジティブな成長の証拠です。

時間経過による忘却

プロジェクトが進行する中で、多くのコードを書き換えたり、新しいタスクに取り組んだりすることで、数週間前、あるいは数か月前に書いたコードの記憶が薄れていきます。特に、コードに十分なコメントが残されていない場合、この忘却現象は顕著です。

急ぎの実装や技術的負債

納期のプレッシャーやプロジェクトの要件変更に追われる中で書かれたコードは、長期的なメンテナンス性よりも短期的な実現可能性を優先して書かれることが多いです。その結果、「一時的なつもりで書いたはずのコード」が後々問題を引き起こすことがあります。

チーム開発での齟齬

チームメンバーが異なるコーディングスタイルや命名規則を使用していると、全体として一貫性のないコードベースが生まれることがあります。その中で自分のコードを見失うことも。

「このコード誰が書いたの?」を防ぐためのアプローチ

過去の自分のコードに驚く経験を減らすために、以下のような工夫を日々の開発プロセスに取り入れてみましょう。

わかりやすいコードを書く

「コードは他人のためではなく、未来の自分のために書く」という格言があります。以下の点に注意して、わかりやすいコードを書く習慣をつけましょう。

  • 命名規則を統一
    変数や関数名に、具体的かつ明確な名前を付けることで、コードの意図がすぐに伝わるようにします。例えば、tmpdataではなく、userDetailsorderSummaryなど、役割がわかる名前を使用します。
  • コードを簡潔に保つ
    1つの関数やメソッドに多くの責務を持たせないようにします。「単一責任の原則」を意識して、読みやすさを維持しましょう。

コメントを適切に活用

コードにコメントを残すことで、未来の自分や他の開発者がコードの意図を理解しやすくなります。ただし、コメントの内容は簡潔かつ要点を絞ったものでなければなりません。

// ユーザーのログイン状態をチェックする関数
function isUserLogined($userId) {
    // データベースからログイン状態を取得
    $userData = getUserData($userId);
    return !is_null($userData);
}

バージョン管理を活用

Gitなどのバージョン管理システムを活用して、コードの変更履歴を明確に残すことも効果的です。コミットメッセージに「なぜその変更を行ったのか」を記載することで、コードの背景を追いやすくなります。

リファクタリングを定期的に行う

リファクタリングは、技術的負債を減らすための重要な作業です。以下のタイミングでリファクタリングを行う習慣をつけましょう。

  • 新しい機能を実装する前
  • バグ修正の際
  • コードレビューで指摘を受けたとき

コードレビューを取り入れる

他の開発者の視点からコードを確認してもらうことで、思いもよらない改善点が見つかることがあります。コードレビューは、個人の成長だけでなく、プロジェクト全体の品質向上にも貢献します。

「自分のコードに驚く経験」を成長の糧にする

過去のコードを見て驚くこと自体は、エンジニアの成長を物語るものです。この経験をポジティブに捉え、次のような学びに変える努力をしましょう。

過去の自分を責めない

当時の知識やスキルでベストを尽くした結果が現在のコードです。自分を責めるのではなく、その時の選択を肯定しつつ改善を目指しましょう。

改善点を明確にする

驚きを感じた箇所を分析し、「なぜこのコードが問題なのか」「どのように改善できるのか」を考えることで、次の開発に活かせます。

共有して学び合う

自身の経験をチーム内で共有することで、他のメンバーも同じミスを避けることができます。共有することで、チーム全体の成長が促進されます。

まとめ

「このコード誰が書いたの?」と思った瞬間は、エンジニアとしての成長と改善のチャンスです。この経験を活かすためには、コードの品質向上を意識し、命名規則やコメントの充実、定期的なリファクタリングを心がけることが重要です。

また、自分の成長を喜び、過去のミスを笑い話として捉える余裕を持ちましょう。それが、長いエンジニア人生を楽しく、そして実りあるものにする秘訣です。

PjMが選ぶITエンジニアのキャリアを広げるフリーランス・転職サービス

ITアライグマが実際に情報収集した中から、「高単価」かつキャリアの選択肢が広がりやすいフリーランスエージェントと転職サービスを厳選してご紹介します。
とくに、フリーランス・転職後に高い報酬単価や年収アップを狙いやすいサービスを優先してピックアップしています。
「今すぐ転職するかは迷っている」「まずは情報収集だけしたい」という段階でも、無料カウンセリングで市場感やキャリアの方向性を整理しておくと、次の一歩がかなり楽になります。
※以下のリンクはいずれも公式サイトへのリンクで、登録・相談は無料です。

フリーランスエンジニア向けエージェント3選

1. techadapt(テックアダプト)
東京・神奈川・千葉・埼玉エリアのITフリーランスエンジニアに特化した案件マッチングサービスです。
実績20年以上のエージェントが上流工程から開発までの高単価案件を多数扱い、プライムベンダー案件や元請け直請け案件を中心に提案してくれます。一定期間以上参画したエンジニアを対象に確定申告時の税理士報酬を負担してくれるなど、単価だけでなく税務面まで含めてフリーランスの働き方をトータルに支援してくれるのが特徴です。
ITフリーランスエンジニアの案件探しなら【techadapt】

2. フリーランスキャリア
ゲーム・アプリから業務システムまで、エンド直の高額案件を扱うフリーランス向けエージェントです。
専任営業が要望を聞き取り、高単価かつ稼働が安定した直請け案件へのアサインや単価交渉まで伴走してくれます。
フリーランス向け!高額×エンド直案件を紹介「フリーランスキャリア」

3. PE-BANK(PE−BANK)
1989年設立の老舗フリーランスエンジニア支援企業で、営業代行・事務代行・確定申告サポート・福利厚生まで一気通貫でサポートしてくれます。
長年の運用実績と安定した承認率を背景に、フリーランスとして腰を据えて働きたい人に向いたエージェントです。
設立から四半世紀!フリーランスエンジニアの独立をサポート【PE−BANK】

ITエンジニア向け転職サービス4選

1. TechGo(テックゴー)
実務経験2年以上のITエンジニア向けハイクラス転職エージェントで、ITコンサルやメガベンチャーなどの高収入求人が豊富です。
高水準の成果報酬と承認率を背景に、効率よく年収アップ・キャリアアップを目指したい人に向いています。
ITエンジニアのハイクラス転職なら【TechGo(テックゴー)】

2. strategy career(明光キャリアパートナーズ)
年収アップやフルリモート・裁量の大きいポジションを目指すITエンジニア向けのハイクラス転職エージェントです。
テックリードやDevOps、CTO候補などの事例が豊富で、年収・役割ともに大きく引き上げたい方に向いています。
自分らしく働けるエンジニア転職を目指すなら【strategy career】

3. レバテックダイレクト
IT・Webエンジニア向けスカウト転職サービスで、プロフィールに興味を持った企業から書類選考免除スカウトが届くのが特徴です。
マッチ度スコアやリモート可否・技術スタックなどの条件で求人を絞り込みつつ、承認率の高い登録成果を狙えるサービスです。
IT・Webのスカウト転職サービスなら【レバテックダイレクト】

4. IT転職エージェント@PRO人
IT・Web業界に完全特化した転職エージェントで、経験者向けの中長期キャリア設計まで視野に入れた支援が強みです。
社内SEや自社開発企業、上流工程ポジションなどへの転職で、堅実に承認されやすい面談成果+年収アップを狙いたい方に適しています。
IT職種・業界に完全特化。キャリア相談品質に自信があります【IT転職エージェント@PRO人】

AI学習・リスキリング向けオンライン講座2選

1. Aidemy Premium
未経験からでも3カ月程度でAI・データ分析スキルを身につけることを目指せる、Python特化型のオンラインプログラミングスクールです。
AIプログラミング・データ分析・E資格対策など目的別の講座とマンツーマンの学習サポート、バーチャル学習室などにより、仕事と両立しながら実務レベルのスキル習得やキャリアアップを狙えます。教育訓練給付金やリスキリング支援事業の対象講座もあり、コストを抑えてAI人材としての市場価値を高めたい社会人に向いています。
初心者からAIエンジニアへ!オンラインAIプログラミングスクール【Aidemy Premium】

2. DMM 生成AI CAMP
ChatGPTなどの生成AIをビジネスで使いこなすことを目的とした社会人向けオンライン講座です。
プロンプトエンジニアリングの基礎に加え、マーケティング・営業・人事・生成AIエンジニアなど職種別コースで、日々のレポート作成や提案資料、問い合わせ対応といった具体的な業務シーンを題材に学習できます。リスキリング補助金の対象講座となっており、受講料の多くを補助金でまかなえるのも特徴です。
生成AIをビジネスで活かすオンライン講座【DMM 生成AI CAMP】