13章プラクティス9レガシーコードをリファクタリングする

リファクタリングとは、外部へのふるまいを変更せずに、コードを再構築または再パッケージ化することだ。

数年前、私はマネージャーに、2週間のイテレーションすべてを使って、コードのリファクタリングをしたいと頼んだことがある。そのときのことを想像してほしい。そこでマネージャーが言ったのは、「いいね! それで、どんな機能が増えるの?」というものだった。

私は、マネージャーにこう言わなければいけなかった。「待ってください。私は今、リファクタリングの話をしています。リファクタリングは内部構造を変えるだけで、ふるまいは変えません。なので新しい機能は増えません

彼は私を見て「君はなんでリファクタリングをやりたいんだい?」と質問した。

私はなんと答えるべきだろうか?

ソフトウェア開発者は、こういった状況によく直面する。私たちはマネジメント側が使う言葉を使わないため、どう言ってよいかわからないのだ。私たちが使っているのは開発者の言葉である。

気分がよいとか、そのほうがかっこいいとか、Clojureなどの技術を身に付けたい。そういった理由でマネージャーにリファクタリングしたいと言うべきではない。このような答えがマネージャーに受け入れられることはない。そうではなく、リファクタリングをすることで、ビジネスにとってどう意味があるかを伝える必要があるのだ。

開発者はリファクタリングがどういうものかを知っている。だが、それを表現するのに適切な語彙を使う必要がある。つまり、価値リスクにつながるビジネスの語彙を使う必要があるのだ。

どうすれば、私たちはリスクを減らし、多くの価値を生み出せるのか?

ソフトウェアはその性質上、リスクが高く頻繁に変更される可能性がある。リファクタリングは以下の4つのコストを削減する。 ...

Get レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.