レガシーコードの改善は事前に経営陣とスケジュール、リソースの調整をしてから行うと良さそう
本書ではレガシーコードを以下と定義しています。
創業期の資金不足や人材不足によって生じたコード上の課題全般を、広義のレガシーコードと定義し、使用します。
レガシーコードへの本って方法的な話が多いが、この本ではそもそも会社は事業計画があって、技術的負債も含めてレガシーコードへの対応は経営陣と協調して進める必要があると書いてあって、僕としては初めて見た内容でこの視点はとても勉強になりました。
お金の視点は欠けていて、金銭面で見たときの会社の生存期間(ランウェイ)を計算し、人を●人採用すれば毎月の支出が増えるのでランウェイがこのくらい短くなって...といったことを考えたことがなかったので、それを知れただけでも読む価値があったなと思います。
経営陣への3つの提案
レガシーコードへの対応として以下の3つのパターンがある
- 現状のままいく
- リファクタリングする
- リプレイスする
それぞれのパターンで人を増やすことも踏まえて人件費がどのくらいかかるかを見積もりして、経営陣と相談する
レガシーコードへの対応
レガシーコードと言っても不具合発生率、開発効率、技術的負債、デプロイ頻度など様々なものがあり、今一番困っているもの、改善して効果が大きいものを見極め、それに合わせた採用だったり人の割当をする必要がある
まとめ
技術的な方法としてレガシーコードへの対応をこの本に期待すると違うが、経営陣と会話して何を進めていくのか決めているようなエンジニアには良い本だと思う。
そうでなくても、こういった視点を持って会社を経営しているということが分かってとても勉強になった。
技術的な部分はざっくりとした解説になっているので、そこを自分で埋めていこうと思う。