複雑なソフトウェアは、役割と権限によって定義されます。営業担当者はデータの特定のビューを見ることができます。営業マネージャーは別のビューを見ることができます。財務担当者はすべてを見ることができます。
デザイナーは通常、権限管理をバックエンドのセキュリティ上の懸念事項として扱います。フロントエンドは単にAPIに問い合わせるだけです。ユーザーが適切な役割を持っている場合は、UIにボタンが表示されます。そうでない場合は、UIはボタンを非表示にします。
これは目に見えない大きな摩擦を生み出します。私はこれを「スイスチーズインターフェース」と呼んでいます。ユーザーは画面を見て、本来機能があるべき場所に穴が開いていることに気づきます。なぜ穴が開いているのかは分かりません。ただ、ソフトウェアに何かが欠けているように感じるだけです。
ユーザーがタスクを完了しようとしている場面を想像してみてください。ヘルプ記事を読んで「承認ボタンをクリックしてください」と書かれているので、該当の画面に移動します。しかし、承認ボタンが表示されません。ページを更新し、インターネット接続を確認し、サポートチケットを発行します。サポートチームが調査した結果、ユーザーにボタンを表示するための特定の権限ロールがないことが判明します。
ユーザーはセキュリティ上の勝利を経験したのではなく、インターフェースの不具合を経験したのだ。