ソフトウェアの死ってなんだろう

私はいちおう、ほとんどの期間をソフトウェアを作る側の人として過ごしてきたので、ソフトウェアの死ってなんだろうということをたまに考える。考えておかないと投資価値の設計ができないので、自分の労力を含め投資がままならない。けっこう大事な話だ。


WIndows XPが寿命を終えようとしている

世の中では、Windows XPのメンテナンスが終了する問題がニュースにでているが、XPは多くの利用者にとって、ハードウェアが壊れるまでは利用価値があるソフトウェア、ということだろう。世界最高峰の素晴しいソフトウェアだと言っていいのではないだろうか。でも、終わってしまう。一方で、Amazon Web ServicesSalesforce.com、Github のようなクラウドサービスが継続課金モデルの中で改良を重ねている。

ハードウェアの死

ハードウェアであれば「正常に動かなくなったとき(実質的な耐用年数の終焉)」、「利用価値がなくなったとき(減損)」ということになるかなと思う。動かなくなった時は修理してもらえば伸ばす事ができるだろうから、メンテナンス体制は重要だ。任天堂の「神修理」のおかげで、今日もうちのゲーム機は元気に働いている。次世代機が出て前のやつをしまい込んでしまう事は多いけど、Nintendo64 だって結構最近まで収納スペースに残してあった気がする。

ソフトウェアの死は、価値をコストが上回った時に生じる意思決定によって生まれる

ソフトウェアの死というのは「製品としての資産価値であったりユーザーとしての利用価値に対し、維持コストが上回ってしまって、もう組織としては片付けないとどうしようもない状態」に迎えるのだと考えることができそうだ。

ビジネスの状況が変わって役に立たなくなるときは、利用価値が下がる。それをサービスや製品として売っている場合は、利用者が継続してコストを払ってくれなくなり、売上げが減っていく。

冒頭のWindows XPの場合を考えると、脆弱性対策のためのメンテナンスを維持するコストを支払うほどに、その製品が売上げを生み出さなくなっていることと、より新しい製品を生み出していくために、優秀なエンジニアをいつまでもその製品に縛り付けておくのは機会損失が大きくなってしまった、ということだろう。

メインフレームで動く業務ソフトウェア、TCP/IP以前によく使われたネットワークプロトコルを使ったファイル共有製品、古いバージョンのExcel上で動くマクロ、Perlで動くCGI、IE5向けに作られたActiveXコントロールJavaScript、といったものが、自分が使ったり作ったりしたもののなかで、いつか終焉を迎えてきた(一部は自分がその死を目にする前に別の場所に動いてしまったので見ていないものもある)。


寿命の長いソフトウェアは、きっと実質の資産価値が高いのだろう

死をできるだけ先延ばしにすることができれば、そのソフトウェアの資産価値は高く、組織にとってより有用であった、ということが言えるだろう。できることならば、そういうソフトウェアを生み出したいと思うのは、自分のようなソフトウェア開発者の存在意義といっても過言ではない、と思っている。

たぶん、つづきます。

ほんとうは、昨日Facebookでたくさんコメントをいただいた「開発チームの寿命を"システム"より長持ちさせるにはどうするか」という話を書きたかったのだけれど、長くなってしまったので、いったんここで終わりにします。

補足 : ソフトウェア と システム

児玉公信先生から、ソフトウェアとシステムを混同している可能性をご指摘いただきました。システムというのは、人工物と人を包含する概念です。ソフトウェアや、それをのせるハードウェア、エンドユーザー、運用する人、などなど、関わる全体を示します。私たちが日々作っているソフトウェアは、システムの一部として活かされるために生み出されているのですね。きっと。 ... ぜんぜん回答になってなくてすみません。ご指摘ありがとうございます。かんがえてみます。