【IoT用語集】Application Lifecycle Managementとは?

はじめに

最近のソフトウエア開発においては、プロジェクト規模の拡大や短期間の納期という厳しい条件下での実施が多くなってきています。

この厳しい条件において、ソフトウエアの開発を行う際のポイントとしては、①開発の生産性向上、②品質向上、そして③コストの範囲内での実施という3つのポイントがあります。

この3つのポイントを厳守するには、厳しい条件下における問題に対して、マネージメントをする必要があります。では、どのような問題があるのでしょうか。

ソフトウエア開発における問題

① 成果物の複雑化

ソフトウエア開発においてはプログラムといった成果物はもちろんですが、システムを確実に、かつ安全に運用を実施すためには、各種ドキュメントが必要となります。

例えば、システムの仕様書や設計書、及び業務フロー、業務設計書といったドキュメント成果物も必然的に多くなり、複雑化します。

② 変更要求の管理

パッケージを用いた開発やスクラッチ開発において、一度要件を出したものの、業務設計の過程において、またソフトウエアの検収テスト等を実施している最中には、必ずと言っていいほど仕様の変更が必要となる局面があります。

このような場合、何でも変更を実施していると、納期やコスト、及び品質にも影響を及ぼす可能性があります。

③ プロジェクト管理の厳密化、精密化

短期間で良い品質のソフトウエアを開発する上ではプロジェクト管理が重要になります。一般的なウォーターフォールモデルの開発手法においては、上流から下流工程までの開発工程を可視化する必要があります。

可視化によって、プロジェクトに内在するリスクが何か、またそのリスクへの回避策、除去策を検討していかねばなりません。

④ ステークスフォルダとの戦い

ソフトウエア開発においては、多くのステークスフォルダが関与します。仕様調整の段階は、開発状況、稼動に向けたアプリケーションの受け入れの局面において、仮に問題があるとすれば、この部署間、部門間で発生する役割や、仕様に関する認識齟齬です。

この認識齟齬をなくすためには、局面ごとの連絡、報告がポイントとなります。

⑤ アプリケーション・ライフサイクル・マネージメント(ALM)について

これらの4つのソフトウエア開発における各問題点について円滑に、効率よくマネージメントをする手法として、アプリケーション・ライフサイクル・マネージメント(ALM)という考えがあります。

このALMという考え方の概要は、ソフトウエアの開発や保守を行うにあたり、アプリケーションのライフサイクル全体を総合的に管理することをいいます。

またこのALMの考え方は、アプリケーションの運用の考え方も含まれているため、アプリケーションの利用が停止するまで続く考え方となります。

では、ALMの特徴について、紹介したいと思います。

総合的に考えることができる

ALMの特徴の1つとして、ソフトウエア開発を総合的に考えることができます。ソフトウエア開発においては、スタンドアローンで動くシステムもありますが、数多くは色々なディバイスのもとで、また社内や社外とのシステムとの接続も必要となることもあります。

これらを全体として管理するには、各進捗管理を総合的に見る必要があります。局所的な見地ばかりを見てしまうと、どこかで歪みが発生します。

さらに、品質の管理においては、どこにどのような変更が入っているかなどを一元的に管理することにより、1つの変更によって影響が発生する機能、部分を素早く確認することができるのです。

またALMには運用という考え方もあるため、各システムのライフサイクルを把握することによって、将来的なシステムの統廃合の検討についても、企業のIT戦略として思考することができます。

ALMのデメリットについて

一見、ALMは全体を見渡すことができる便利な考え方ではありますし、手法が確立すれば、効率良く一見管理をすることができます。

しかしながら、デメリットとしては、ALMの管理コストです。ALMに似た考え方としては、ソフトウエア開発ライフサイクル(SDLC)というものがあります。

このSDLCはソフトウエアの開発フェーズである、要求定義、設計、製造、テスト、プロジェクト管理、及び変更管理といった、ソフトウエアの開発期間中における考え方ですので、システムの運用を含んでおりません。

したがって、SDLCを実施することにより、開発後の運用は別の運用会社に任せることができます。

一方、ALMは運用という観点も含めているため、開発から運用という一気通貫であることによって、運用する会社が固定されてしまい、安価なシステム運用会社への移行が厳しいこともあります。

限りないコスト削減を行なっていくには、ALMの考え方は似合わないこともあります。

まとめ

ALMという考え方は、システムのライフサイクルを全体で見ることができ、良い考え方であるのですが、一方でデメリットもあることも視野に考えていかねばなりません。

さらに、今後は、海外のオフショア開発も加速することや、サービス型のアプリケーション開発など開発手法も複雑化していくことも推察されますので、ALMの考え方がそれらの新しい開発手法にも適用できるよう補正と進化が必要な時期かもしれません。