【書評】レガシーコードからの脱却|とにかくテストせよ

レガシーコードからの脱却 表紙ビジネス書

どうも、いっとくです!

レガシーコード。

なんとかっこいい言葉の響きでしょうか!

もし僕がエンジニアでなければ、レガシーコードなんて単語を聞いたらさぞ伝統を大事に引き継いで洗練されてきたコードなんだろうな〜自分でも書きたいな〜と思うことでしょう。

しかし、レガシーコードの実態はそんないいものではなく、今まで蓄積されてきた負債によって、少しの変更でも大きな傷みを伴うモンスターなのです。

スパゲッティコードと言い換えてもよいでしょう。

実際に何も考えずにサービスの開発を繰り返していくと、負債はどんどん溜まって大変なことになっていきます。

そしてそんなレガシーコードで悩んでいるプロジェクトは山のようにあります。

修正したら全然関係ない箇所がぶっ壊れたりするコードや、一つの変更のために何箇所も変更しないといけないコード、全然ドキュメントが信用できないプロジェクト、ノイズのようなコメントアウト…

嫌ですねぇ。

想像しただけで変更が怖くなります。

そして、そういったレガシーコードが完成するのを防ぐためにはどうしたら良いのかという時に参考にしたい本がこちらでございます。

レガシーコードからの脱却 表紙
レガシーコードからの脱却 ソフトウェアの寿命を伸ばし価値を高める9つのプラクティス
著:David Scott Bernstein 訳:吉羽 龍太郎、永瀬 美穂、原田 騎郎、有野 雅士
出版:オライリー・ジャパン

いやはや、これはかなりの良書でした!

さすが2020年のITエンジニア本大賞技術書部門大賞受賞作品ですね〜

コードよりもチームで開発を進めていくためのテクニックに寄せた内容になっていますが、これを読む前と後ではどの様にして開発を進めていくのかという意識が変わるという点ですごく影響力のある本でした。

特に具体的なプラクティスに落とし込んで語られているので、チームで試したりするのにもピッタリの内容だと思います!

スポンサーリンク

アジャイルプラクティス+テスト駆動開発 = レガシコードからの脱却

読んでいて感じたのはアジャイルのプラクティスにフォーカスがあたった内容になっているな〜ということ。

特にXPのプラクティスがすごくベースになっている感じなのですが、個人的にはXPよりも事例が具体的なので、なぜこのプラクティスが必要なのかというところが読んでいてしっくり来る内容でした。

あと本書の副題で9つのプラクティスというキーワードがあり、それに沿ってしっかり9つのプラクティスを紹介しているのですが、各プラクティスは同等のレベルのものというより少し偏りがある印象でした。

特にテストファーストでの開発がキーワードになっており、他のプラクティスにも大きな影響を与えています。

例えばリファクタリングをしようぜみたいな章はちゃんとリファクタリングをするためにはテストが無いとできないよねって感じです。

とにかくテストファーストでの開発がものをいうぜという強いメッセージ性すら感じます…

この「レガシーコードからの脱却」は社内の輪読会で半年間以上かけてじっくり議論しながら読んだのですが、この本で出てきた内容を深堀りするために、「XP」や「スクラムブートキャンプ」、「クリーンコード」なども並行して読んだので、副次的にいろんな知識とつなげることができたというのも大きかったですね。

とにかくこの本起点でめちゃくちゃ知識の幅が広がった気がします。

現職だとフルで開発業務にあたっているわけではないので、この内容をすぐさまバキバキに活かすというのは難しいのですが、少なくともモダンな開発現場の考え方やそういったところで採用されているプラクティスを知ることができてよかった。

序文ではエンジニア以外にも開発について知らないマネージャーにもオススメとあるように、たしかにチーム全員が把握できていると強いチームができあがりそうと思える内容でした。

恐らくエンジニアサイドの人VSビジネスサイドの人間の対立みたいなものっていろいろな現場で起きているだろうし。

まぁ一部エンジニア以外が読み解くの無理じゃねって章もいくつかありますが、どんな負債が積み重なってプロダクト開発のスピード感が落ちてくのを知れるだけでだいぶ変わると思うんですよね。

最後の方に出てきた、既存のレガシーコードをどうにかするのは不可能なので、これからのコードをレガシー化させないように気をつけようみたいなメッセージは潔すぎて笑いましたが。(レガシーコードをどうにかしたいと思って読み始めてたら笑えない、、、)

この本を読んで未来のレガシーコードを減らしていきましょう〜!

以上、いっとくでした。

コメント

タイトルとURLをコピーしました