機能追加とリファクタリング
リファクリングばかりを重視すると、機能追加が遅くなる。顧客がほしいものを手に入れられない。
機能追加ばかりを重視すると、ソースコードの複雑性が増大する。長期的な視点では、顧客がほしいものが手に入れられない。
よく現場である失敗シナリオは、
- あまりにも多忙
- 長期的な視点持つだけの余裕がない
- 機能追加ばかり重視、リファクタリングには投資されない。
- 機能追加の修正箇所が分散
- バク混入率増加
- 多忙がさらに多忙になって、プロジェクトに暗雲が・・・
・・・
の悪循環シナリオだろう。
逆に、リファクタリング重視の失敗シナリオは、
- プログラマが既存の不吉なにおいのするソースコードを発見
- 開発の状況を意識せずに、盲目的にリファクタリングを開始
- 名前付けなどに没頭。数時間を費やす。プログラマ自身は自己満足。
- おっと3日後が納期!やべやべ。今回の追加機能削っちゃうかな。
なんかは、私も経験がある。
機能追加とリファクタリングの2つのバランスを具体的にどのようにとるかの、
チームに顧客に十分な納得感のある意思決定モデルは、未だに、ぼくにはない。