
コードに「TODO」が溜まりすぎるエンジニアの悲哀
エンジニアがコードを書くとき、誰しも一度は使ったことがあるであろう「TODO」コメント。開発の途中で「後で修正しよう」「ここは最適化が必要だ」と思った箇所に、つい「// TODO: 修正する」と書いておく習慣は、多くのエンジニアに共通するものです。
しかし、気がつけば「TODO」の山が積み上がり、もはや誰も手をつけない状態に…。最初はちょっとしたメモのつもりだったのに、コードベースに散らばるTODOコメントを見て、むしろ「これは一体いつやるんだろう…?」と不安になることもあります。
本記事では、エンジニアが「TODO」を溜め込んでしまう理由、なぜ処理されないのか、そして「TODO」の山を解消するための方法について考えていきます。
コードに「TODO」が溜まりすぎるエンジニアの悲哀
TODOコメントが生まれる瞬間
エンジニアがコードに「TODO」を残すのは、決して怠惰だからではありません。むしろより良いコードを書こうとする意識の表れです。
「今はとりあえず動くコードを書かないといけないが、後でここを改善したほうがいい」
「この部分、ロジックが複雑すぎるから整理しないと…」
「技術的にもっと良い書き方がある気がするけど、時間がない」
こういった思考の結果、エンジニアは「TODO」をコード内に記録し、未来の自分やチームに向けたメッセージを残します。
また、以下のような場面でもTODOはよく登場します。
- 仕様が確定していない部分 → 「仕様が決まったらここを修正」
- リファクタリング予定のコード → 「動くけど汚いから後で整理」
- 一時的な回避策の実装 → 「本来はこうすべきだけど、今は一旦これで対応」
- 外部ライブラリのアップデート対応 → 「ライブラリの新バージョンが出たらここを変更」
こうして、コードのあちこちにTODOが点在するようになります。
TODOが処理されないまま放置される理由
エンジニアがTODOを残す理由は理解できても、なぜそれが処理されずに放置されるのか。理由はいくつか考えられます。
目の前のタスクが優先される
ソフトウェア開発では、常に新しい機能の開発やバグ修正が求められます。TODOは「重要ではあるけど、今すぐやる必要はないこと」が多いため、他のタスクに追われているうちに後回しにされがちです。
「リファクタリングしないと…」と思いつつも、「今は新機能の開発が先」という状況が続くと、TODOはどんどん溜まっていきます。
「いつかやる」が「いつまでもやらない」に
TODOは基本的に期限が決まっていないため、「そのうちやろう」という意識が働きます。しかし、「そのうちやろう」と思い続けていると、気づけば何ヶ月も何年も放置されることになります。
コードを書いた本人が忘れる
最初にTODOを残したエンジニアが、そのまま別のプロジェクトに移ったり、退職したりすることもあります。そうなると、誰もそのTODOが何を意味しているのか分からなくなることも…。
「このTODO、一体いつ書かれたんだ?」
「誰がやるつもりだったんだ?」
「このTODO、今でも必要?」
こうした疑問が浮かびながら、誰も手をつけられないまま放置されることになります。
本番環境で問題が起きない限り手をつけない
エンジニアの心理として、「今すぐ修正しなくても動くなら、後回しでいいや」と思ってしまうことがあります。特に、本番環境で特に問題が発生していない場合、TODOの修正が後回しになるのはよくある話です。
TODOの山を解消するために
TODOが溜まりすぎると、コードベースが「未解決タスクの塊」になり、開発の効率が落ちてしまいます。では、どうすればTODOを適切に管理できるのでしょうか?
TODOをチケット化する
「TODO」というコメントだけでは、いつやるべきか分からず、放置されやすくなります。そのため、TODOを見つけたらJiraやTrello、GitHub Issuesなどのタスク管理ツールに登録し、適切に優先度をつけると良いでしょう。
「TODOを書く=チケットを作る」 というルールを徹底すると、後で忘れにくくなります。
定期的にTODOを見直す時間を作る
スプリントの最後やリファクタリングのタイミングで、「TODOの整理をする日」を設けるのも効果的です。
- 不要になったTODOを削除(すでに修正されているもの、意味がなくなったもの)
- 優先度が高いTODOをピックアップ(直近の開発で対応できそうなもの)
- 期限を決めて対応するTODOを決定
こうしたルーチンを取り入れるだけで、TODOが溜まりすぎるのを防げます。
TODOに具体的な期限や担当者を記載する
単に「// TODO: 修正する」ではなく、「// TODO: 2025年3月までにリファクタリングする(担当:〇〇)」 のように具体的な期限や担当者を記載するのも有効です。
特に、長期的にメンテナンスが必要なプロジェクトでは、「このTODO、誰がやるの?」問題を回避するためにも、責任者を明確にしておくことが大切です。
まとめ
エンジニアにとって、TODOコメントは一時的なメモのつもりでも、放置すると「未来の負債」となり、コードの可読性や保守性を低下させる原因になります。
TODOを適切に管理し、タスク化・定期的な整理・期限の設定を行うことで、「TODOの山に埋もれる開発」から脱却し、よりスムーズなプロジェクト運営ができるようになります。
とはいえ、実際の開発現場では「TODOをすべて解消する」のは難しいもの。大切なのは、「本当に必要なTODOだけを残し、適切に処理できる仕組みを作ること」なのかもしれません。