2012/11/25

ソフトウェアの3つのインターフェイス
The 3 Interfaces of Software

ソフトウェアは以下の3つの存在に対して境界面を持ちます。
  1. ユーザ
  2. コンピュータ
  3. 開発者
もちろん、
  1. ユーザにとっては使いやすく
  2. コンピュータにとっては計算しやすく
  3. 開発者にとっては、保守も含めて開発しやすい
ソフトウェアが理想です。
必ずしもこれらは互いに対立するものではありませんが、
  1. 全てを1つにまとめる必用があること
  2. 人とコンピュータとでは得意/苦手なデータ構造やアルゴリズムが異なること
  3. 人は立場によって欲する情報が異なること
等の理由よって、トレードオフの関係になることもあり、
なかなか理想通りにはいきません。

これだけでも大変なのですが、ソフトウェア開発においては、
ユーザと顧客とが異なる場合も少なくありません。
たとえ顧客とソフトウェアの間に直接の接点はなくても、
何分お金を出して頂くスポンサー様です。
開発者は顧客を満足させるために、
いろいろと考えなければなりません。


開発者は、(コンピュータも含む)4種類の異なる方々を
満足させるソフトウェアを設計/実装する必要があります。
大変なわけです。