2009年10月5日月曜日

極悪非道インタフェースが生まれるワケ

極悪非道インタフェース。すなわち、電源や機械の主要な操作をソフトウェア制御に頼りきりにしたくなる気持ちは良くわかる。プロダクトデザイナーから見れば、プロダクトを「工学的呪縛から開放」することになるからだ。すなわち、これまではプロダクトに付けざるを得なかった様々なスイッチ類やつまみ類が、タッチパネルやらGUIの進化によって全て取り外すことで、プロダクトデザインをよりクリーンでシンプルなものに仕立て上げることができる。

しかし一方で、ソフトウェアの世界というのはハードウェア(例えば金型による大量複製、電子回路基盤、メカニカルな機構)と違って、「バグがあるのが当たり前」の世界である。ここに、プロダクトデザイナーと情報デザイナーの間での「大きな乖離」があるように思う。


バグなんて当たり前

ソフトウェアにはバグが付き物である。民生用に出荷されている電化製品で、バグが無いものなんて、消防機器、介護機器、警備機器などを除いては、ほぼ無いといって良い。例えばハードディスクドライブだって、たいがいのファームウェアにはバグをかかえているといわれている。自動車だってバイクだって液晶テレビだって携帯電話だって、みーんなバグだらけだ。

ソフトウェアにバグが多くあるというのには、3つの理由がある。

  • システム全体の複雑度が1人の人間が把握できる限界を超えており、不都合が創発(emergence)的に生まれる。
  • バグを全て取り払うのに莫大な時間がかかるため、コスト面からバグを含む状態で出荷せざるを得ない。
  • バグのある製品を出荷したとしても、大抵はソフトを書き換えることでバグをフィックスできる。(自動車、携帯電話、OSなどが、この方法でバグを修正している)
下のグラフは、ソフトウェア開発の現場において頻繁に話題に出される「バグ収束曲線」である。バグが時点28(開発開始から28日目、もしくは28週目)のあたりから変極点を迎えており、収束される傾向にあることがわかる。このように、ソフトウェアのバグ管理というのは、バグをゼロにすることではなく、統計的な指標によってある程度の幅にコントロールすることにある、といえるだろう。
 ソフトウェアというのは、スイッチや機構によるコントロールと比べて、はるかに脆弱で頼りにならないものなのだ。

http://www.ne.jp/asahi/jul/1632/Ochibo/BugGrowth/Image-1.gif