【エンジニアあるある】「このコード誰が書いたの?」と思ったら自分だった
こんばんは!IT業界で働くアライグマです!
ソフトウェア開発に携わるエンジニアであれば、一度は体験したことがあるであろうこの現象。「誰がこんなコードを書いたんだ?」と思いながら調べた結果、自分だったというオチ。最初は驚きや恥ずかしさを感じるかもしれませんが、この経験こそエンジニアとしての成長やプロジェクト管理の重要性を学ぶ絶好の機会です。
本記事では、この「エンジニアあるある」を深掘りし、なぜこうした状況が発生するのか、その背景を探りつつ、再発防止のための実践的なアプローチを詳しく解説します。
なぜ「自分のコードを他人のように感じる」のか?
技術的スキルの成長
エンジニアとしての成長が進むにつれ、過去のコードに対する見方が変わります。新しい設計パターンやコーディング規約を学び、以前は問題ないと思っていた部分が「改善すべき点」に見えるようになるのです。この変化はポジティブな成長の証拠です。
時間経過による忘却
プロジェクトが進行する中で、多くのコードを書き換えたり、新しいタスクに取り組んだりすることで、数週間前、あるいは数か月前に書いたコードの記憶が薄れていきます。特に、コードに十分なコメントが残されていない場合、この忘却現象は顕著です。
急ぎの実装や技術的負債
納期のプレッシャーやプロジェクトの要件変更に追われる中で書かれたコードは、長期的なメンテナンス性よりも短期的な実現可能性を優先して書かれることが多いです。その結果、「一時的なつもりで書いたはずのコード」が後々問題を引き起こすことがあります。
チーム開発での齟齬
チームメンバーが異なるコーディングスタイルや命名規則を使用していると、全体として一貫性のないコードベースが生まれることがあります。その中で自分のコードを見失うことも。
「このコード誰が書いたの?」を防ぐためのアプローチ
過去の自分のコードに驚く経験を減らすために、以下のような工夫を日々の開発プロセスに取り入れてみましょう。
わかりやすいコードを書く
「コードは他人のためではなく、未来の自分のために書く」という格言があります。以下の点に注意して、わかりやすいコードを書く習慣をつけましょう。
- 命名規則を統一
変数や関数名に、具体的かつ明確な名前を付けることで、コードの意図がすぐに伝わるようにします。例えば、tmp
やdata
ではなく、userDetails
やorderSummary
など、役割がわかる名前を使用します。 - コードを簡潔に保つ
1つの関数やメソッドに多くの責務を持たせないようにします。「単一責任の原則」を意識して、読みやすさを維持しましょう。
コメントを適切に活用
コードにコメントを残すことで、未来の自分や他の開発者がコードの意図を理解しやすくなります。ただし、コメントの内容は簡潔かつ要点を絞ったものでなければなりません。
バージョン管理を活用
Gitなどのバージョン管理システムを活用して、コードの変更履歴を明確に残すことも効果的です。コミットメッセージに「なぜその変更を行ったのか」を記載することで、コードの背景を追いやすくなります。
リファクタリングを定期的に行う
リファクタリングは、技術的負債を減らすための重要な作業です。以下のタイミングでリファクタリングを行う習慣をつけましょう。
- 新しい機能を実装する前
- バグ修正の際
- コードレビューで指摘を受けたとき
コードレビューを取り入れる
他の開発者の視点からコードを確認してもらうことで、思いもよらない改善点が見つかることがあります。コードレビューは、個人の成長だけでなく、プロジェクト全体の品質向上にも貢献します。
「自分のコードに驚く経験」を成長の糧にする
過去のコードを見て驚くこと自体は、エンジニアの成長を物語るものです。この経験をポジティブに捉え、次のような学びに変える努力をしましょう。
過去の自分を責めない
当時の知識やスキルでベストを尽くした結果が現在のコードです。自分を責めるのではなく、その時の選択を肯定しつつ改善を目指しましょう。
改善点を明確にする
驚きを感じた箇所を分析し、「なぜこのコードが問題なのか」「どのように改善できるのか」を考えることで、次の開発に活かせます。
共有して学び合う
自身の経験をチーム内で共有することで、他のメンバーも同じミスを避けることができます。共有することで、チーム全体の成長が促進されます。
まとめ
「このコード誰が書いたの?」と思った瞬間は、エンジニアとしての成長と改善のチャンスです。この経験を活かすためには、コードの品質向上を意識し、命名規則やコメントの充実、定期的なリファクタリングを心がけることが重要です。
また、自分の成長を喜び、過去のミスを笑い話として捉える余裕を持ちましょう。それが、長いエンジニア人生を楽しく、そして実りあるものにする秘訣です。