マイグレーションのメリット・デメリットとは?

2021/08/24
古い基盤で使われているシステム(レガシーシステム)をハードウェアサポート切れなどのリスクから守るためには、新しい基盤へのシステム移行を検討する必要があります。システム移行手段としてよく登場するのが、「マイグレーション(リライト)」と「スクラッチ開発(リビルド)」です。今回は、マイグレーションとスクラッチ開発の違いを解説した後、マイグレーションに焦点を当てて、メリット・デメリットを解説していきます。メリット・デメリットを理解した上で、マイグレーションを選択すべきか否か判断する際の助力となれば幸いです。
1.マイグレーションとスクラッチ開発の違い
冒頭でお伝えした通り、マイグレーションとスクラッチ開発はどちらもシステム移行の手段となります。それぞれの違いについて、簡単にまとめてみましょう。
【表1 マイグレーションとスクラッチ開発の違い】
|
マイグレーション(リライト) | スクラッチ開発(リビルド) |
---|---|---|
開発方法 | 既存システム資源を活用し、 機能はそのままで別言語に移行する。 | 既存システムを廃棄し、要件定義・設計・開発を一から行う。 |
開発期間 | ★比較的短期間 | 長期間 |
コスト | ★抑制可能 | 非常に高額 |
設計 | ★不要 | 必要 |
品質確保 | ★全イベントテストによる現新一致テストがメイン | ★要件・設計内容に対する全分岐網羅テストがメイン |
開発リスク | ★低い | 高い |
有識者の負荷 | ★業務テスト実施時(PJ中盤以降)から必要となるため低め | 要件定義(PJ序盤)から必要となるため高め |
自由度 | 低い | ★高い |
業務要件変更 | 不可 | ★可 |
それぞれを比較した際に、優れていると思われるほうを強調してみました。マイグレーション、スクラッチ開発それぞれにメリット・デメリットがあることがわかると思います。(「品質確保」についてはそれぞれ方法が異なりますが、どちらも開発方法に応じて最大限品質を高めるためのテスト内容であり、優劣はつけ難い内容となっていますので、両方を強調しております。)
次項からマイグレーションに焦点をあて、メリット・デメリットについて詳細な内容を解説していきます。
2.マイグレーションのメリット
マイグレーションのメリットとして前項で挙げられたのは、「開発期間」、「コスト」、「設計」、「開発リスク」、「有識者の負荷」となります。
マイグレーションでは既存システム資源に対して自動変換ツールを用い、大部分の開発(言語変換)を自動化した上で必要な部分のみ手動で開発する手法となっています。自動化できる部分が多くなればなるほど、すべて手作業のスクラッチ開発に比べ、作業コスト低減や開発期間短縮を実現することができます。
また、既存システムの 機能をそのまま別言語に移行するため、基本的には設計書を新しく作成する必要はありません。もし、設計書の更新が長期間されていないような場合は、システム全体を移行するマイグレーションを機に内容の見直し・更新を行って、マイグレーション開発後の保守性向上にもつなげることができると思います。
「既存システムと同じように動く≒新しい機能は作らない」という点で開発リスクが低いというのは明確ですし、何よりもお客様にとって結果がわかりやすいのはマイグレーションの大きなメリットであると考えます。
有識者の負荷が低いという点も大きなメリットです。前述の通り、「既存システムと同じように動く」が大原則であるため、業務がわからなくとも新旧比較テストは実施可能です。つまり、有識者から業務レクチャを受けなくても、ある程度のテストは進めることが可能ということになります。業務に特化したテストを実施する際は有識者の助力が必要となりますが、要件定義から有識者に負荷がかかるスクラッチ開発に比べれば、マイグレーションは有識者の負荷をかなり抑えられた状態でプロジェクトを進めることが可能です。
「品質確保」についてもメリットの中で触れておきます。マイグレーションのテストは全イベントテストがメインであり、全分岐網羅テストは実施しません。その代わりにテスト以外の部分でも品質の積み上げを行い、システム全体の品質向上を図っています。例えば、本開発前にプロトタイプ開発を実施して自動変換ツールの変換精度向上を行う、手動で開発する箇所の精緻化を行ってマイグレーション設計書という形で明示する、など、テスト実施前の開発時点でも品質を作りこんで品質向上を図っています。もちろんテストでも実際の本番データにマスクをかけたものでテストを実施する、モンキーテストを実施して想定外操作時の確認を行う、など、工夫し安心してシステムが使用できるよう品質の積み上げを行っています。
3.マイグレーションのデメリット
一方、デメリットとして挙げられたのは、「自由度」、「業務要件変更」となります。
前項でも述べた通り、「既存システムと同じように動く」がマイグレーションの大原則のため、機能追加・変更を行わずそのまま移行をする点がデメリットとして挙がってきます。プロジェクト開始後の機能追加・変更はプロジェクト難易度を上げる要因になるため推奨されませんが、プロジェクト開始前に追加・変更の可能性がある機能を洗い出すことができれば、計画に組み込めるため、必ずしも不可能ではないという点はご認識いただければと思います。
4.メリット・デメリットを踏まえた選択
これまでの解説を踏まえ、どのようなケースの場合にマイグレーションを選択すべきか記載します。
〇マイグレーションを選択したほうがよいケース
- 移行にかかるコストをできるだけ抑えたい、開発期間を短くしたい
- 既存システムはできる限りそのままの使用感を残して新しい技術を使いたい
- 開発にかかる自分たちの負荷を抑えたい(有識者が少ない、体制が弱い)
〇マイグレーションを選択しないほうがよいケース
- 現在の業務やシステムを全面的に刷新(改善)したい
- 既存システムに不具合が多数あり、大規模な修正を同時に進めたい
上記を参考に、マイグレーションを選択すべきかご検討いただければと思います。
5.マイグレーションのメリット・デメリットとは? まとめ
今回はマイグレーションとスクラッチ開発を比較し、マイグレーションのメリット・デメリットについて解説をしました。ご覧いただいた皆さまが最善の選択をするための助力となれば幸いです。
当サイトでは、システム移行をお考えの方に向けて、参考になるダウンロード資料をご用意しております。『システム移行 変換率と品質向上サービス「オープンマイグレーション」基本ガイドブック』は、御社のシステム移行の意思決定のヒントになるはずです。
ぜひ、ダウンロードページより資料をご覧ください。
その他ブログのご案内
オープンマイグレーションサービスでは、その他下記のようなブログをご用意しております。
おすすめブログ
- マイグレーションにおける計画書の作り方
- マイグレーションと再構築の違いとは? システム部門が知っておくべき3つのポイント
- マイグレーションによるシステム移行は安全なのか?
- マイグレーションの種類 ~どんな言語でも共通する開発の進め方とは?~
- マイグレーション選択の意味 ~なぜマイグレーションなのか?~
過去ブログ
- マイグレーションでファイルを削除したいけど、どうなるの?その可否と影響も解説
- マイグレーションとコンバート(コンバージョン)の違いとは?
- マイグレーションと基幹システム 共通化を実現する方法とは?
- マイグレーション価格の妥当性 コストは高いのか?安いのか?を判断するポイント
- マイグレーションの無料ソフト・OSS(オープンソフトウエア)は使えるの? 実態と種類を徹底検証
すべての記事


