orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

古くなるソフトウェアと、人間の心

 

古いソフトウェアはメンテナンスされないので、セキュリティーホールになる。これがソフトウェアベンダーの言い分だ。

確かにその通りだが、裏目的もあると思う。

昔のソフトウェアを元気に使われたら、新しいソフトウェアが売れない。

消耗品だからこそ、次の商品が売れる。ただ、そもそもデジタルは古くならないのが特性だったのではないか。ストレージさえ移し替えれば、永遠の命を持つのではなかったか。

最近は、ソフトウェアベンダーもサブスクリプション化に躍起である。使い続ける限りお金を支払う体系は、会社が存続するために非常に都合がいい。

永遠に使えるソフトウェアなど作ってしまったら、そのソフトウェアを使っている限りソフトウェアベンダーにはお金が入らなくなってしまうではないか。

ソフトウェアが古くならないと、作り手が困るのである。

ソフトウェア自体は消耗品ではないが、消耗品になるような実装をわざとしている、ということだ。

しかも、この実装をするタイミングが、サポート期間内である。未来になったら使えなくなる仕組みを埋め込んでおく。

食べ物で言えば、期間が過ぎたら毒になるように器に仕組みを設けておくのだ。腐った食べ物を食べると有害だからという理由で。

 

ソフトウェアを作るのも人間だ。だから「ソフトウェア心理学」という分野があってもいいんじゃないか、と思う。ソフトウェア自体はデジタルで古くならないのに、人間がこれを作るときに、古くなることを一生懸命実装するのである。

・ある時刻を過ぎると、起動すらしなくなる

・勝手に削除される

・未来のOSのバージョンの場合インストールを絶対にできなくする

・新しいバージョンでは、古いバージョンと連携できなくする

・しばらくはアップグレードを許すが、ある時期からそれすら許さなくし、削除しかできなくする

各社、手を変え品を変え、「古くなった」という実装をするのである。

サポート切れと言いながら、サポートとは、手助けしたり話を聴いてくれるという意味ではないのである。サポート切れを境に古くなるプログラムが起動するのだ。そしてさらに古くなると起動すらできなくなる、というところまで、昨今のソフトウェアはきっちり実行する傾向にある。

繰り返すが、表面上はセキュリティー事由である。サポートしていないソフトウェアが流通すると攻撃に使われるので、企業として息の根を止めなければならぬという理由である。

一方で、ビジネス上の裏の理由は、非常に、非常に強い。使えているのにバージョンアップせい、と言う。いや何も問題なく使えてるんだから、使わせてくれよ、と。保守料払うからと。いや、保守するから代わりにバージョンアップして、との一点張りである。ソフトウェアベンダーも、古いバージョンをだらだらサポートしていると、新しいバージョンも含めてコードの範囲が広がり過ぎ、コストがかかってしまうのだ。

ソフトウェアは、機能アップや新しいOS、ミドルウェア、ライブラリーへの対応も含めてどんどんアップデートされるものなので、そういう意味では古くなる。これが実質的な古さ。一方で、古さを演出するための人工的な古さの実装。

一方で、将来はどんなアップデートをするか決まっていないことを考えると、「古さの演出」の方が先なのだ。これは面白い話ではないか。自分を破壊するコードを、将来に向けて書くのだから。

Windows 2000時代のフリーウェアでWindows 11でも動いてしまうソフトウェアがVectorなどに落ちていることを考えると、案外この「古さの演出」実装は最近のものであり、人間心理の変化が理由なんじゃないかな、と思う。

人間じゃない何かがソフトウェアを作ると、もしかしたら古くならないソフトウェアを作るのかもしれない。