機械が使うものか人間が使うものか

機械には

  • 人間が使う機械
  • 機械が使う機械

の2種類がある。

人間が使う機械とは、UI(ユーザーインターフェース)を持っている機械のことだ。従来道具と言われてきたものは、人間が使う機械である。自動車もスマートフォンもそうだ。

システムとして見た場合には、機械と人間を合わせて一つのシステムとなる。車であれば、計器や窓から見える景色を人間は目で捉える;視覚からの入力を脳で判断する;判断の結果をハンドル・アクセル・ブレーキといったUIを通して機械に入力する;UIからの入力を機械は解釈して、舵角やエンジンの回転数の状態を変える;機械の状態が人間の視覚に再び入力される。このように機械と人間との間にはループが存在している。PCのディスプレイとキーボートも同じことだ。

機械が使う機械とは、別の機械との間でループを持つようなシステムを作るもののことだ。例えばLinuxといったカーネルは機械のための機械、ソフトウェアのためのソフトウェアだ。他のソフトウェアとカーネルの間でループが出来上がっている。人間が直接カーネルに命令することはない。BashWindows Explorerなどのシェルと呼ばれるソフトウェアがカーネルと人間との間を取り持つ。シェルは人間が使う機械だ。つまり、人間とシェルの間でループがあり、シェルとカーネルの間でループがある。

人間が使う機械と機械が使う機械は区別して考えなければならない。どちらも作るのは人間だが、設計に求められていものが異なるからだ。

人間が使う機械を設計する際に、ループを回すための障害になるのは当然UIだ。man machine interfaceとも呼ばれる。機械が出力しやすいものと人間が入力しやすいものは異なり、機械が入力しやすいものと人間が出力しやすいものも異なる。昔は体を機械に合わせろと言われて人間が機械の方に合わせてきたかもしれないが、現在では機械の方が人間に合わせるというのが基本だ。人間にとって学習しやすい・操作しやすい分かりやすいインターフェイスが求められる。

機械が使う機械に求められるのは、その機械を使う機械を作りやすいかということだ。

当然、インターフェイスの分かりやすさも求められる。その機械を使う機械を作るのは人間だからだ。機械と機械とのインターフェイスを規格という。ソフトウェアであればAPIapplication programming interface)とかプロトコルと呼ばれることもある。規格に求められるのは分かりやすさだけではない。

規格は変えてはならない。変えたらその機械を使う機械が動かなくなるからだ。人間のためのUIは変えてもいい。機械が人間に合わせるのが基本と書いたが、使いやすくなる分には機械の方が変わっても人間は対応できる。機械のための規格は変更があったら人間に作業が求めることになり、これは嫌がられる。規格は変えないようにするべきだし、もし変えるならば、後方互換を保証しなければならない。後方互換がないならそれは別の規格である。

規格はシステムとしての性能も考慮しなければならない。UIは人間にとっての使いやすさとシステムの性能は同じものと言えるが、規格の場合は使いやすさと性能は別の観点となる。例えば、冪等性という単語を最近良く耳にする。これも性能のための設計観点だ。

このように機械のための機械を設計する場合には、人間のための機械よりも考慮しなければならないことが多い。だが、『ITこそITで効率化せよ』で書いたように、機械に機械を使わせるべきだ。難しくても、機械が使う機械を作れ。

戦闘妖精・雪風(改) (ハヤカワ文庫JA)

戦闘妖精・雪風(改) (ハヤカワ文庫JA)