システムの中心に据えられるもの

 システムを設計しようとしたならば、アルゴリズムを、データ構造を、ネットワークを、注意深く編み上げていくことになる。それでも「使えるシステム」にはなかなかならないし、ましてや「狙った通りの成果を出すシステム」はもっと難しい。

 システムを構成する大きな要素はユーザだ。アルゴリズムも、データ構造も、ネットワークも、ユーザの行動をうけて動き始める機械にすぎないことを思い知らされる。システムにおいて人の動きをプログラムすることの難しさに打ちひしがれながら、機械って素直だよな、ちょっとバグが出たってすぐに直せるんだもの。と膝を抱えたくもなる。

 どのように動いて欲しいかのイメージをもってシステムを設計するわけだけど、実際のユーザはそのように動かしてくれない。それは、ワンクリックの手間があるかないかと言った程度のユーザビリティの欠如であったり、ヘルプの情報の欠如であったり、わずかばかりの処理の遅延だったりする。人を誘導することはとても難しい。UIデザイン云々のテクニックを駆使しても、ユーザビリティ云々の書籍を読みあさっても、ユーザは意図どおりにシステムを使ってはくれない。

 ユーザが想定外の使い方をするのに半ば呆れつつも、どうすればユーザに設計通りのシステムのパフォーマンスを体験してもらえるだろうかということを考える。ユーザが本来進んで欲しい道を避ける理由をこれでもかと検討し続ける。わずかずつパッチを当ててはユーザの反応を聞いて回る。それでもなかなかこういうシステム設計にしたらこうやってユーザが使ってくれるさってのを確度をもって答えられない。システムを設計すると言うのは本当に難しい。

 たとえば、家の設計図を見て。あるいは、公園の設計図を見て。街の設計図を見て。あなたは人の動線を正しく予測できるだろうか。家の使い勝手を、原寸大の模型なしに、図面の状態で想像できるだろうか。それが容易ならリフォームの需要はもっと少ないことだろう。あるべき形を一発で落としこめるのは相当に優れた建築士だろう。そこに至るまでにどれだけのミスを重ね、修正を試み、反省してきたのだろうか。