本連載でこれまで紹介してきたとおり、ソフトウエア開発にかかわる開発技術や自動化技術が整備されることで、開発速度と品質の両立が可能になりつつあります。

 これらの開発技術や自動化技術を利用した今後のソフトウエア開発の動向として注目を集めているのが、「アプリケーションモダナイゼ―ション」と「自動車製造業を参考にしたソフトウエア開発の生産技術革新」の2点です。

 2つの視点から、ソフトウエア開発の未来像を見通してみましょう。

負のスパイラルからシステム開発の現場を救う「モダナイゼ―ション」

 「アプリケーションモダナイゼ―ション」(application modernization)とは、老朽化し保守性が悪くなった古いアプリケーションを最適化・近代化(モダナイズ)させて、新しいアプリケーションに構築し直すことを指します。アプリケーションモダナイゼ―ションに取り組むことで、システムの維持管理コストを抑えられ、日々変化しているビジネス環境に柔軟に対応できるシステムに投資が可能になります。

 今、多くの企業が保有する老朽化したシステムの問題として、維持管理コストの増加があげられます。アプリケーション構造が、開発したプログラマ以外には解読困難な“スパゲッティ状態”となり、「現行仕様の把握」や「変更箇所の特定」、「仕様変更の影響調査」などが著しく難しくなって、維持管理コストを押し上げる結果につながっています。

 この維持管理コストが原因となり、変化が激しいビジネス環境にシステムを最適化するためのIT投資ができなくなっているのが実情です。「保守生産性の著しい低下」が「維持管理コストの増加」を呼び「新たなIT投資ができない」という負のスパイラルに、システム開発の現場が陥っているといえます。

 この負のスパイラルから抜け出すには、老朽化したシステムを保守しやすい状態に変える必要があります。

 このためにはまず、「現行解析」によって現在のシステム仕様を可視化する必要があります。現行の仕様がわからないままでは、ビジネス環境に合わせてアプリケーションをどのように変更するかを考えることもできません。ただ、長い期間にわたる保守を経て、設計書などのドキュメントは陳腐化し、現行のアプリケーション仕様を正しく表記していないことがほとんどです。現行仕様を正しく理解するためにはスパゲッティ化したソースコードを読み解くしかありませんが、過去に作られた複雑なビジネスロジックを理解するのは至難の業です。

 どうにか現行仕様を理解でき設計書を書き起こせたとしても、その後に複雑でわかりづらい現行仕様を、保守性が高く、新たなビジネス環境に合わせた仕様に変更する作業が発生します。大量の設計書間の整合性を取りながら設計を進め、そこからさらに何メガステップという大量のソースコードをコーディングしなくてはなりません。

図1●アプリケーションモダナイゼーションのイメージ

 こうした問題を解決するのが、これまで紹介してきた自動化技術です(図1)。