『欠陥ソフトウェアの経済学』を読んだ

| コメント(0) | トラックバック(0)

『欠陥ソフトウェアの経済学』を読んだ。ソフトウェアのベンダや開発者には間違ったインセンティブが与えられており、ユーザの求める方向とは異なる方向に進化している、という話。

第1章 文明の礎
第2章 60億の衝突テスト用ダミー:理不尽なイノベーションと間違ったインセンティブ
第3章 弱さの力:割れた窓と国家の安全
第4章 近視眼的見落とし:スピードに目をくらまされ激動に惑乱される
第5章 完全なる免責:訴えられるものなら訴えてみろ
第6章 オープンソース・ソフトウェア:無料の代償
第7章 進歩は可能か:別の未来へ向かう合理的インセンティブ
エピローグ
注釈 

目次は欠陥ソフトウェアの経済学 その高すぎる代償|Ohmshaより

ソフトウェアのバグを減らして安全にしたり、インターフェイスを整えて使いやすくすることは大事なことである。にもかかわらず、ユーザたちはそれにお金を払おうとしない(というより、それだけの価値をそこに見出せない)。その代わり、ユーザたちはソフトウェアに追加された新機能に対しては(比較的)あっさりと財布のヒモをゆるめる。そのため、ベンダはソフトウェアを安全で使いやすいものにするよりは、先鋭的にするほうに力を注ぐ。結果として、宣伝しやすいがあまり使わない機能ばかりが強化されていく。

というわけでソフトウェアが脆弱なものになるのは、市場経済の働きとユーザのファストフード好きのツープラトン攻撃によるものである。計算機は思ったとおりではなく指示したとおりに動く。それと同じく、ソフトウェアベンダは正しいものではなくユーザがほしがるものを作るのである。基本的には我々がほしがったものしかそこにはない。

というのはソフトウェアの消費者としての自虐であるが、生産者としての自虐もここに含まねばならんだろうと思う。ソフトウェア開発者は基本的に新しい物事が好きである。何かを提案しようとしたとき、既存のものを地味に使いやすくするより、それとは全然関係ない新しい機能をつくるほうが不思議とわくわくする。それにだいたい評価も得やすい。

評価が得やすい理由は前述したソフトウェアの消費者としての自虐がまさにそれであるし、新しい機能をつくるほうが楽しみなのは開発者なら自明である。先週書いたコードを理解するのに1時間はかかるし、1ヶ月も前に書いたコードならそれを見るのにもある程度の覚悟が必要である。気が重いことから逃げようとすると、必然的に新しいコードを書きはじめている。そしてソフトウェアの規模はまた不必要に大きくなり、再構築の可能性を小さなものにしていく。

そういう悪循環に対して開発者個人としてできることはあまりなくて、リファクタリングの機会を多く持ったり、リファクタリングしようとしたら構造ほとんど忘れてましたみたいなことを避けるために定期的にレビューすることが必要だろう。これはどちらかといえばチームとしての取り組みである。

たしかに放っておけばソフトウェアは肥大化・複雑化の一途を辿るだけなので、それを防ぐことが必要ですよ、ということを管理者とかにわかってもらうために読ませる本として、メタファが多用されて親しみやすい本書はなかなか適切だと思う。

余談。上記のとおりある程度技術的なことを把握してると、ひたすらに比喩を読まされることになって若干退屈を感じるきらいもあるのだけど、それを帳消しにできるくらい「エピローグ」が秀逸である。冷戦中、ソフトウェアのバグが引き起こした一触即発の事故の話であるが、どの程度真実かは別にして、男の子なら胸をときめかせること必至の4,5ページであると思う。

トラックバック(0)

トラックバックURL: http://www.tnzk.org/mt/mt-tb.cgi/309

コメントする

このブログ記事について

このページは、tnzkが2010年5月 6日 16:07に書いたブログ記事です。

ひとつ前のブログ記事は「Centos 5. 1 に tmux 1.2 にインストール」です。

次のブログ記事は「ブログを移転」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.32-ja