終わらない
工事現場
「まずはMVP(最小機能)でリリースして、走りながら直そう」。
素晴らしいアジャイル精神です。
しかし3年経った今、システムはまだ「工事中」の看板だらけ。
屋根のない家に住み始め、雨漏りと戦い続ける生活は、いつ終わるのですか?
- 「暫定対応」というコードコメントが、1年以上前から残っている
- リリース後に機能追加ばかり優先し、バグ修正やリファクタリングの時間を取っていない
- 管理画面のデザインがなく、CSSが当たっていない「素のHTML」の状態だ
- 「いつ完成するの?」と聞かれても、明確に答えられない
「後でやる」は「永遠にやらない」の同義語です。
01. MVPの誤解
MVP(Minimum Viable Product)は「未完成品」という意味ではありません。
「提供できる価値は最小だが、品質は出荷レベルにある製品」のことです。
タイヤが3つしかない車を売ってはいけません。
スケボーでもいいから、ちゃんと走るものを出すのがMVPです。
ピットインして直せ。
事故ってからでは遅い。
02. 20%ルール
Googleには「20%ルール」がありますが、開発現場にも似たルールが必要です。
「開発時間の20%は、機能追加ではなくリファクタリングに使う」。
これを守らないと、コードは確実に腐っていきます。
新機能を作るのは楽しいですが、掃除(リファクタリング)をサボれば、
やがて部屋はゴミで埋まり、身動きが取れなくなります。
03. 「完成」を定義する
アジャイル開発に「完成」はないと言われますが、それは嘘です。
「バージョン1.0」の定義が必要です。
ここまではやる、これ以上はやらない。
スコープを区切り、一度きれいに仕上げてから、次のフェーズに進む。
終わりのないマラソンは、ランナー(エンジニア)を疲弊させるだけです。