仕様駆動開発はレビュー地獄?──価値のスライスで天国に行こう
はじめに
AIに仕様を丸投げしたら、すごい勢いでドキュメントを生成してきた…。
最初は「便利だ!」と思ったのも束の間、気がつけばレビューの雪崩に埋もれる羽目に。
前回の記事では、AIコーディングのベストプラクティスの一つとして「価値をスライスする」ことを紹介しました。
実はこの発想こそ、仕様駆動開発(Spec-Driven Development)で「レビュー地獄」から抜け出す鍵だったのです。
レビュー地獄の正体
仕様駆動開発では、背景や要件をAIに渡して仕様を生成してもらいます。
しかし実際にやってみると、こんな罠が待っています。
-
成果物が雪だるま式に膨れ上がる
→ 最初は軽い要件だったのに、AIが延々と仕様を足し込み、気づけば大作ドキュメントに。 -
AIがオーバーエンジニアリングしがち
→ 本来は「小さく直す」だけで良いのに、新しいテーブルやサービスを勝手に設計し始める。 -
レビューの手間が増える
→ 膨大で複雑な仕様を前に、人間はチェックに追われて消耗する。
結果として、「コーディングは楽になったのにレビューは地獄」という逆転現象に陥ります。
天国への抜け道:価値をスライス
ではどうするか?
答えはシンプルで、「価値をスライスする」ことです。
大きなステーキ肉をそのまま焼こうとすると火が通らず食べにくいように、仕様も巨大なまま扱うとレビュー不能になります。
一枚一枚にスライスして焼けば美味しく食べられるように、仕様もスライスして扱えばレビューしやすくなるのです。
- 仕様を小さな粒度で生成させる
- レビューも差分や要件ごとに小分けする
- 余計な複雑さを避けて、価値の断片ごとに積み重ねる
こうすることで、レビュー負担はぐっと軽くなります。
レビュー地獄から抜け出し、スライス天国への道が開けるのです。
具体例:ログイン機能をスライスする
仕様駆動開発では、AIがこんな受け入れ要件を一気に吐き出すことがあります。
- ユーザー名とパスワードでログインできる
- ログイン後、マイページに遷移する
- パスワードを間違えた場合はエラーメッセージを表示する
- 連続で失敗した場合はアカウントをロックする
一見すると「ログイン機能」というひとまとまりに見えますが、実際には価値は複数です。
- 基本的なログイン成功/失敗
- ログイン後の遷移
- セキュリティ制御(ロック処理)
悪い例(レビュー地獄)
これらをまとめて「ログイン機能」として実装すると、こうなります。
- レビューが膨大になる:成功・失敗とセキュリティを同時に確認する羽目になる
- 原因が切り分けにくい:失敗が仕様ミスかロック処理のせいか判別困難
- リリースが遅れる:本来すぐ出せる価値も、余計な要件待ちで先送りに
良い例(スライス天国)
まずは「ユーザー名とパスワードでログインできる」だけを扱う。
次に「マイページ遷移」、その後「エラーメッセージ」「ロック処理」と積み上げていく。
こうすれば、レビューも実装もシンプルで、価値を早く届けられます。
まとめ
仕様駆動開発のペインは、成果物が雪だるま式に膨れ上がり、レビューが重すぎることにあります。
その解決策は、「価値をスライスする」ただそれだけ。
- 小さく生成する
- 小さくレビューする
- 小さく積み上げる
これだけでレビューは軽くなり、開発体験はぐっと楽しくなります。
結論はシンプルです。
仕様駆動開発はレビュー地獄?──価値をスライスして天国に行こう。
co-generated by ChatGPT
Discussion