2009年2月24日火曜日

ソフトウェアクライシスを呼ぶもの

ソフトウェアクライシス(ソフトウェア危機)とは、ソフトウェアの複雑化により、人が管理しきれなくなり、不測の事態が発生する可能性が高くなってきたことを言ったものと思います。もちろん、もっと広い意味で使われることもありますが、開発者としては、この考え方が最もぴったりすると思われます。
ソフトウェアというものは、十分に役に立つ限り、できるだけシンプルであることのメリットは強調してもし尽くせないほど大きなものがあります。
しかし、それが分るのは、おそらくはソフトウェア開発者だけでしょう。
そこで、ユーザーはソフトウェアに限りなく高い要求を持つことになります。その要求する者が、その権利のある顧客である場合は、開発者は要求を受け入れざるをえない場合も多く、それがクライシスを生みます。
この事態が改善される見込みは、まあ、ありません。今後もソフトウェアの中には得体の知れない部分が多く作られ、場合によっては、大きな被害(人命すら)を発生させる可能性があるのです。

この問題には、私は長い間、うんざりするほど苦しめられてきました。
顧客がよく要求してくる高い機能の多くは、ユーザーインターフェース、つまり、ソフトウェアの使い勝手です。ソフトウェアのそれ以外の部分と違い、分りやすいからです。
漢字を入力すべきところでは、自動的に漢字モードになり、入力間違いをした時は、それを素早く親切にサポートしなくてはなりません。
前の入力項目に戻るのに、マウスを操作せず、矢印キーや、何か特定のキーでそれをやれなければなりません。
多くの場合、それがなくても特に不都合ないような操作でも、顧客は、それが無いと業務効率が悪くなると主張します。
そして、プログラミングで最も複雑でエラーの原因が入り込みやすいのが、この操作性、つまり、インターフェースです。
顧客は、贅沢なインターフェースを要求するほど、ソフトウェアの価格は上がり、しかも、トラブルを多くするのです。

もともと、Webシステムというのは、操作性が良くないどころか、それに関しては、非常に質素な機能しか持てませんでした。
ただ、最初は開発者側も「Webですから」という説明で顧客を納得させることができ、便利で、このことからWebシステムの開発がすっかり気に入ってしまった開発者も少なくありません。
ところが、最近では、リッチクライアントとかスマートクライアントとかいう、使い勝手の良いWebシステムが登場してきました。Ajax(エイジャックス)とか呼ばれる技術が代表的なものと思いますが、これもシフトウェアクライシスを増大させるでしょう。
何事によらず、贅沢を言っていてはみんなが不幸になるのです。

0 件のコメント: