何が「エンジニア的」なのか?

 「エンジニア主導で作ると、動いたところで満足してしまう。『ちゃんと動いているから、あとは使う人が分かってくれるだろう』と、考えをストップするところがあった。本当は、動いたものを説明して分かってもらい、使ってもらうところまで来てやっと完成なのに」
近藤社長「未熟だったと思う」 はてなが目指す“脱IT系” (1/2) - ITmedia News
http://www.itmedia.co.jp/news/articles/0812/24/news044.html

 技術者ドリブンってことが、一般の人たちが使えないものを作ることだとしたら、それはプログラマとしてものすごく悲しいことだし、理想がものすごく退化しているように思う。もし技術者的発想ってものがそういうものだとしたら、技術者的発想に価値なんてないと思うんだけど。だって技術者しか使えないんでしょう?
エンジニア的発想は危険な気がしている - 矢野勉のはてな日記
http://d.hatena.ne.jp/t_yano/20081225/1230223162

エンジニア的って?

「エンジニアの考え方」が「使う」ということを十分に考慮できないということは、ある程度想像できる。しかし、それは「エンジニアの考え方」の結果であって、「どのようなエンジニアの考え方が「使う」ということを排除しているのか?」という問いに答えるところまでは、今のところ至っていないように見える。

まず、簡単に思いつくのが、エンジニアが「理系」だということである。彼らがエンジニアリングを行う際には、一般的にプログラミング言語などの、理系的で形式的な言葉を用いる。それに対して、人々の実際の使用は言葉に出来ないため、形式的な表現に反映できないのではないか、というわけだ。

それに対しては、これまた簡単な反例が思いつく。まず、プログラマ、特にギークと呼ばれる人々自体が、言葉に出来ないくらいの技巧を凝らして、プログラミング言語を使いこなしているということだ。言葉に出来ないことを言葉にすること、それはプログラミング言語でも変わらずに行われている。また、もう一つ。私達は、既に高度に形式化されたパソコンというものを、既に使っているではないか。私達がいくら言葉に出来ない行為をしていて、道具がどんなに形式的だったとしても、私達は道具を使うことが出来る。

もしくは、id:jkondoの言うとおり、「動いたらよい」というマインドなのか。いや、それも違う。だって、なんにしても最終的には「動くか動かないか」は最重要に決まっている。というか、システムは、動かなければだめだ。動かないシステムを誰が求めるだろう。

エンジニアの問題は「機能」中心の考え方

となると、「エンジニアの考え方」がまずいのは何なのか。私が考えているのは、「機能」という概念が原因ではないかということだ。この言葉は、まず要求定義で出てくるし、外に出す際も「新機能」として公開する。今私が文章を打っているのも一種の「機能」だし、近くにある数々のクリッカブルな画像も、何らかの「機能」を提示している。それは、別にきっちりやってるSIに限った話でもなく、エンジニア全般に言えることだ。

では、機能の何がまずいのか。まず、機能という観点では、進歩を示す指標は「新機能」か否かということだけだということだ。ユーザビリティの向上も「新機能」で、Wiiのような「楽しい」ものも「新機能」だ。その中身が何かにかかわらず、「新機能『なんとかかんとか』をリリース!」と言ってしまえるので、どういう意義があってこの機能を実装したのかということは、さしあたり関係なくなってしまう。

あと、機能という見方が決定的に問題を抱えている部分がある。特に「ユーザー経験」って言葉が活発になってからなおのこと誤解が広まったんだけど、「機能を使う」ということが、イコール「経験」というようになってしまっているのだ。例えば「〜という機能で〜というユーザー経験を提供する」という言葉がその最たる例だ。

これは、機能に「こういうものだ」という言葉によって説明を与えることで、機能と言葉を結び付けている(カテゴリー化)だけで、機能が経験そのものをポンと与えられるわけではない。人は、ある経験をしたあとで、その経験を判別し、カテゴリーに当てはめ、人に説明する。カテゴリーがあらかじめ与えられたとしても、それは「こういう経験をするだろう」というある程度の予測に役立つだけで、カテゴリーそのままに経験を与えられるわけではない。これに気づかない限り、「楽しい経験」や「使いやすさ」を含んだ機能を実装しても、また説明をより判りやすくしたとしても、同じことの繰り返しになるだろう。

これをすさまじく端的な形で明るみに出したのが、Lucy Suchmanの「プランと状況的行為」だ(ちなみに上の段落はSuchmanの「Do Category Have Politics?」の受け売り)。

プランと状況的行為―人間‐機械コミュニケーションの可能性

プランと状況的行為―人間‐機械コミュニケーションの可能性

実験の内容をかいつまむと、昔エキスパート・システムという人工知能の一種があって、その考え方を使って使いやすいコピー機を作り出そうというプロジェクトがあった。これは入力からいろいろ条件分岐していって「今はこういう状態だからこうすべき」みたいなことを懇切丁寧に教えてくれるものなのだが、途中から機械のルール内の「こういう状態」ってのと人間の想定がどんどんずれていって、何をしていいか判らなくなる、という過程を示したのだ。これはある意味で、いくら機能に説明を加えたところで無駄だということを示している。

ここで一つの結論とすると、「使いやすさ」だろうが、「楽しい経験」だろうが、どんな機能も使う人が自分で判断する「この機能はこういうものだ」という意味づけから逃げられないということだ。ユーザーは思ったより能動的なのだ。それを踏まえて、機能や経験といい関係を築いていくことがスタートラインだろう。まあこれも難しい議論で、「経験を観察する人間」と「観察した経験を機能として実装する人間」の間の翻訳にはいまだ結論が出ていなかったりする。今のところ、それはデザイナーのアイデアというこれまたあいまいなものに任されているようだ。

個人的にはこの議論を続けたいのだが、「続きます」と書いて本当に続いたためしがないので、とりあえずここまで。(というか需要ないしー)