Blog

なぜリファクタリングをするのか

2023-05-22

プロダクトに紐づくソフトウェアエンジニアリングの究極的な目標は「ユーザに機能を早く安全に届ける」ということである。 そのため、全ての意思決定の根拠はこれに帰結する。

リファクタリングはソフトウェア複雑性の主に認知負荷の要素を下げるための行動で、これをタスクとして進めたい場合は「なぜそのコードの認知負荷を下げる必要があるのか」を説明できる必要がある。 理解しにくいから、汚いからリファクタするは微妙に理由になっていなくて、その場合やるべきは話を聞いてドキュメントを書いたり足りていないテストを追加したりだったりする。 もちろん空いてる時間でパッとキレイにできるレベルならやればいいと思う。 (しかし結局最初に着手するのは挙動が変わっていないことを示すためのテスト作成だろう)

リファクタリングは目的ではなく、次の開発の一手を効率的に進めるための投資である。 あなたが必要だと思うならその期待される投資効果を関係者に説明し、納得させなければならない。