デモが示すのは、ある決まった流れの中でアイデアが成り立つということです。プロダクトを説明したり、その流れが理にかなっているかを確かめたりするのに役立ちます。お客様が頼りにする前に、利用者が違ったら、実データだったら、途中で中断されたらどうなるかも理解しておく必要があります。
これは、プロトタイプがテンプレートから作られたものでも、AI ツールで作ったものでも、社内チームや前任の開発者が作ったものでも同じです。私は、すでに役に立つ部分を評価し、足りない部分を洗い出し、このプロダクトにとって重要なリスクを中心に作業を計画します。
本物と、仮に動かしている部分を書き出す
プロトタイプでは、サンプルのデータを表示したり、支払いを模擬したり、すべてのリクエストが成功する前提で作られていたりします。そうした前提を一覧にしてください。予約完了を表示する画面があっても、空き枠のルール、決済との接続、確実な予約記録がまだ必要かもしれません。
デモの役に立つ部分は残しましょう。調査では、残せるもの、変える必要があるもの、まだ検証されていないものを説明するべきです。画面を見るだけでは、どれがどれに当たるのかはわかりません。
それぞれの人に何が許されているかを確認する
プロダクトの役割と、それぞれの役割が何を閲覧・変更できるかを書いてください。画面上で管理者用のボタンを隠すのは、対策の一部にすぎません。保護すべき操作やデータは、サーバー側でも制御する必要があります。
たとえば顧客ポータルなら、あるお客様が別のお客様の記録を取得できないこと、スタッフのアクセス権を外すと意図どおりの効果があることをテストします。OWASP Application Security Verification Standardは、アプリケーションのセキュリティ検証を体系立てるための参考資料です。プロダクトで実施する確認項目は、そのプロダクトが扱うデータとリスクに合わせて選ぶべきです。
障害と繰り返しの操作を想定して確かめる
お客様は、通信が切れたり、ページを再読み込みしたり、二度送信したり、外部連携がタイムアウトした後で戻ってきたりします。こうした状況でどうなるべきか、特にお金、在庫、重要な記録が関わる場合は、結果を決めておく必要があります。
支払いが保留中、または失敗したらどうなるべきか。
重複を作らずに、安全にリクエストをやり直せるか。
アップロードや通知が失敗したら、利用者には何が表示されるか。
完了していない処理を、スタッフはどう見つけて解決するか。
予約の例なら、ボタンを何度も押しても、一回の購入に対して予約が複数できてはいけません。適切な実装は決済事業者と予約のルールによって変わります。この動作は、範囲とテストに含めるべきものです。
実態に近いデータと流れを使う
長い名前、空の一覧、長い履歴、入力されていない項目、実際に使われるデバイスで試してください。サンプルが5行しかないダッシュボードでは、数千件の中から記録を探す様子はわかりません。保護されていないプレビューにお客様の個人情報をコピーするのではなく、適切なテストデータを使いましょう。
既存の記録をプロダクトに移す必要があるなら、項目の対応づけ、試験的な取り込み、確認の方法を計画してください。重複した記録や不完全な記録をどう扱うか、移行中に加えられた変更をどうするかも決めておきます。
リリースと復旧の計画をはっきりさせる
ホスティングやサービスのアカウントの所有者、必要な設定、正しい環境にリリースを届ける方法を把握しておきましょう。変更を本番に反映する前に、確認の項目と、問題が起きたときに元に戻す方法を決めておきます。
復旧は、古いバージョンのコードに戻すだけでは済まないことがあります。保存データの変更には、別の対応が必要です。チームは、どのバックアップがあるか、どう復元するか、その後プロダクトが動くことをどの確認で判断するかを知っておくべきです。
学ぶために公開し、サービスの責任者を決めておく
適切なグループに限定して公開すれば、多くの人に開放する前に問題を見つけやすくなります。フィードバックとエラーをどう集め、誰が対応し、どんなことが起きたら公開を一時停止したり取り消したりするのかを決めてください。GOV.UK のベータ段階に関するガイダンスでは、サービスを広く公開する前に、限定公開で学び、改善する方法が説明されています。
主要な流れを確認した人:…
権限と重要な障害ケースを確認した人:…
残っている制約:…
リリースと復旧の手順を記録している場所:…
フィードバックと障害に対応する人:…
公開範囲を広げる条件:…
これは計画のための問いであって、セキュリティ認証ではありません。どこまで検証するかは、プロダクトの性質と、障害が起きたときの影響に見合ったものにするべきです。プロトタイプをお持ちでしたら、すでに動いていることと公開したいことを教えてください。次のステップを一緒に検討します。