ソフトウェア業界が成熟するにつれて、既存のソフトウェア資産をメンテナンスする技術が重要度を増している。比較的歴史の浅いWeb業界でも、10年物のソフトウェアは珍しくない。キラキラしたWebスタートアップも、5年もすれば技術的負債の返済に追われるようになる。
そんな中で、いかにしてソフトウェアを保守し、サービスを継続していくか、という点に注目して、『レガシーコードからの脱却』を読んだ。
レガシーコードを題材にした書籍としては、他にも『レガシーコード改善ガイド』『レガシーソフトウェア改善ガイド』などがある。
『レガシーコードからの脱却』は、これらと比較すると、開発プロセスに焦点を当てている点が異なる。
『レガシーコード改善ガイド』は、レガシーコード(=テストのないコード)をいかにしてテスト可能にするか、という点を徹底的に突き詰めた書籍である。
一方、『レガシーソフトウェア改善ガイド』は、技術的負債はコードだけでなく、ソフトウェアを取り巻くインフラストラクチャーや開発環境にも潜むことを示した。
そして『レガシーコードからの脱却』は、レガシーコードはレガシーな開発プロセスから生まれると指摘し、アジャイルソフトウェア開発を正しく実践することで、レガシーコードから脱却できると説いている。
読者の現在のロールによって、どの書籍が最もフィットするかは変わってくると思う。
現場でレガシーコードと格闘しているソフトウェアエンジニアなら、『レガシーコード改善ガイド』に励まされる部分は多いはず。また、『レガシーソフトウェア改善ガイド』も具体的なテクニックが載っているので、すぐに適用しやすい。
それに対して、『レガシーコードからの脱却』は、コンサルタント的な、開発チームに対して外からアドバイスするような視点をもっている。現場でレガシーコードに取り組んでいるエンジニアが明日役立てられそうなテクニックが載っているわけではない。
一方で、アジャイルがソフトウェア開発のベストプラクティスであることや、まずいソフトウェア開発の方法によってどれだけの経済的損失が出ているか、といった点に十分な議論を尽くしている点が、類書とは異なる。どちらかというと、メンバーよりはリーダーやマネージャ、CTOといったポジションの、開発プロセスの改善に責任を持つ人たちが読むべき書籍という印象を受ける。
『レガシーコードからの脱却』は、バグの多いソフトウェアや開発スピードの遅さに悩まされていて、より良い開発体制を作りたいと願っている人にとっては、読む価値のある本だと思う。