ドキュメント版控除制度?チェックリスト化で認識ズレを防ぐ方法|現場で使える実践テクニック
こんにちは!
今日は「ドキュメントをチェックリスト化して認識ズレを防ぐ方法」について解説します。
なぜドキュメントなのに認識がズレるのか
あ、これって僕が現場で何度も目撃してる現象なんですけど、めっちゃ面白いんですよ。
クライアントとの打ち合わせでしっかり仕様書を作った、エンジニアにも共有した、みんな同じドキュメントを見てる……なのに、進捗報告の時点で「あ、そういうことだったんですか?」っていう齟齬が生まれるんです。
なぜこんなことが起きるのか、僕も最初は謎でした。
でもね、原因ってめっちゃシンプルなんです。
ドキュメントは読むものだから、読者によって解釈が変わる。
例えば、仕様書に「ユーザープロフィール画像は、クリックで拡大表示される」と書いてあるとしましょう。
デザイナーはモーダル表示を想像してるかもしれません。
エンジニアはライトボックス機能を想像してるかもしれません。
クライアントは別のアプリの仕様を思い浮かべてるかもしれません。
同じ文章を読んでも、頭の中のイメージが違う。
これが認識ズレの根本原因なんです。
チェックリスト化のメリットと基本構造
ここで活躍するのがチェックリスト化という手法です。
ほんまに地味な方法なんですが、効果は絶大ですよ。
仕様書を「読む文章」から「確認する項目」に変換するんです。
そうすることで、解釈の余地がなくなるんです。
基本的なチェックリスト構造
簡単な例を出しますね。
- プロフィール画像のクリック動作
- ☐ 画像をクリックしたとき、モーダルが開く(背景は暗くなる)
- ☐ モーダル内には、元の画像の1.5倍サイズで表示される
- ☐ モーダル右上の「×」で閉じられる
- ☐ 背景をクリックしても閉じられる
- ☐ スマートフォン横向きでも、画像は画面内に収まる
昔は「拡大表示される」という1行の仕様だったのに、これだけ細かくなります。
でも見てください、これって実はバグの温床を先制で潰してるんですよ。
「背景をクリックしたら閉じるのか」「スマホでどうなるのか」こういった細部が明示されるから、実装時に誰も迷わないんです。
チェックリスト化のメリット
- YES/NOで判断できる : 「これってどういう意味だろう?」という問いかけがなくなります
- テスト仕様書になる : QAエンジニアがそのまま検証項目として使えます
- 進捗確認が楽 : チェックボックスを埋めるだけで、何が完了してるかが一目瞭然です
- クライアント承認が取りやすい : 「この項目、実装していいですか?」という形でスムーズに確認できます
実務での具体的な活用シーン
では、実際の現場ではどう使うのか、具体例を3つ紹介しますね。
シーン1:API仕様の確認チェックリスト
バックエンド開発とフロントエンド開発の界面って、めっちゃトラブルが起きるんですよ。
「レスポンスにこのキーが入ってると思ってた」「いや、そんなのないよ」みたいなのが日常茶飯事です。
そこで、API仕様をチェックリスト化すると……
- ユーザー取得API
GET /api/users/{id}- ☐ レスポンスに
id(数字)が含まれる - ☐ レスポンスに
name(文字列)が含まれる - ☐ レスポンスに
profileImage(URL文字列)が含まれる - ☐
profileImageがnullの場合、デフォルト画像が指定される - ☐ ステータスコード200が返ってくる(正常系)
- ☐ ユーザーが存在しないとき、ステータスコード404が返ってくる
- ☐ 認証トークンなしでアクセスすると、ステータスコード401が返ってくる
- ☐ レスポンスに
これでもう「え、このキーあるの?」みたいな会話が減ります。
両チーム、このリストを見て「ここまで実装します」「ここまで検証します」と約束できるからです。
シーン2:デザイン修正の完了判定
デザイナーに「ここ修正してください」と頼むとき、も昔の僕は「ここのマージンをもっと広げて」くらいの指示をしてました。
でもそれだと「どのくらい広げればいい?」「他のパーツとのバランスは?」という質問が返ってくるんですよ。
チェックリスト化すると……
- トップページバナー修正
- ☐ バナーの高さを800pxから1000pxに変更
- ☐ テキストは上寄せから中央配置に変更
- ☐ ボタンを画像の下に配置(マージン: 上から20px)
- ☐ タブレット表示(750px)では、テキストサイズを1段階小さくする
- ☐ スマートフォン表示(375px)では、バナーの高さを600pxに変更
これなら誤解の余地がありません。
デザイナーは「このリストをすべてクリアする」という目標が明確になります。
シーン3:クライアント納品前の最終確認
これはほんま重要なんですが、納品前に「あ、あの機能入れてなかった」みたいなことが起きるんですよ。
プロジェクトの最後の最後で。
その防止策として、納品直前にチェックリストを作成して、クライアントに「これで完了です」と示すんです。
- 機能実装完了チェック
- ☐ ユーザー登録機能(メール確認付き)
- ☐ ログイン/ログアウト機能
- ☐ パスワードリセット機能