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.