【医療業界DX事例】診療予約システムのVB6.0からVB .NETのマイグレーション事例
【医療業界DX事例】診療予約システムのVB6.0からVB .NETのマイグレーション事例
医療業界のDXの事例となります。診療予約システムを2008年からパッケージ販売しているクライアントの案件です。
今回はVB6.0からWindows10でのVB.Net(Visual Studio2019)へマイグレーションを実施しました。
診療予約システムはVB6.0で10年以上前に開発したアプリケーションですがエンドクライアントの評価が高く現在も利用し続けています。しかし現在、VB6.0のサポートを終了しており、さまざまなリスクを抱えていました。一方でマイグレーションするには相応のコストも発生します。このクライアントは総合的にオフショア開発にはメリットがあると判断し弊社でマイグレーションをすることにしました。
導入の経緯
医療業界もさまざまな分野でDXの重要性が叫ばれています。このクライアントは2008年から町の診療所などに診療予約システムを導入してきました。VB6.0で作成したパッケージシステムです。
今や当たり前となりつつある順番待ちシステムですが、非常に使い勝手が良くで評判が良く現在も顧客が増え続けているようです。
一方でVB6.0はマイクロソフトの正式なサポートが終了しており、さまざまなリスクを抱えています。またマイグレーションを阻む壁として作り直すか、現行システムを維持するかなどの方針の問題や、いずれの選択肢においてもコストがかかってしまう問題などシステムの刷新に踏み切れないケースも多いです。
このクライアントは弊社ホームページに問い合わせをいただきました。弊社のマイグレーションの実績と費用面でオフショアでマイグレーションをすることを決定しました。
VB6.0システムを使い続けるリスク
マイグレーションを実施すべき主な理由は、VB6.0を継続利用することで様々なリスクが伴うからです。例えば次のようなリスクがあります。
一つ目のリスクは、セキュリティリスクを伴うということです。
VB6.0の開発環境はマイクロソフトのサポートが終了しているため、その後リリースされたWindows7以降のOSでは動作保証がありません。
二つ目のリスクは、技術者の減少です。
サポートが停止されたVB6.0の技術者は年々減少することが予想されるため、企業にとっては技術者の確保が難しくなってきます。
このようにVB6.0の継続利用には多くのリスクを伴うため、早めに対策しておくことが重要になっています。
マイグレーションを阻む壁
コストの問題
長い間企業の運営を支えてきたシステムの根幹を刷新するためには、数年の移行期間と何億円にものぼる費用を計上することも珍しくありません。そのため、マイグレーションの実現は段階的に行い、少しずつ予算の割り当てを新システムに移していくアプローチが求められます。
人材不足の問題
2030年には約79万人のIT技術者人材不足が予想されるとされています。経済産業省が平成28年に発表しました。労働人口そのものが減っています。全体的な労働力不足のなかに、IT技術者も含まれているということです。IT業界の現場では、技術者そのものが不足しているため育成も追いついていません。
マイグレーションで資産の有効活用(マイグレーションの効果)
リスクを最小化
マイグレーションによってアプリケーションの公式サポートの対象になります。公式サポートは常にセキュリティーも最新の状態に保たれリスクを最小化することができます。
保守コストの削減
レガシーシステムを運用していた時の肥大化してしまった保守コストの削減が可能です。クラウドや共通プラットフォームを活用し、オープン化することで、メンテナンスが容易になり、機能追加などの変更も行いやすくなります。
資産の有効活用
蓄積してきたデータや培ってきたノウハウ、アプリケーションなどの会社の資産を、新システムなどへ乗せ換えることで、引き続き、活かすことができます。
マイグレーションと相性の良いオフショア開発
人材不足を解消とコストダウンを同時に実現
ベトナムでオフショア開発をする上で日本での人月単価が100万円だとすると一人当たりのコストを70%近くコストダウンすることが可能です。また長く続く保守運用コストを削減できるところに大きな魅力があります。
ベトナムの平均年齢は30歳です。日本と比べ非常に若者が多く、またITエンジニアの育成にも国として力を入れています。
ソースコードでシステム理解できるのでコミュニケーションロスが少ない
一般的にオフショア開発ではシステムを理解するための、コミュニケーションが課題になります。マイグレーションは現行システムの機能をそのまま引き継ぎます。エンジニアはソースコードベースでシステムを理解することができます。つまり通常のオフショアでのシステム開発と比較するとコミュニケーションが少なくてすみます。
マイグレーションプロセス
ONETECHの業務範囲(ベトナムで開発、日本でサポート)
- 資産可視化:プログラムの棚卸し、マイグレーション対象範囲を明確化
- 概算見積もり:要件を確定させ見積もり提示
- 調査・分析:Microsoftアップグレードツールを使い、問題点の洗い出しとパターン化
- 変換設計:パターン化した課題に対して機能の代替、変更方法を検討、ツール変換か手動返還かを選択。変換ツールの作成とカスタマイズ。
- サンプル変換:特性機能変換とテストを実施。変換ツールの検証。追加対応が必要な項目の洗い出し。
- 変換修正:全ソースを変換ツールで変換、手作業対象分の修正。
- 連携システム対応:一部システムとの連携のための開発
- 環境構築:DB環境構築
- 現新比較テスト:現行処理結果との比較
- 受け入れテスト:クライアントが実施
資産可視化プロセス
資産可視化プロセスを実施し概算見積もり前にお客様へヒヤリングを実施
①STEP数
移行システムのソースコードの行数をヒヤリング
②OCX
OCXの一覧を入手します。不明な場合はサポートします。
③現環境と移行先環境の情報
クライアント側に現在の環境と、新しく実装する環境の仮想マシンを準備いただきました。
不明なことがあれば弊社の方でサポートしながら対応します。
- 新しく実装する環境情報(Windowsバージョンや.NET バージョン、サードパーティーツールなど)の準備
例)Oracle10g→19c1VB6
FormDesigner→InputMan - 新しい環境の仮想マシンを設定後、イメージファイルを準備
- 既存システムのシステム構築内容、業務系仕様書を準備
■旧環境
- 仮想マシンには実行できるEXEファイルと設定されたソース(必須)
- データベース(必須)
- 元システムにシステム構築と業務系仕様など(任意)
■新環境(新バージョン情報)
- WinOS バージョン(必須)
④移行スケジュール
現行システムの状況
プログラム名 | 本数 | ステップ数 | フォーム | モジュール |
予約紹介 | 2 | 61000 | 44 | 11 |
環境設定 | 2 | 14000 | 19 | 3 |
**** | 1 | 1500 | 2 | 3 |
**** | 2 | 13000 | 6 | 9 |
**** | 1 | 2300 | 2 | 3 |
**** | 2 | 5600 | 5 | 6 |
**** | 2 | 3100 | 3 | 4 |
**** | 2 | 3000 | 3 | 4 |
**** | 2 | 3100 | 3 | 4 |
**** | 2 | 10300 | 18 | 4 |
**** | 1 | 3100 | 2 | 4 |
**** | 1 | 7600 | 6 | 5 |
**** | 2 | 2200 | 2 | 2 |
**** | 1 | 2600 | 3 | 3 |
**** | 2 | 5100 | 10 | 3 |
**** | 1 | 3100 | 5 | 3 |
**** | 1 | 200 | 1 | 2 |
OCX評価
マイグレーションではサードパーティツールはVB6.0の「ActiveXコントロール」と、.NET「Windows Forms」の互換性はないため、アップグレードウィザードでは自動変換されません。基本的に作り直しが必要です。今回の対象OCXの表計算や帳票のツールはFPSpreadやCrystal Reportを提案し変換しました。また担当者もわからないOCXについては、関係各社に弊社がヒヤリングして変換の必要性を検討しました。
概算見積もり
LOC数に自動変換想定率(70%)を乗じて、残りを手作業変換をオフショアの生産性(2800STEP/人月)と人月単価で手作業の工数を算出します。
上記に変換対象のOCXの作業工数を算出して足します。
その他想定される作業なども別途見積もりとして算出します。
変換のフェーズ分け
モジュールの変換は機能ごとや利用ユーザーごとに行います。特に大規模システムだと受け入れテストをしていただくユーザーごとに変換をして順次受け入れテストを実施していただきます。
今回は以下のようにフェーズ分けをしました。
フェーズ1:予約機能変換
納期:2021年7月5日
フェーズ2:環境設定機能
納期:2021年8月2日
キックオフ会議
- プロジェクト概要:プロジェクトの目的や概要などを確認
- スケジュール:マスタースケジュールを確認、詳細スケジュールはWBSで提示、フェーズごと進捗ごとに詳細スケジュールを更新して提示
- 成果物受け入れ条件:成果物の定義、受け入れ条件の確認
- 開発体制:開発体制の提示
- コミュニケーション方法:定例報告などの会議体、コミュニケーションツールの確認、進捗報告方法の確認
- リスク共有:本案件に想定されるリスクと回避の提案
日本語でコミュニケーション定例会議実施
本件に関しては、毎週1時間ほどの定例会を実施して進捗を報告しました。定例会議では、日本人ベトナム人が参加しますが、100%日本語で実施します。文書類も全て日本語です。定例会は事前にアジェンダを用意して進行します。進捗の確認、QAの確認、成果物の中間確認などを行います。コミュニケーションツールは定例会議ではWEB会議ツールを使用します。日常のコミュニケーションは、メーリングリストを作成しメールでやりとりします。QAシートなどは弊社の方で用意がありますので、クライアントは回答するのみで伝えます。
会議 | 時間 | 参加者 | 目的 | ||||||
キックオフ | プロジェクト開始 | チーム QA、上級管理者 |
プロジェクトをキックオフする。 | ||||||
クライアント | 1回/週 (火の午前中) | チーム、 クライアント |
・プロジェクト進捗の報告 ・問題・課題の報告 ・Q&Aの確認 ・クライアントから仕様書の説明( ・緊急の場合 |
||||||
不良防止 | スケジュール通り | チーム、QA | 不良防止のために実行すべきアクションを明確化する。 | ||||||
内部レビュー | プロジェクト開始 | チーム | 内部進捗レビュー会議 | ||||||
緊急 | (1) 問題・課題が発生した場合 (2) 変更要求があった場合 |
チーム | (1) 問題・課題の対策を摘出する。 (2) スケジュール・工数への影響を分析 |
||||||
コミュニケーションツール | クライアントとの確認・進捗報告 | チーム | CHATWORK |
変換手順
2段階アップグレード
VB6.0からVisual Studio 2017へ直接アップグレードできないため、1段階目としてVB .NET2008に更新し2段階目として最新版のVB .NET2017に移行します。現在、VB.NETは、IDE製品であるVisual Studio 2017が最新版となっています。
サードパーティツールの作り直し
VB6.0でのサードパーティとVisual Studio 2017のサードパーティの仕様に互換がない、作り直しをしました。
WINDOWSアップグレードウィザードでの自動変換でのエラー対応
自動変換時にコンパイルエラーとランタイムエラーが発生します。エラーを分類し独自変換ツールを作成して変換をします。独自変換ツールで変換できないモジュールは手作業で変換します。
動作保証 現新一致テスト
新システムでの入力と出力、操作と操作結果が現システムと比較し同じかどうかを検証し動作保証をします。いわゆるブラックボックステストが基本です。テスト結果は現システムと新システムの画面キャプチャや動画で提出します。今回はさらに連携する他のシステムとの結合試験も担当します。
コストを抑えてかつ大量に開発できるということで、興味を持ちました。
実際に話をしてみると、コミュニケーションの問題はなく、日本の開発実績も多かったので、迷いはありませんでした。
出来がとてもよくかつ不具合に対する対応も良かったので、ONETECHさんを選んで良かったと思いました。
それによって誤解が防げたように思います。
事前に操作画面を記録できるアプリ・環境を用意しておくことをお勧めします
⇢お客様の声はこちら
今後の予定
まだマイグレーションをしなくてはいけないシステムや一部機能が残っており、随時マイグレーションをしていく予定です。年間予算を決めて計画的に実行する予定です。
VBマイグレーション対象システム
業務システム全般、勤怠管理システム、人事システム、基幹システム、生産管理システム、物流システム、予約システム、生産・販売管理パッケージ、配車管理システム、車両管理システム、診療予約システムWindowsシステム、会計システム、給付システム、、経費管理システムなど
お問い合わせ