全4655文字
PR

 DX(デジタルトランスフォーメーション)の進展によって、アプリケーション開発に大きな変化が生まれている。これまで以上に、開発のスピードや変化への柔軟性が求められるようになった。技術革新やビジネス環境の変化が一層激しくなり、アプリケーションの要件を決めてもどんどん変わっていくうえに、1日でも早くリリースすることが競争力につながるためだ。

 このニーズに応えるため、アプリケーション開発を変革する取り組みが世界的に広がっている。日本でも、アプリケーション開発の変革にかじを切る企業が相次いでいる。アプリケーション開発の変革したやり方は幾つもの要素で構成されていることもあり、一般に普及した呼称はないようだ。ここでは「モダンアプリケーション開発」と呼ぶ。

(出所:123RF)
(出所:123RF)

 では、モダンアプリケーション開発とは具体的にどのようなものか。それが登場した背景とともに解説する。

ウオーターフォール型開発とモノリシックの限界

 今日のビジネスでは「スピード」が最重要課題の1つとなっている。サービスや製品の素早い提供、変化するユーザーニーズへの柔軟で迅速な対応が求められている。アプリケーションも同様だ。変化する今日のビジネスに追随できるスピーディーなアプリケーション開発が求められている。

 しかしウオーターフォール型をベースにした従来の開発では、スピーディーな開発は難しい。とりわけ開発の最終段階でユーザーから変更を求められた場合、また長い工程を繰り返すことになる。ビジネスの変化が激しいため、ユーザーは自分たちが本当に求めるアプリケーションを定義できておらず、ユーザーテストで初めて「違っている」と気付くケースも少なくない。

 もう1つ問題となるのは、旧来のアプリケーションではそれを構成するコンポーネントやデータが互いに複雑に絡み合う「モノリシック(一枚岩)」なアーキテクチャーになっている点だ。そのようなアプリケーションは、1つの機能を修正・微調整する場合でも、影響範囲の特定が難しく、対象コードの変更後に全体のコンパイルやテストが必要になる。当然スピーディーな対応は望めない。

 このような課題を解決するのが「モダンアプリケーション開発」だ。

モダンアプリケーション開発の要素

 モダンアプリケーション開発では、変化するユーザーニーズに迅速対応できるよう独立性の高い比較的小さな機能単位で、設計、実装、配置(展開)の開発プロセスを素早く繰り返す。こうした「アジャイル」な開発手法によって、実現する機能、さらにはアプリケーションの姿をユーザーと共に早期に確認しながら、継続的な改善を図る。

 このような小さな機能の素早い開発を実現するために、コンポーネント単位で独立した開発を可能にする「マイクロサービスアーキテクチャー」を使用する。さらに開発プロジェクトに、設計者や開発者だけでなく、ユーザーも積極的に参画し、役割をオーバーラップさせて一体となって開発を進めることで、アプリケーションの品質や利用価値を確保する。

 ここまでモダンアプリケーション開発の要素として、「開発手法(アジャイル)」「アーキテクチャー(マイクロサービスアーキテクチャー)」「関係者とその役割(ユーザーの積極的な参画)」の3点を挙げた。スピーディーな開発を実現するうえで必要な要素はそれだけではない。

 上記の3点を前提として、開発・運⽤を⾃動化する「DevOps」と「CI/CD(継続的インテグレーション/継続的デリバリー)」、組織的活動でセキュリティーのリスクを排除し説明責任を果たす「セキュリティーガバナンス」も必要だ。以下でこれらの要素を1つずつ⾒ていこう。