訳者まえがき
本書は、David Scott Bernstein著『Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software』(ISBN:978-1680500790)の全訳である。翻訳は株式会社アトラクタのアジャイルコーチ4人で行った。原著の誤記・誤植などについては著者に確認して一部修正している。
昨今では、最初に要求をすべて洗い出してそのとおりに作るウォーターフォール型のソフトウェア開発プロセス以外に、短い期間に区切って繰り返しフィードバックを得ながら進めるアジャイル型の開発プロセスが増えてきた。これはビジネス環境の変化であり、複雑で変化が激しい状況を乗りこなす上では、必然的な流れと言える。
フィードバックを得ながら進めるということは、つまり新しい機能を追加したり、機能を拡充したり、不要な機能を捨てる(これができない組織が多い……)といった活動をずっと続けることを意味する。一方で、時間の経過とともに、以前は短い時間で完成した作業に長い時間がかかるようになってしまうと、予測精度は下がり、ビジネス側も計画も立てにくくなってしまう。もしくは、同様のソフトウェアやサービスを提供している競合に追い抜かれてしまうかもしれない。これはまずい状況だ。ビジネスの観点で見ると、ソフトウェアの開発や機能追加はいつでも同じペースで進められるようにしたいと考えるはずだ。
そこで対処が必要になるのが、レガシーコードの問題である。著者は、レガシーコードを「修正や拡張、作業が難しいコード」と定義している。本書では、まずレガシーコードがどのような影響を及ぼすのか明らかにした上で、そもそも「レガシーコードを作らない」ためにどうすればよいかに多くの紙面を割いている。品質は作り込むのが基本であり、あとから品質を上げようとすると、最初から品質を作り込むのに比べると何倍ものコストがかかるからである。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access