マイグレーション選択の意味 ~なぜマイグレーションなのか?~

2021/05/25
システム維持費用の削減が叫ばれる中、古いシステム資産の維持コストは大きな課題です。また古いシステムは有識者が不在、技術者不足など、維持だけでも課題を抱えており、更改の必要性に迫られた際は、大きな課題となります。課題を解決する有効な手段の一つがマイグレーションです。マイグレーションプロジェクトを成功させるためには、マイグレーションを選択する意味を正しく理解する必要があります。抱負なマイグレーション実績をベースにマイグレーション開発を選択する意味について、解説していきます。
1.マイグレーション選択の意味と動機とは何か?
「マイグレーション」という言葉は、英単語の意味は移行や移動などですが、IT分野では現行のシステムを新しいシステム環境に移行することを意味します。システム移行は基盤、アプリケーション両面ありますが、今回はアプリケーション移行についてお話します。アプリケーションの移行手段は大きく3パターンあり、「ストレートコンバージョン」「リライト」「スクラッチ」です。
-
ストレートコンバージョン
現行プログラムを新しい環境下でリコンパイルにより稼働させます
例 COBOL→OpenCOBOL -
リライト
現行プログラムを新しい環境に適した言語やソフトウェアに書き換えます
例 VB→VB.NET -
スクラッチ
新しく一からシステムを再構築します
一般的に「マイグレーション」は、現行資産を有効活用し新しいシステムへ移行する手法である「ストレートコンバージョン」「リライト」を指す事が多く、「スクラッチ」と大別されます。アプリケーション移行の際に、一度は“スクラッチ開発で、きれいな構造に作り直したい”と検討される事が多いのですが、対象システム規模が大きいまたはレガシーシステムの場合、費用や期間の問題で「スクラッチ」を断念されることがよくあります。そのため「マイグレーション」を選択する動機の多くは、現行資産の有効活用による安全な移行、移行費用の抑制、開発期間の短縮などです。また昨今はDXに向けてブラックスボックス化した既存システムを整理する手段として選択されるケースもあります。
2.マイグレーション選択のポイント
「マイグレーション」を選択される際に、どのようなポイントを押さえて利用するサービスを選択すれば良いのでしょうか。システム移行の動機となる開発基盤のEOLやセキュリティ課題等の課題解決は必須ですが、課題の解決を含め安全に移行できるのかという観点はどのように確認すれば良いのでしょうか。マイグレーションサービスを掲載しているHPを見ると“自動変換率90%以上”など、サービスを利用すればそのまま動くのではと思う文言が並んでいます。では“自動変換率”とは何でしょうか。極端に言えば、“変換ツールがエラーを出さずに変換できる割合”です。つまり自動変換率は現行通り正しく稼働する割合を示すものではありません。もちろん変換ツールはマイグレーション開発における知見が詰まったツールですので、ある程度動く事は想定されますが、対象システムのソースの癖や言語の特性により、文法的に正しく移行しても現行と同じような見た目や動きにならない場合があります。例えば、VB6.0→VB.NETに変換した場合、現行VB6.0のプロパティ設定に誤りがあっても、画面の動きには特に問題がない場合がありますが、ツールで移行した場合、新言語ではその誤りが影響し現行と同様の動きをしないケースがあります。
このようなケースに対して正しく対応し安全に移行するには、言語特性による差異や誤りに対して適切な対応を行う開発プロセスや品質計画が必要です。どのような進め方で品質を確保するのかをしっかりと見極めることが、開発の成否を左右することを認識頂ければと思います。

3.マイグレーション選択のメリット① ~開発編~
「マイグレーション」を選択した際のメリットは「スクラッチ」と比べた際の開発期間の短縮や費用の抑制ももちろんですが、最大のメリットは現行資産を活用することによる移行の安全性です。「スクラッチ」を選択の際、移行対象システムがレガシーシステムである場合、再構築するにはそのシステムの仕様を紐解くだけでも大きな労力が必要です。システム理解のための設計書が利用でき、誰もが理解できる状態であれば良いのですが、そうでない場合、読み解くための技術者確保も困難な場合があり、大きな課題となります。現行ソースをインプットとする「マイグレーション」は、課題解決の有効な手段と言えます。
4.マイグレーション選択のメリット② ~保守編~
「マイグレーション」は現行のソースをインプットとして移行を行います。現行ソースや構造を引き継ぎ、新たな言語へ変換するため、現行ソースの大幅なソース構造変更はありません。またラッパー等の現新の言語の違いを吸収する部品を利用する事により、現行ソースと大差がない状態のソースコードを作り出すことができます。そのため、移行後に現在の保守要員をそのまま活用し、保守を継続する事ができます。新しい基盤に合わせた新たな保守体制を構築する必要性はスクラッチ開発に比べ低くなります。
5.なぜマイグレーションなのか?その意味
「マイグレーション」の選択の意味は、現行システム資源を有効利用し安全性の向上、コスト抑制、開発期間短縮に大きく寄与することではないでしょうか。「マイグレーション」を有効に活用できると、「マイグレーション」か「スクラッチ」かではなく、「マイグレーション」+「スクラッチ」という手段もあります。システム移行のアセスメントを行い、機能の難易度や特性を踏まえ「マイグレーション」を選択する部分と、スクラッチを選択する部分に分けて開発する事も可能です。現行資産の分析サービスもありますので、活用する事をお勧めします。
当サイトでは、システム移行をお考えの方に向けて、参考になるダウンロード資料をご用意しております。『システム移行 変換率と品質向上サービス「オープンマイグレーション」基本ガイドブック』は、御社のシステム移行の意思決定のヒントになるはずです。
ぜひ、ダウンロードページより資料をご覧ください。
その他ブログのご案内
オープンマイグレーションサービスでは、その他下記のようなブログをご用意しております。
- マイグレーションによるシステム移行は安全なの?メリット・デメリットも解説
- マイグレーション計画書の作り方 移行方針やテスト・品質計画も説明
- マイグレーションの種類 ~どんな言語でも共通する開発の進め方とは?~
- マイグレーションと再構築の違いとは? システム部門が知っておくべき3つのポイント
- マイグレーションで確認すべき3つのポイント
- マイグレーションとは?サービス選択のポイントも解説

