ソフトウェアのライフサイクル(情報元のブックマーク数)

じったさんの、まっちゃ445のローグネタの反応。3年は長いと思った気がする・・・

ソフトウェアというか、コードの寿命です。みなさん、今自分が書いているコードが、どれくらい後まで使われることを想定して書いているでしょう?

私が業務で関わったもので、最短のものは J-Phone の「ブリッジメール システム」というシステムです。昔、携帯電話のメールは、音声を聞いてからプッシュ音で送信していました。そのため、キャリアによってガイダンスが違い、キャリアを跨いでメールを送ることはできませんでした。それを J-Phone は他社との回線契約をし、音声認識装置を挟んで、自社ユーザーから他者ユーザーへメールを送信することができるようにしました。(自社ユーザー → 自社サーバー → 自社 NTT 契約端末 → 宛先)

このシステムがなぜ短命だったかというと、すでにインターネット化が始まっていたからです。そのため、3年ほどで役割を終えました。

ソフトウェアのライフサイクル

ソフトウエアライフサイクルということで、5年でリプレースを想定して書くのが一般的でしょうか。

まぁ、難しいですよね。色々。ドッグイヤーともいわれる時代ですし。

CPU のアーキテクチャが変わることも予想されます。数年前まで Linux を含む UNIX 系の OS は、Intel CPU では動きませんでした。そのため、バイトの並びが違います。コンパイラが吸収する?いえいえ。通信していると、その違いが命取りになります。画像フォーマットである JPEG では、そのことも考えてか、ヘッダの中にどちらのバイト オーダーで記述されているかを指定します。

セッションでは、「未来を予測してコードを書く」といわれていました。いったい、いつまで使われることを想定し、その時のどんなことを予測してコードを書けばいいのでしょう?

ソフトウェアのライフサイクル

screenshot