アプリケーション・ライフサイクル・マネジメント(ALM)の概要

月 5 10, 2021

エンタープライズソフトウェアの開発は、その歴史の大半において、設計、シミュレーション、製造などの旧来のやり方を近代化しようとする企業によって推進されてきました。企業は、コンピュータの力でプロセスを改善できることを認識していましたが、それを実現するための最良の方法を知りませんでした。その結果、アプリケーションの軌道は次のようなものになりました。

  1. エンジニアは、紙ベースのプロセスをコンピュータ化するか、既存のコンピュータ化されたシステムのリプレースを望んでいる。
  2. 開発者(社内スタッフ、外部コンサルタント、またはISV)は、その後数年間、当初の予算を超えてソフトウェアの構築を行う。
  3. その間にニーズが変化し、最終的に納品されたものは現在の要件と一致しない。
  4. ステップ2と3は、ビジネスとエンジニアリングがプロジェクトへの資金投入に飽きるまで繰り返される
  5. エンジニアは、アプリケーションが自重で崩壊するまで、時折、追加やパッチを追加しながら、結果と付き合っていく
  6. ステップ1からやり直し。

しかし、80年代後半、賢いソフトウェアエンジニアたちは、もっと良い方法があることに気づき、ALM(アプリケーション・ライフサイクル・マネジメント)というアイデアを思いつきました。

ALM(アプリケーション・ライフサイクル・マネジメント)の定義

アプリケーション・ライフサイクル・マネジメントとは、最初のアイデアから、開発、保守、そして最終的な廃棄に至るまで、アプリケーションのライフサイクルを管理するためのフレームワークです。これは、ソフトウェア・アプリケーションのキャリアを導く、より組織的な方法です。 

アプリケーション・ライフサイクル・マネジメントの定義を、ソフトウェア開発ライフサイクル(SDLC)と混同してはいけません。SDLCは、実際のコーディングを行う方法に影響を与えますが、ALMはより大局的な視点を持っています。組織のSDLCは、ALMサイクルの中で何度も登場します。

ALMフレームワークの定義は、組織によって異なりますが、ほとんどの場合、同じ基本的なアプリケーション・ライフサイクル・ステージを含みます。

  • アプリケーションガバナンス:要件定義・設計とも呼ばれる。この段階では、ソリューションの範囲(解決すべきビジネス上の問題)を説明する段階です。スコープ(範囲)の定義から、アプリケーションのハイレベルなロードマップを描き、ビジネスの成長や追加のビジネスプロセスのサポートに伴うアプリケーションの進化を示すことができます。アプリケーションの初期リリースに必要な詳細な要件を抽出して文書化し、ソリューションを設計します。設計には、開発ライフサイクルを通じてソリューションを支えるテクノロジースタックとシステムアーキテクチャが含まれます。
  • アプリケーション開発:この段階では、SDLCが呼び出され、実際のコーディングが行われます。 ALMは、Waterfall、Agile、DevOpsなどのあらゆる開発フレームワークに対応しています。また、この段階では、要件を満たしているかどうかを確認するためのソフトウェアテストが行われます。
  • アプリケーションのメンテナンス:アプリケーションがデプロイされても作業は終わりません。この段階では、初期テストで検出されなかったバグを特定して修正し、拡張機能や新しいコンポーネントを設計・構築し、基盤となる技術スタックを最新の状態に保ちます。課題が進展し、差別化や改善が必要になると、ハイレベルなロードマップが見直され、修正されます。最後に、エンジニアリングが成長してアプリケーションに収まらくなったり、その機能が不要になったりした場合には、代替品への計画的な移行を行います。

アプリケーション開発ライフ・サイクル管理が重要な理由

ソフトウェアアプリケーションのライフサイクルを管理することで、ソフトウェア開発者にとって管理しやすいワークフローを作り、ソフトウェア開発プロセスを改善することができます。このプロセスの最も重要な利点には次のようなものがあります。

  • リリースサイクルの短縮:アプリケーションのメンテナンス段階に到達すると、リリースの計画、設計、構築、テスト、リリースを迅速に行うことができます。小規模なエンハンスメントプロジェクトを数多く抱えている企業もあれば、Amazonのように毎日、あるいはそれ以上の頻度でソフトウェアアップデートをリリースしている企業もあります。
  • より良いテストのために: ソフトウェアテスト担当者は、「ソフトウェアテストにおけるALMとは何か」とよく質問します。リアルタイムのコラボレーションにより、リリースサイクルが短くなります。つまり、テストすべき機能が組織的に実装されるため、リリースごとにテストすべき新機能が少なくなり、リグレッション(回帰)テストも少なくなります。整理された実装により、問題が発生したときに問題を切り分けることができ、テストの重複を減らすことができます。 
  • 製品管理の改善:ALMとアプリケーションの進化を導くハイレベルなロードマップがなければ、アプリケーションは肥大化し、スコープクリープに悩まされることになります。ALMは、提案された変更を評価するための基準を提供します。
  • プロジェクト管理の改善:ALMは、品質保証チームや開発チームに、各開発サイクルやアプリケーションプロジェクト全体を管理するための、予測可能で反復可能なフレームワークを提供します。これにより、継続的な革新、改善、そして競争力のある差別化が可能になります。

ALMサービスにおけるスペイシャルの支援とは?

機械・電子設計、分析、計測、CAM、ロボット、積層造形などのための3Dアプリケーションの開発とエンジニアリングに関する豊富な専門知識と経験を持つスペイシャルは、お客様のソリューションアドバイザーとして十分な能力を備えています。

私たちは、お客様のビジネスに適合し、製品を強化し、SDLCやALMに関連する技術的な課題を克服するためのオプションを提供するために、プロフェッショナルサービスを設計しました。

スペイシャルは、ALMを「製品の設計・開発から次世代製品の企画に至るまでの自然な流れ」と定義しています。このサイクルに沿ってサービスを開発し、市場の要求に応じて製品を最適化するなど、お客様の目標達成を支援しています。

Application Lifecycle Management

組織におけるALMの位置づけ

組織の発展の初期段階では、「とにかく作って外に出す」というソフトウェア開発のアプローチは維持できません。顧客のニーズを満たし、パフォーマンスの高い、堅牢で信頼性の高いソフトウェアを提供するためには、開発チームは開発プロセスに何らかの形でアプリケーション・ライフサイクル・マネジメントを導入する必要があります。

スペイシャルは、アプリケーション開発におけるALMモデルへの移行をサポートします。もしあなたの組織がALMへの移行がまだお済みでない場合は、是非ご連絡下さい。スペイシャルのエキスパートが、お客様のビジネスに適したアプリケーション・ライフサイクル・サービスを提供します。  

Subscribe to the D2D Blog

No Comments Yet

Let us know what you think