既存UIから画面横断のUX仕様を作る
画面やワイヤーフレームには、表示要素だけでなく、機能の入口、操作できる条件、遷移先、データの変化が現れている。 しかし、1つの画面を説明するだけでは、複数画面にまたがる処理や、失敗後の回復方法までは共有できない。
この不足を埋める文書を、本ページでは UX仕様 と呼ぶ。 UX仕様は、ユーザーが目的を達成するまでに見る情報、実行する操作、システムの応答、状態の変化を、検証できる形で記録する文書である。
UX仕様は完成した画面からも作成できる。 既存UIを観察して現在の動作を記録し、不明な部分を未決事項として残せば、重要なフローから段階的に仕様を育てられる。
既存の成果物をUX仕様へ統合する
UX仕様は、企画やデザインの成果物をすべて置き換える文書ではない。 各成果物で決まった内容のうち、ユーザーが観測できる振る舞いを取り出し、Screen Spec、Flow Spec、Feature Spec、Pattern Specのいずれかへ統合する。
統合後も、課題を発見した経緯、アイデアの比較、レイアウトの検討過程は元の成果物に残す。 一方、実装と検証で参照する確定済みの振る舞いはUX仕様を正本とし、同じ規則を複数の文書へ複製しない。
| 既存の成果物 | 元の成果物に残す内容 | UX仕様へ統合する内容 | 統合先 |
|---|---|---|---|
| プロダクトブリーフ | 対象ユーザー、課題、提供価値、成功指標 | 機能の目的、対象範囲、ユーザーに提供する結果 | Feature Spec |
| ユーザーストーリー、要件 | 優先順位、採用理由、対象リリース | 機能の規則、権限、状態、受け入れ条件 | Feature Spec |
| ユーザーフロー | 検討案、ジャーニー上の感情や課題 | 開始条件、画面遷移、システム応答、分岐、失敗後の回復 | Flow Spec |
| ワイヤーフレーム、既存UI | レイアウト、視覚表現、デザインの検討過程 | 入口、表示情報、操作と結果、出口、画面固有の状態 | Screen Spec |
| UIの状態一覧 | 状態用語、分類、状態ケースの棚卸し | 対象画面の成立条件、期待する表示と操作 | Screen Spec、Pattern Spec |
| ユーザビリティやアクセシビリティ基準 | 一般原則、適用基準 | 対象機能で観測できる受け入れ条件 | 各UX仕様 |
| デザインレビュー | 証拠、判定、修正提案 | 確認した動作、矛盾、未決事項、修正後に確定した振る舞い | 影響するすべてのUX仕様 |
| 実装Issue | 変更の目的、作業範囲、実装タスク | 今回実装するUX仕様のIDと受け入れ条件 | UX仕様を参照する |
| ADR | 技術や構造に関する重要な決定 | ユーザーが観測できる結果が変わる場合だけ、その変更内容 | UX仕様を更新してADRを参照 |
ユーザー体験の計画は、ユーザー理解からUIデザインまでの検討を扱う。 本ページは、その計画や既存UIから、実装と検証に使える振る舞いを取り出す段階を扱う。
計画からレビューまでを循環させる
UX仕様への統合は、一度だけ行う移行作業ではない。 企画、設計、実装、レビューの各段階で得た決定を、次の順序で仕様へ戻す。
- 要件定義で、機能の目的と共通規則をFeature Specへ記録する。
- ユーザーフローで、開始から完了までの遷移と分岐をFlow Specへ記録する。
- ワイヤーフレームや既存UIから、各画面の表示と操作をScreen Specへ記録する。
- 複数画面や複数機能に繰り返し現れる振る舞いをPattern Specへ切り出す。
- 実装Issueは対象となる仕様IDと受け入れ条件を参照する。
- レビューで見つ けた差分を、観察、矛盾、未決のいずれかとして仕様へ戻す。
- 合意または修正後に確定した内容と変更影響を更新する。
元の成果物とUX仕様が異なる場合は、黙って一方へ合わせない。 根拠と差分を矛盾として記録し、決定後に両者の役割に応じて更新する。
4つの仕様を使い分ける
画面ごとの情報と、画面をまたぐルールを1つの文書へ詰め込むと、同じ決定が重複する。 そこで、対象の違いに応じて4つの仕様へ分ける。
| 種類 | 対象 | 答える問い | IDの例 |
|---|---|---|---|
| Screen Spec | 一つの画面や場所 | 何を表示し、何を操作でき、次にどこへ進むか | SCR-profile-edit |
| Flow Spec | 開始から終了までの画面横断フロー | ユーザーとシステムが、どの順序で何をするか | FLOW-update-profile |
| Feature Spec | 複数画面に現れる一つの機能 | どのルール、権限、状態が全体に適用されるか | FEAT-profile |
| Pattern Spec | 複数機能で再利用する振る舞い | 共通の操作やフィードバックをどう統一するか | PAT-form-submit |
Screen Specは、Flow Specを構成する場所になる。 Feature Specは、複数のScreen SpecとFlow Specで共有するルールの正本になる。 Pattern Specは、特定の機能に依存し ない共通の振る舞いを定める。
すべての種類を最初から用意する必要はない。 1つの画面だけで完結する変更ならScreen Specから始め、同じルールが別画面にも現れた時点でFeature SpecやPattern Specへ切り出す。
根拠の強さを区別する
既存UIに表示されている動作が、意図された仕様とは限らない。 実装の不具合や、更新されていないワイヤーフレームも根拠に含まれるためである。
各決定には、必要な範囲で次の区分を付ける。
- 確定:承認済みの仕様、要件、テスト、外部契約で確認できる内容
- 観察:現在のUIや実装で確認できるが、意図された動作かは確認できない内容
- 推測:観察した内容から補った仮説
- 未決:判断に必要な情報がなく、決定者の確認が必要な内容
- 矛盾:複数の根拠が異なる動作を示している内容
根拠には、文書の見出し、Issue、画面名、ワイヤーフレームのフレーム名、実装箇所、テスト名などを記録する。 確認していない動作を滑らかな文章で補うと、実装者が推測を確定事項として扱ってしまう。
- [確定] Issue #42「プロフィール編集」の完了条件
- [観察] ワイヤーフレーム「プロフィール編集 # 保存中」
- [推測・中] 保存後は詳細画面へ戻る。
現在のボタンと画面構成から推測した。
- [未決] 保存に失敗した場合、入力内容を何分間保持するか。
- [矛盾] ワイヤーフレームは自動再試行、実装は手動再試行を示している。