« 習慣に組み込む技術 | トップページ | 数学の勉強法 »

ユーザは、バグを見つける生き物である。

どうしてユーザは、想定外の行動をわざわざしてくるのだろうか。
テストでは考えつかないような行為をどんどんとやってくる。
こっちがあらゆるテストパターンを消化しても、さらに斜め上の発想をしてくる。
わざわざバグを出すために行動しているとしか思えないのだ。

なぜだろうか。

プログラムとは、与えられた仕様の機能を追加していくものだ。
何もないところから一つずつ機能を追加していく。
これが、足し算の発想。

しかし、実際に仕様を見てソフトウェアを利用するユーザにとって
仕様とは制限である。仕様で制限されて無い限り、何でもやってくる。
「コンピュータは何でもできる」という前提から、
仕様で制限された行為以外は何でもやってくるのだ。
これが、引き算の発想。

「足し算の発想」と「引き算の発想」の違いは何か。

それは「その他」の存在。

例えば、アプリケーションを終了するときはどうするだろう。
「メニューから終了を選ぶ」「右上の×ボタンをクリック」「Alt+F4」などなど。
たいていは想像できる範囲であるが、例えば「PCの電源を切る」や
「ブレーカーを落とす」なんてことは普通考えない。
しかし、説明書に「ブレーカーを落とさないでください」とは
書かれていないため、いきなり落とす人がいるかもしれない。


「その他」をいかに小さくするか。
それが、開発者とユーザの差を埋める方法の一つであると信じる。

開発者側から歩み寄るか。
あるいは、ユーザに歩み寄ってもらうか。

例えば、if文のelseや、switch-case文のdefaultに
常に注目することも「その他」を意識した
もっとも容易な考えであろう。
例えば、この「その他」の概念について知ってもらう
あるいはユーザ教育により突拍子もない例外が
起こらないようにするなどもいいだろう。

どちらかというのは正しくない。
両方で歩み寄ってこそ「その他」が小さくなるのだ。
お互いの歩み寄りによる相乗効果。
これが、掛け算の発想であろう。


ユーザは、バグを見つける生き物である。
だったら、ユーザにテストしてもらえばいい。

|

« 習慣に組み込む技術 | トップページ | 数学の勉強法 »

コメント

とても共感できる内容だった。作り手は暗黙の了解事項を理解した上で作成するけど、使い手は何でもありだもんね。自由度を上げるとバグも増えるし、かといって下げるとガチガチのプログラムになってしまう。この辺のバランスを考えて作ることが大切であろう。『バグの成功例を裏技と呼ぶ』

投稿: mizuhono_hashi | 2005.01.29 15:05

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/1573/2731945

この記事へのトラックバック一覧です: ユーザは、バグを見つける生き物である。:

« 習慣に組み込む技術 | トップページ | 数学の勉強法 »