2005 年 11 月 25 日 : ソフトウェアの進化
ソフトウェアとハードウェアの間には隔たりがある。
ハードウェアと違い、ソフトウェアは完成した後もメインテナンスすることで時々刻々と変化する。
要するにソフトウェアとは進化する概念なのだ。
ソフトウェア企業の明暗を分かつポイントは、これについての認識の差によるのではないかと思うほどである。
ソフトウェアの売れ方で特徴的なのは、ジャンルごとに売れるソフトウェアが決まっていて、一極集中型であることに尽きる。OS も、データーベースも、メーラーも、ブラウザも・・・すべてのソフトウェアについて実際に世界で使われているものは 3 種類以内に限られる。
では、利用者は何を持ってそれを選択しているのだろうか?
勿論、"クオリティ"である。
"クオリティ"とは、機能、スピード、使いやすさ、ルック&フィール・・・、それらを総合したものである。
ソフトウェアは時を経て進化できる。
それでは、どうすればソフトウェアのクオリティを、自ずと高まるように進化するのかを洞察すれば良いだろう。ソフトウェアのクオリティは、メインテナンスのフェーズで、プログラムコードが綺麗なものに書き換えられることによって飛躍するのである。
多くの組織では、製品を研究開発する者とメインテナンスする者が別であることが多い。
その傾向は大企業ほど顕著である。
「プログラマーの仕事」でも述べたが、ソフィア・クレイドルでは製品を研究開発する者とメインテナンスする者は同一人物。
製品の設計思想を初め、隅から隅までよく理解している者がメインテナンスするので、何処をどう直せば良いかのプロセスがスピーディであり適切だ。
しかも製品への愛着もある。製品の産みの親でない者がメインテナンスするのとでは雲泥の差が出てくるものである。
超一流の作品を創造するには、メインテナンスという泥臭い仕事も喜んで引き受けるくらいの心意気というものが求められる。
ソフトウェアというものは、メインテナンスを経て洗練されてゆくというのは事実である。