確かめられるモダナイズ

ロジックは残す。システムは入れ替える。

書き直しがうまくいかない理由の多くは、古いコードの中にしか業務ルールが残っていないことです。記憶を頼りに作り直すと、そこで抜け落ちます。

レガシーシステムの本格的な変換は、私たちのモダナイゼーションブランド Vivify で行います。ソースコードから業務ルールを読み取ってモデルにし、手で書き直すのではなくそのモデルから新しいアプリケーションを生成し、新旧のシステムを並べてテストします。そのうえで、新機能、UX、連携を積み上げます。最初から最後まで、ひとつの会社、ひとつの契約です。

関連記事(英語):Legacy Modernization Without the Rewrite

技術別のガイド:PowerBuilder から Web へ、VB6 マイグレーション

どちらの道が合うか

いまシステムが何で動いているかで決まります。

レガシーな技術なら Vivify

PowerBuilder、VB6、COBOL、Oracle Forms、RPG、Classic ASP、WebForms など、担い手が見つかりにくく、手を入れにくい基盤で動いているシステム。Vivify が、御社が所有する標準的なモダンなコードへ変換します。

Vivify を見る(英語)

古くてもモダンな技術なら Fluxweave

現行の言語やフレームワークで動いているものの、新機能、性能の改善、デザインの刷新、規模の拡大が必要なアプリ。私たちが直接手がけます。

スケール

Vivify がレガシーシステムを変換する方法

システムが何をしているかは、その大部分がすでにコードに書かれています。Vivify はそれをモデルとして読み取り、古いコードを一行ずつ翻訳するのではなく、モデルから新しいアプリケーションを生成します。

  1. 1

    解析

    Vivify の Code Analyzer が、ソースコードから画面、モジュール、データの流れ、依存関係と、その中にある業務ルールを洗い出します。分からない部分は推測で埋めず、課題として明示します。

  2. 2

    モデル化

    解析の結果を、画面、データ、ルールのモデルにまとめます。このモデルが新しいアプリケーションの仕様になります。

  3. 3

    生成

    Vivify の Code Transformer が、決められたルールに沿ってモデルから新しいアプリケーションを生成します。出力は標準的な TypeScript と React で、社内標準に合わせて Vue なども選べます。

  4. 4

    レビュー

    アーキテクチャの判断、現代に代わりのないコンポーネント、特殊なコードはエンジニアが担当し、最後にテスト結果を確認して承認します。

同じように動くと、どう確かめるか

新しいシステムが旧システムと同じだと決めつけず、実際に照らし合わせて確認します。

新旧を並べたテスト

旧システムと新システムに同じ入力を与え、出力を自動で比較します。違いは本番ではなく、テスト結果の段階で見つかります。

御社のテスト計画から作るテスト

既存のテスト計画、あるいはその概要から、Vivify が自動テストを構築します。業務が実際に頼っている挙動を確かめるためのもので、引き渡し後もそのまま御社で使えます。

モデルによるもう一つの確認

モデルの業務ルールはソースコードから読み取ったものです。そのため、テストとは別に、新システムをこのルールと照らし合わせて確認できます。

移行は段階的に進められます。各段階を旧システムと照らし合わせてから次へ進み、旧システムを置き換える前にエンジニアが結果を確認して承認します。

異なるアプローチ

手作業の書き直しは、業務ルールを記憶から作り直します。モデル駆動の変換は、ルールをコードから引き継ぎ、それをテストで確かめます。

手作業の書き直し モデル駆動のモダナイズ
業務ロジック 開発者が改めて解釈する ソースから読み取り、旧システムと照らし合わせてテストする
喪失のリスク 高い。文書化されていないルールが見落とされる より低い。ルールはコードから取り出し、違いは新旧を並べたテストで見つかる
期間 数か月から数年に及ぶ並行開発 より短い。コードの大部分は手書きではなく生成される
テスト ゼロから書き、抜けが出やすい 御社のテスト計画をもとにした、新旧比較の自動テスト
ドキュメント たいてい後回しになる 解析の過程でコードから復元される
リリース後 また手作業の開発に戻る 御社のチームや Fluxweave が手を加えていける標準的なコード

人の手が必要なところ

レガシーアプリの大部分は自動で変換できます。残りは判断が要るため、あえて人の手で行います。

アーキテクチャ

古いアプリはデスクトップからデータベースへ直接つなぐ前提で作られています。それをブラウザ、API、サービスにどう分けるかは、人が判断することです。

代わりのない部品

古いコントロールやサードパーティ製部品、プラットフォーム固有の呼び出しには、そのまま置き換えられるものがない場合があります。代わりを選んで組み込むのは人の仕事です。

特殊なコード

長く使われてきたシステムには、文書化されていない処理や、昔のバグを回避するためのコードがあります。こうした部分はエンジニアが読み解き、手で再現します。

テストと承認

比較の大部分は自動で行いますが、新しいシステムで旧システムを置き換えてよいかを決めるのは人です。

向いていないケース

コードの変換が意味を持つのは、そこにある業務ロジックを残す価値がある場合です。次のような場合は、たいてい別の方法が向いています。

  • 技術だけでなく、業務プロセスそのものを作り直したい場合。
  • 今の機能の大半がもう使われておらず、小さな中核を作り直すほうが早い場合。
  • 機能が標準的で、既製のパッケージや SaaS で十分に足りる場合。

実際のプロジェクトは組み合わせになることがよくあります。独自性のある中核は変換し、標準的な部分はパッケージに置き換え、使われていない機能は移行しません。

AI で加速するコード解析

AI の役割

変換そのものは決められたルールで行うため、同じコードからは毎回同じ結果が得られます。業務ルールの意味を AI に推測させることはありません。

AI を使うのは、自動変換では扱えない個別の部分、テストの構築、古いコードが不明瞭な箇所の補完です。AI が作ったものは、リリース前に既存システムと照らし合わせて確認します。

変換が終わったら

手元に残るのは、独自のランタイムに依存しない標準的なコードです。変換が終われば、Fluxweave がその上に積み上げていけます。

新機能

AI 機能、モバイル対応、新しい業務フローなど、旧システムでは実現できなかったものを加えます。

UX と連携

毎日使う画面を見直し、周りのツールとシステムをつなぎます。

継続的な開発

開発が続く場合は、専任チームが機能を加え続けます。運用は御社で、コードも御社のものです。

小さく始める

提案書だけで全面移行を決める必要はありません。

レガシーシステムの場合

Vivify では、範囲を決めたコードの診断や、コードの一部を使った PoC を用意しています。判断の前に、実際に変換されたコードを確認できます。事例は Vivify のサイト(英語)で公開しています。

Vivify を見る(英語)

モダンなアプリの場合

Fluxweave の固定価格のPoCかフェーズ1から始めて、残りの開発に何が必要かを見極められます。

最初の一歩について

私たちの進め方

ローンチでも、スケールでも、モダナイズでも。 すべての案件に、この進め方がついてきます。

再利用できる基盤

認証、メッセージング、データ、決済、リアルタイム処理。10年以上本番で使われてきた仕組みを再利用し、力はプロダクトを差別化する部分に注ぎます。

デザイン起点の思考

コードの前に、デザインから。UXリサーチとワイヤーフレームで、使う人が本当に使いたくなるものを確かめてから作ります。

最初から組み込むセキュリティ

アクセス制御、監査証跡、慎重なデータの取り扱いを、最初から。HIPAA対応のヘルスケア案件で培った規律を、すべての案件に活かします。

AIで加速する開発

繰り返しの作業はAIが担い、プロジェクトは速く、コストは低く。AIの成果物は、セキュリティも含めてシニアエンジニアが確認します。

シニアな経験

2014年から、米国と日本のシニアなリードがすべてのプロジェクトを率います。つまずきやすい点を知っているので、想定外が少なく済みます。

必要なときにスケール

仕事が増えたら、ベトナムの拡張開発チームとヨーロッパや南米の専門家で体制を広げます。窓口のリードは変わりません。

よくあるご質問

契約先は Fluxweave ですか、Vivify ですか?

Fluxweave です。Vivify は私たちのモダナイゼーションブランドです。日本国内のお客様は Fluxweave 株式会社(Fluxweave KK)、国外のお客様は Fluxweave LLC とご契約いただき、変換もその後の新機能も同じチームが担います。

どのようなレガシー技術を変換できますか?

COBOL、IBM i の RPG、PowerBuilder、VB6、Oracle Forms、Delphi、Classic ASP、.NET WebForms、レガシーな Java などです。新しいアプリケーションは標準的な TypeScript と React で生成し、社内標準に合わせて Vue なども選べます。

新しいシステムが旧システムと同じように動くと、どう確かめるのですか?

旧システムと新システムに同じ入力を与え、出力を自動で比較します。テストは御社の既存のテスト計画から作り、モデルの業務ルールと照らし合わせた確認もできます。段階的に移行することもでき、旧システムを置き換える前にエンジニアが結果を確認して承認します。

AIがコードを書き直すのですか?

いいえ。変換そのものは決められたルールで行うため、同じコードからは毎回同じ結果が得られます。AIは、自動で変換できない独自部分、テストの作成、古いコードがわかりにくい箇所の補完に使います。その出力も、リリース前に既存システムと照らし合わせて確認します。

変換後のコードは誰のものですか?

御社のものです。独自のランタイムに依存しない標準的なコードで、自動テストも引き渡し後そのまま御社で使えます。

何から始めればよいですか?

レガシーシステムの場合は、Vivify が範囲を決めたコードの診断や、コードの一部を使った PoC を用意しています。判断の前に、実際に変換されたコードを確認できます。モダンなアプリの場合は、Fluxweave の固定価格のPoCかフェーズ1から始められます。

レガシーシステムを置き換えるなら

まずは無料の相談で、システムと目標を伺います。そのうえで、モダナイゼーションブランドのVivifyによる、範囲を決めたコードの診断をご提案します。