Feature Pruning
現在のリリースに必要な機能だけを残す。目的は機能数を減らすことではなく、利用価値のない実装・運用・認知コストを除くことである。
入力
- 対象機能の一覧
- 主要ユーザーと主要動線
- 想定または実測のデータ量・利用頻度
- platform、accessibility、compatibility等の制約
- 既存代替手段
情報がない場合は不足を明示し、架空の使用率を作らない。
手順
1. 1機能ずつ目的を確認する
各項目について次を確認する。
誰が、いつ、何を達成するために使うか
現在のreleaseで必要か
無い場合に成立しない具体的scenarioがあるか
2. 必要なlensだけ当てる
- YAGNI: 将来の可能性だけで追加されていないか
- Convention: 慣習だけで存在していないか
- Existing substitute: browser、OS、framework、既存toolで代替できないか
- Operational cost: support、migration、monitoring、security負担に見合うか
- Accessibility: 削除・代替で利用可能性を損なわないか
全lensを固定回数で実行しない。独立したdomain知識が必要な時だけsubagentを使う。
3. 判定する
KEEP: 現在必要REDUCE: scopeまたは表現を縮小DEFER: evidenceが得られるまで実装しないREPLACE: 既存手段へ置換REMOVE: 現在の目的に不要UNKNOWN: 証拠不足
4. 変更後の主要動線を確認する
削減後も主要ユースケース、accessibility、rollback、運用が成立することを確認する。
出力
Current set:
Decision per feature:
Reduced set:
Evidence:
Unknowns:
Risk of removal:
Validation after release:
禁止事項
- 根拠なく使用確率を数値化する
- 3round、3agent、score matrixを常に要求する
- 削除数を成果指標にする
- platform標準なら無条件に代替可能と決める
- 方針自体のgo/no-goまで扱う