ソフトウェアライフサイクル とは?
ソフトウェアにも「一生」があるの?
そうだよ。人間に誕生から老後があるように、ソフトウェアにも企画という誕生から、開発で成長して、運用で活躍して、最後は引退(廃止)するまでの流れがあるんだ。これをソフトウェアライフサイクルと呼ぶんだよ。
具体的にはどんな段階があるの?
一般的には6段階だよ。(1)計画・要件定義、(2)設計、(3)実装(コーディング)、(4)テスト、(5)リリース・運用・保守、(6)廃止・移行。ただし実際の現場ではこれが一直線に進むわけじゃなくて、行ったり来たりすることも多いんだ。
ウォーターフォールとかアジャイルって、ライフサイクルのことなの?
ちょっと違うんだ。ライフサイクルは「どんな工程があるか」の全体像で、ウォーターフォールやアジャイルは「その工程をどういう順番・やり方で進めるか」というモデル(方法論)のことだよ。同じライフサイクルでも進め方が変わるんだね。
一番お金がかかるのはどの段階なの?
実は運用・保守フェーズだよ。全体コストの60〜80%がここに集中すると言われているんだ。バグ修正、セキュリティアップデート、新機能追加、サーバ管理...開発して終わりじゃなくて、むしろリリース後の方が長くてお金もかかるんだよ。
ソフトウェアが「引退」するってどういうこと?
技術が古くなったり、利用者が減ったり、新しいシステムに置き換わったりして役目を終えることだよ。Windows XPのサポート終了とかがいい例だね。ただし突然止めるとユーザーが困るから、移行期間を設けてデータを新システムに引き継ぐ計画が必要なんだ。
ライフサイクルを意識するとどんないいことがあるの?
「今どのフェーズにいるか」を全員が共有できるから、やるべきことが明確になるんだ。あと、廃止まで見据えて設計しておくと、保守しやすいコードになる。ベテランほど「作った後のこと」を考えて設計するものだよ。