「モダンアプリケーション開発」とは
DX(デジタルトランスフォーメーション)の進展によって、アプリケーション開発に大きな変化が生まれている。これまで以上に、開発のスピードや変化への柔軟性が求められるようになったため、モダンアプリケーション開発の導入を進める企業が増えています。開発環境のアジリティ向上を目指した取り組みは、企業の競争優位性を確立してくれるはずです。自動車開発における「モダン開発」は、デジタル資産の利活用、目的を共有するチーム群によるスピード感のある開発スタイルなどにより、製品リリースまでの期間を短縮し、リリース後も短期間で高度な機能を改良を行っていく開発スタイルです。
長年にわたり、ソフトウェア開発の大半は、ウォーターフォール開発モデルに従っていました。近年になりウォーターフォール型に替わるモデルが考案され、その後、変わり続ける顧客ニーズにソフトウェア開発のプロセスが迅速に対応できるように改訂されました。
ここ数年では、DevOps や DevSecOps などの方法論が登場し、旧来の方法論よりもさらに多くの利点が得られるようになりました。概して、モダン アプリケーションの開発方法論により、市場投入までの時間を短縮し、プロジェクトの複雑さを軽減し、質の高いユーザー エクスペリエンスを提供できます。
モダン アプリケーション開発の主要概念
モダン アプリケーション開発の方法論を議論する際には、いくつかの主要概念への言及が欠かせません。以下のリストで、本セクションで使用されている主要概念を簡単に概説します。
アジャイル ソフトウェア開発
以下にフォーカスする一連の原則に基づいたソフトウェア開発。
- 反復的、増分的、漸進的な納入
- 対面コミュニケーション
- 短いフィードバック ループ
- 品質へのフォーカスを促進する自動化の使用
モダンアプリケーション開発では、変化するユーザーニーズに迅速対応できるよう独立性の高い比較的小さな機能単位で、設計、実装、配置(展開)の開発プロセスを素早く繰り返す。こうした「アジャイル」な開発手法によって、実現する機能、さらにはアプリケーションの姿をユーザーと共に早期に確認しながら、継続的な改善を図る。
アプリケーション リリース自動化 (ARA)
ツールを使用して、ソフトウェアのビルドおよび後続の運用環境へのディプロイに関連する手順を自動化します。
自動テスト
テストの実行を制御するためのツールの使用、およびテスト結果と期待する結果との比較。
構成管理 (SCM)
ソフトウェア開発時に行われた変更を追跡して制御するタスク。構成管理の概念の中心は、ファイルの変更を管理するバージョン管理です。
継続的配信 (CD)
すべてのコード変更で新しいソフトウェアのビルドおよびテストを行い、必要に応じてそのソフトウェアを運用環境にディプロイできるプロセス。
継続的ディプロイ
すべてのコード変更で新しいソフトウェアのビルドおよびテストを行い、そのソフトウェアを運用環境にディプロイするプロセス。
継続的改善
ロールアウト期間中にチームのパフォーマンスを定期的に評価し、何がうまくいってたか、および何を改善できるかを評価するプロセス。
継続的インテグレーション (CI)
すべての開発者のコードの作業コピーを定期的に共有トランクにマージし、各コード変更により新しいソフトウェアのビルドおよびテストを実行するプラクティス。
要件管理
アプリケーションの要件を収集および管理し、開発チームの尽力を効果的に推進するためにその要件を使用するプロセス。
単体テスト
テスト可能なアプリケーションの最小部分を個別にテストし、それらが期待どおりに機能するかどうかを確認するプロセス。
これらの用語の一部は、各種ソースで若干異なる意味で定義されている場合があります。本記事では、これらの用語をここで定義されている意味で使用します。
モダン アプリケーション開発に関する手順
モダン アプリケーション開発のライフサイクルに関する各種手順を示すワークフロー図を紹介し、各図の手順の概要について説明します。
別途述べたとおり、本ドキュメントでは、モダン アプリケーション開発の特定の具体例ではなく、モダン アプリケーション開発全般について言及します。
次の図では、本ドキュメントで使用するモダン アプリケーション開発の定義に関わる手順を示します。
この図は、開発プロセスを構成する次の 5 つの主なアクティビティを示しています。
- プラン
- ビルド
- テスト
- リリース
- 監視
この一連のアクティビティには、開始点および終了点はありません。たとえば、「リリース」アクティビティをプロセスの終了と見なすことはできますが、その後には「監視」アクティビティが続きます。「監視」アクティビティでは、リリースされたパッケージだけでなく、開発プロセスおよびその実行方法についても改善が必要かどうかが検証されます。「監視」アクティビティから得た情報は、「プラン」アクティビティへのインプットとして使用され、さらにそこから開発プロセスが継続されます。
上記の 5 つのアクティビティの他に、個々のアクティビティの連携方法を最適化するために進化した広範なプロセスがあります。これらのプロセスは次のとおりです。各プロセスの詳細については、本ドキュメントで説明します。
- アジャイル方式
- 継続的インテグレーション
- 継続的配信
- 継続的改善
出典:Microfocus
まとめ
本記事では、モダン型開発の重要性とその方法論について詳しく説明しました。DXの進展により、アプリケーション開発の環境は大きく変化し、モダンアプリケーション開発が企業にとって競争優位性を確立する重要な手段となっています。
NAL社内では、開発だけでなく、会社運用などにもアジャイル手法を活用して、より柔軟で効率的な開発プロセスを構築し、顧客満足度を高めていることです。システム、ソフトウェア、アプリケーション開発のご希望の方はぜひ、NALにご連絡ください