「レガシーコードからの脱却」を読んだので感想を書きます。

https://www.oreilly.co.jp/books/9784873118864/

レガシーコードからの脱却

レガシーコードとは、バグを多く含み、壊れやすく拡張が難しいコードを指します。このようなコードの保守と管理には多大な労力がつぎ込まれることになります。しかも一度作ってしまったレガシーコードの質を上げるには、初めから質の高いコードを作るよりも膨大なコストがかかります。 本書では、ソフトウェア開発において、初めからレガシーコードを作りださないためのプラクティスを9つ挙げて解説します。プロダクトオーナーは目的を語り、やり方は開発者に任せること、小さなバッチで開発を進めること、継続的に統合すること、チームメンバーで協力することなど、日々の開発に取り入れる考え方と具体的な実践について各章で分かりやすく解説します。 信頼性や拡張性が高いソフトウェアをリリースしたい開発者、運用管理者、マネージャに必携の一冊です。

以前に一度読んだことがあるのですが、何も覚えていなかったのであらためて読み直しました。

ソフトウェア業界全体で変更の難しいレガシーなソフトウェアが作られておりそれによって多大な損失を生み出していることに触れ、 この本ではエクストリームプログラミングに基づいた以下の9つのプラクティスを提案しています。

  1. やり方より先に目的、理由、誰のためかを伝える
  2. 小さなバッチで作る
  3. 継続的に統合する
  4. 協力しあう
  5. 「CLEAN」コードを作る
  6. まずテストを書く
  7. テストで振る舞いを明示する
  8. 設計は最後に行う
  9. レガシーコードをリファクタリングする

「はじめに」でも触れられていますが、これらのプラクティスの背後にある原則の説明に重点が置かれており、 具体的にレガシーコードをどう改善するのかについては触れられていません。 その目的であればレガシーコード改善ガイドを読むことをオススメします。

チームにこれらのプラクティスを導入したい開発者やマネージャーが、 なぜこれらのプラクティスを導入するのかチームや上層部に説明する際には有用だと思いました。 しかし既にこれらのプラクティスを実践できている人からすると当たり前のように感じてしまい (恐らく自分が最初に読んだときにあまり記憶に残らなかったのもこれが原因)、 物足りなく感じるのではないかと思います。