一般にローコード開発ツールは小規模なアプリケーション開発に使われるものと思われがちだが、それは誤解だ。
開発者向けのローコード開発ツールには大規模なミッションクリティカルシステムに対応し、開発のみならずアプリケーションの配信・運用、テストやデバッグといったメンテナンスまで、システムのライフサイクル全体をカバーする製品もあり、そうしたツールを基幹システムの開発に応用するケースも出てきた。
その好例といえるのが、2022年4月にカットオーバーした、みずほ銀行の外為決済システム再構築プロジェクトだ。このシステムはメガバンクを始めとする銀行間で外国為替の売買を行った際の円資金決済を集中的に行うもの。外為円決済を24時間365日担うため、社会に及ぼす影響からも安定稼働がより強く求められるミッションクリティカルシステムである。
外為決済システムの再構築がなぜ必要だったのか。その背景について今回のシステム開発プロジェクトを担当した、みずほリサーチ&テクノロジーズの萩原正晴氏は次のように振り返る。
「最初にプロジェクトの検討を開始した2016年当時、外為決済領域では外国送金に関わる決済ネットワークSWIFT(国際銀行間通信協会)が従来の電文(MTフォーマット)から、金融サービスの通信メッセージ標準であるISO20022(MXフォーマット)へ順次移行するという大規模な制度変更が発表されていました。またFinTechの台頭で新技術を活用した様々な決済手段も検討されるなど、外部環境の変化がその後も大きくなっていくと予想されていました」
一方、みずほ銀行の外為決済システムは構築から約30年が経過し、PL/Iや分散サーバー、端末アプリといった古いアーキテクチャを使用していたため、環境変化に合わせた新システムを開発しようにも技術者の確保が困難という課題があった。長年にわたるシステム統合でモジュールも肥大化しており、プログラムのメンテナンスが難しく、開発期間が長期化することも予想された。
「そこで、従来のアーキテクチャや開発手法に縛られない、新しい形でのシステム構築を目指すことにしたのです」と萩原氏は話す。
旧システムは勘定系ホストが基盤となっており、Javaで構築された分散系システムとの連携も含め、運用・保守コストが二重にかかる状態だった。プログラム言語のPL/Iを操るエンジニアも年々減少傾向にあり、担当する開発パートナーが固定化していたことも高コストを引きずる要因になっていたという。
こうした課題を解決するため、みずほ銀行は外為決済システムの再構築を決断。2016年4月から、みずほ情報総研(現みずほリサーチ&テクノロジーズ)と共に次期アーキテクチャの検討を開始し、要件定義や新たな開発手法の選定を進めていった。
その際に重視したのは、開発期間の短縮化やコスト低減を実現するオープン技術の採用と安定稼働の担保、もう1つが「内製化」というキーワードだった。
「旧システムは、開発・運用・保守も含めてベンダーに大きく依存する傾向があったので、次期システムでは我々もシステム内容を精査し、開発・運用に携わることでノウハウを蓄積できればという想いがありました。そこで浮上してきたのがローコード開発ツールの活用でした。現場に近い自分たちでも開発に携われる環境があれば、長期化が予想された開発期間の短縮やコスト低減に加え、ブラックボックス化していたシステムの可視化につながるという狙いがあったのです」(萩原氏)
要件定義と並行して進められたツールの選定では、複数のソリューションが比較検討された。最大のポイントは、「既存システムの機能要件を充足できるのか」「本当に工数を削減できるのか」の2点だったという。
そこで最も高い評価を獲得したのが「GeneXus(ジェネクサス)」だった。GeneXusは開発者が定義した要件定義情報を基に、独自の推論エンジンを用いてアプリケーションとデータベースを自動生成するローコード開発ツールである。開発環境が統合されており、1つのIDEでビジネスロジックの定義からデータベースの設計・実装、UIデザインまで、一気通貫で開発が可能だ。プロトタイプも容易に作成でき、機能要件をチェックしながら開発を進められる特長を持つ。
「GeneXusは自動生成できるアプリケーションやデータベースの範囲が広く、開発者は業務ロジックの実装やデータモデリングの反映に専念できるため、マンパワーが不足する中、開発期間の短縮やコスト低減につながると考えました。特にWebシステムの開発に強く、我々が求めていた帳票出力機能がそろっていたのも大きなポイントでした」と萩原氏は評価する。
プロジェクトチームは、その皮切りとして、既存システムの資金決済系画面のUIをプロトタイプとして作成し、評価を行った。その結果、各画面に実装されている機能とほぼ同機能をGeneXusで開発することに成功した。コーディングが自動化されたことでコーディング工程における手作業ミスもゼロとなり、UT(単体テスト)工程の削減につながったことから正式な採用を決定した。
冒頭にも触れたように、外為決済システムに一度不具合が生じると社会に多大な影響を及ぼすため、安定稼働の担保が必須だった。「重要なのはシステム障害を起こさないこと。人的ミスを起こさないこと。さらにはシステム変更時の容易性も重要なポイントです。GeneXusはそれらの要素をしっかりと叶えてくれました」と萩原氏は採用した理由を打ち明ける。
当初考えていた、自社が開発・運用へより参画する方針は、外部パートナーとの役割を見直すことで狙い通り実現できた。
「我々がシステム内容を常に把握・判断しながら、常駐する外部パートナーとワンチームとなった開発体制により、当初の目的は達成できました。JavaのエンジニアならGeneXusの操作にはすぐ慣れますので、複数のパートナーから最大200名もの要員を確保できたのも非常に助かりました」(萩原氏)
外為決済システムを構成する「事務処理」「IF」「記帳」「共通機能」といった各コンポーネントの開発では、プログラムの自動生成によって手組開発のコーディング量も大幅に削減。ヒューマンエラーも極小化され、生産性は向上したという。
基幹システムの再構築という巨大プロジェクトだったにもかかわらず、コンポーネントによっては従来のスクラッチ開発と比べてビジネスロジックのコーディング量を僅か20パーセント程度に抑えることができた。また、画面などの全体を含めると最大数パーセントまで減少した。
コーディング以外の画面作成では、ユーザーからの要望でヒューマンエラーを防止するため、レイアウトやカラーをカスタマイズすることが求められました。画面UIは行員の事務作業を正確に行う上で非常に重要な要素なので、その正確性をさらに高めるために現場からの意見に基づいたカスタマイズを取り入れています。そのため複雑な画面遷移やカスタマイズが膨大に発生しましたが、結果的には約700画面のコーディングからUTまでを、GeneXusを使用することで実質6か月で終えることができました」(萩原氏)
ユーザーが使い慣れた旧システムの画面系を、GeneXusの画面レイアウト機能によってカスタマイズすることで再現。複雑な画面遷移なども含めて膨大な工数がかかると予想されたが、結果的にはGeneXusの高い生産性が証明された。
GeneXusではアプリケーションのさまざまなレベルでテストを自動化することができるのも大きな特徴の1つだ。今回のプロジェクトでもGeneXus用のテストツール「GXtest」が導入され、生産性の向上とアプリケーションの品質確保に役立ったという。
「また、影響分析機能を備えていることによりシステム変更時の影響を事前に把握できることも安定稼働を支える重要な要素でした」と萩原氏は言う。新システムは、2022年4月にカットオーバー。実際、2年近くを経た現在まで安定稼働を続けており、トラブルは全く起こっていないという。
図 再構築された外為決済システムの構成
勘定系ホストと分散系に分かれていた既存システムを、Javaベースのオープンシステムに統合。IFコンポ、記帳コンポ、事務処理コンポの組み合わせで銀行間の外為円決済を24時間365日担っている
「本プロジェクトを通してミッションクリティカルな領域でもローコード開発ツールが問題なく使えることがわかりました。これはGeneXus自体の品質の高さに担保されている部分もあると思います。今後は当社内でも内製化のスキルを高める一方、GXtestとJenkinsを連携させてビルドからリグレッションテストの検証までを一気通貫で実施するCI/CDの実現も視野に入れています。GeneXus開発の特徴を把握すれば、さらなる開発生産性の向上を図ることも可能だと思います。ジェネクサス・ジャパンには引き続き、手厚いサポートをお願いしたいですね」と萩原氏は語った。