システム設計は「かもしれない運転」で!

車の免許を取る際に、自動車学校で「だろう運転」、「かもしれない運転」という話を聞くと思います。
簡単に言うとそれぞれ、以下の内容になります。

  • 歩行者は自分に気づいて止まってくれるだろうという、自分本位で楽観的な考えによる運転
  • 歩行者は自分の車に気づいていないかもしれないという、悪い状況を想定した運転

そして、システム開発においても、”歩行者は自分の車に気づいていないかもしれない”というような気持ちが大切だと思います。
特に、画面のようなUIでは、ユーザーとのやり取りが発生します。
そして、ユーザーとのやり取りが発生するということは、ユーザーが予期しない操作を行ってしまう可能性もあります。

そのため、UIを考える際には、自動車学校でならう「かもしれない運転」のように、もしかしたら、ユーザーが想定外の操作を行うかもしれないということを考慮する必要があると思います。

そして、もしユーザーが誤った操作をしても、システムが正常に動作するようにするための検討する必要があります。

特に、通常の業務では入力されることはないが、画面からは入力できてしまうような項目については、もしかしたら、ユーザーが誤って入力を行ってしまうかもしれないということを念頭に入れ、入力エラーにする、または、入力された場合に正しく登録できるようにするなどの対応をとる必要があると考えております。

また、入力項目にSQLの一部や、HTMLの一部を入力するユーザーがいるかもしれないため、入力項目にSQLやHTMLが入力され多場合についての検討も必要になります。
(たいていのシステムは、SQLの入力への対応であれば、画面入力項目をSQLパラメータで受け取る、HTMLの入力への対応であれば、入力された記号をエスケープ文字にする、または記号を入力エラーにする等の対応がされていると思います)