13章プラクティス9レガシーコードをリファクタリングする
リファクタリングとは、外部へのふるまいを変更せずに、コードを再構築または再パッケージ化することだ。
数年前、私はマネージャーに、2週間のイテレーションすべてを使って、コードのリファクタリングをしたいと頼んだことがある。そのときのことを想像してほしい。そこでマネージャーが言ったのは、「いいね! それで、どんな機能が増えるの?」というものだった。
私は、マネージャーにこう言わなければいけなかった。「待ってください。私は今、リファクタリングの話をしています。リファクタリングは内部構造を変えるだけで、ふるまいは変えません。なので新しい機能は増えません」
彼は私を見て「君はなんでリファクタリングをやりたいんだい?」と質問した。
私はなんと答えるべきだろうか?
ソフトウェア開発者は、こういった状況によく直面する。私たちはマネジメント側が使う言葉を使わないため、どう言ってよいかわからないのだ。私たちが使っているのは開発者の言葉である。
気分がよいとか、そのほうがかっこいいとか、Clojureなどの技術を身に付けたい。そういった理由でマネージャーにリファクタリングしたいと言うべきではない。このような答えがマネージャーに受け入れられることはない。そうではなく、リファクタリングをすることで、ビジネスにとってどう意味があるかを伝える必要があるのだ。
開発者はリファクタリングがどういうものかを知っている。だが、それを表現するのに適切な語彙を使う必要がある。つまり、価値とリスクにつながるビジネスの語彙を使う必要があるのだ。
どうすれば、私たちはリスクを減らし、多くの価値を生み出せるのか?
ソフトウェアはその性質上、リスクが高く頻繁に変更される可能性がある。リファクタリングは以下の4つのコストを削減する。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access