【第8回】良いアプリケーションとは何か

昔、わたしが某メインフレーマーの駆け出しSE(PG?)であった頃、こういう事件があった。

工場のある製造ラインの係長が「MRPを導入したいのだが、その前提となる在庫がうまく把握できない」というのである。わたしは「分かりました。何とかしましょう」と言って、急遽、在庫入力の画面を作成してその係長に持って行った。「この画面から在庫数を入力すれば在庫がわかります」と言ったところ、係長が笑えないくらい怪訝な顔をしたのであった。

当時のわたしはあらゆる事象は学校の試験問題のように答えが1つあってそれを解明すればよいと単純に考えていたのである。報告できない隠し在庫とか、調べないと在庫はわからないとか、使用可能な在庫と使用不可能な在庫があるとか、そういう現実をまったく知らなかったのである。
つまり、現実の世界は最適解が常に複数あって、そのどれを選択するかがソリューションの本質であり、本当のアプリケーションデザインの難しさだということがわからなかったのである。

よいアプリケーションとはユーザーの視点のみで判定されるべきものであり、決してSEやPGの立場から「このアプリは最高だ」などという評価はできないのである。ユーザーの視点をどれだけ汲み取って見抜いて道具として使いやすくしたがが問われるものなのである。
他のよくあるケースで説明してみよう。

かつてあるお客さんの経理画面を設計したSEがいた。この画面はすべての機能を一画面で集約したお化け万能画面であった。これを作ったSEは「この画面は非常に高度なプログラムでこのシステムで一番技術力を結集した」とコメントした。ところがこの百徳ナイフのような画面はお客さんから「どういう風に使うのかさっぱりわからない」とクレームの嵐になった。するとかのSE氏は「この客はアプリケーション(システム)がわかっていない」とこぼしたのである。
アプリケーションをよくわわかっていないSEはあれもこれも機能をてんこ盛りに集約することがよくある。そしてそれを高性能だと勘違いしているのである。
それで百徳ナイフのような超多機能な万能画面をデザインするのである(どっかの携帯電話にも同じ話しがあてはまるのだが)。
例えば、百徳ナイフの中の耳掻きで耳を掻いたらどうなるだろうか?
まず、100の機能から耳掻きを探すのに100回ツールを出し入れしなければならない。次に、百徳ナイフは数キロの重さがあるので両手でしっかり持たないと耳が血だらけになってしまう。両手で数キロの耳掻きを持って細かい耳掻き作業をするのは、小さな羽根のような耳掻きで耳を掻くよりも何百倍も使い勝手が悪いことに気づくだろう。

アプリケーションは単なる道具である。仕事の道具である。道具はシンプルで明快で使いやすくなければならない。
よいシステムとはそういったよい道具の集合体なのである。

けっして高度である必要はないし、びっくりするくらい簡単な画面が非常に重要であったりもするのである。

Simple is best ではなく、Simple is the best!である。
よい設計はJavaの最初のWhite Paperにあるように、Keep it small & simple!でなくてはならない。

弊社では若いSEに画面をデザインするときにこう指導している。

「その画面を新人にいきなり見せてどう使うのか説明させてみろ」
「そこで使い方がわからなかったところが君の設計の不具合である」