読了 レガシーソフトウェア改善ガイド

レガシーソフトウェア改善ガイドを読了しました。 2019年読了本48冊目。

読み始めの動機

レガシーな環境だったため。

概要

レガシーソフトウェアと対面したときにパッションのままに書き換えるとそれはそれで失敗する。リファクタリングの準備をはじめ、問題の切り分けと、ゴール設定をどうするかがまとまっている。

リファクタリング自体は汚いコードをきれいに整形したり、コメントアウトした死にコードを削除したりといったかんたんなものから、アーキテクチャの再選定、すべての書き直しまである。レガシーの深刻度や取れる予算と期限などをもとにどの手法を選定するかが参考になる。

また、リファクタリング自体には短期的にはビジネスにとって、有利な点が少なくユーザにとってもメリットがあまり多くない。その点をいかに説得するかの材料としても、ゴール設定は重要。(この辺政治的な部分まで考えられるエンジニアは超希少人材)

最後に、自分自身がレガシーソフトウェアを作り、後から入ってきた人たちを不幸にしないよう自動化や開発・ステージング・製品環境の整備、CI周りの刷新までまとまっている。

感想

ツール類は若干古そうなので、そこら辺はすっ飛ばして読んだ。ただ、自動化をやりましょうとかCIしましょうとかなので、その辺の思想だけ学べばいいかなという感じ。

レガシーソフトウェア改善ガイド