【2025年の崖】SIerで行われている「モダナイズプロジェクト」とは具体的にどんなものなのか
「2025年の崖」とは複雑化・老朽化・ブラックボックス化した既存システムをこのままにしておくと、国際競争への遅れや経済の停滞につながってしまうよ、という経済産業省がDXレポートにて鳴らした警鐘です。
そんな崖を飛び越えるべく、SIerではたくさんのプロジェクトを「モダナイズ」させようとしています。
私も2017年後半くらいから複数のモダナイズプロジェクトに関わってきましたので、「2025年の崖」にはある程度詳しいといえるでしょう。
少なくとも、コンサルタントや役人が外からレポートを書くよりはずっとリアルな目線で、ITの現場がどのようにして「2025年の崖」を乗り越えようとしているのかが見えているはずです。
SIerで行われているモダナイズプロジェクトは以下のようなことをします。
- オンプレミスで動いているサーバーを自社のクラウド上に移動させる
- サーバーを移動しても挙動が変わらないように一生懸命テストする
- 元々のシステムで使っていたJavaやOracle、COBOL、その他フレームワークをバージョンアップさせる
- スパゲティなCOBOLのコードをスパゲティなJavaのコードで書き換える
- データベースのデータを頑張って移動させる
- 移行の計画を立てたり、リハーサルを計画する
- 頑張って性能テストをする
こんな感じで
「今までと全く同じものをクラウドに動かす」
「今までと全く同じ挙動でフレームワークや言語をちょっとバージョンアップさせる」
みたいな作業を1〜2年くらいかけてやっていきます。
ユーザーから見ると何が変わったのかは全くわかりません。
それがモダナイズプロジェクトの目的でもあるからです。
私が最近関わったモダナイズプロジェクトの「さわり」だけ見ていきましょう。
守秘義務上、プロジェクトの中身に触れることは当然できませんが、SIerの業務を垣間見ることはできるでしょう。
開発言語
SIerでのモダナイズプロジェクトで扱う主なプログラミング言語は「COBOL」です。
- すごく古いCOBOLをちょっと古いCOBOLで書き換える
- すごく古いサーバーから自社のクラウド上に載せ替える
- アーキテクチャは変更しない
- テストは自動化しない
- 設計書と呼ばれるExcelをたくさん作る
- テストをたくさんする
余談ながらウェブ系でのモダナイズプロジェクトは以下のようなイメージです。
- 古くなったRailsのバージョンを上げるための対応を行う
- フロントエンドをReact、Vueに対応させる
- クラウド上で稼働していたサービスをk8s上に載せる
- マイクロサービスアーキテクチャを取り入れる
- フロントエンドのサービスをコンポーネント化する
- サーバーサイドのサービスをAPI化する
現代のテクノロジーの恩恵を受けて、自社のサービスのユーザー体験を向上させ、さらには採用面でもエンジニアにとって魅力的なものにしていこう、というのがウェブ系・自社開発企業でのも大ナイズです。
予算と期間
SIerでのモダナイズプロジェクトの予算は20億〜100億程度...というと幅が広すぎですが、とにかく10億円以上のお金が投入されます。
SIer風の工数でいうと3000MM以上です。
期間は長いもので2年、少なくとも1年以上でスケジュールを組みます。
プロジェクトが始まる前にPoC...というほどの高尚なものではありませんが、「フィジビリティ検証」と呼ばれる「事前検証期間」が3ヶ月〜半年ほど設けられます。
そのフィジビリティ検証の結果を元に「見積もり」を行い、「プロジェクト計画書」を作ります。
フィジビリティ検証では「Javaのバージョンを上げて動くのか」「クラウドに移行して性能に問題はなさそうなのか」などを確認します。
ちなみにJavaのバージョンを上げはしますが、上げるのは「社内標準」と言われているバージョンまでであり、2017年に始まったプロジェクトでOpenJDK6(サポート終了日が2016年12月)が使われたりしていました。
プロジェクトの進め方
大手SIer社員(NTTデータ、NEC、富士通、NRI、日立製作所など)はプロジェクトの管理を行います。
それはどのプロジェクトでも変わりません。
プロジェクト計画を作り、Excelに機能を一覧にした「星取表」みたいなものを作ります。星取表は既存機能のテスト漏れがないかどうかを確認するためにあります。
マトリクスを潰しながら、「対応箇所」を可視化するわけですね。大変ですね。
実際の作業はパートナー(協力会社)と呼ばれる下請企業の人がやります。
作業の8割は「テスト」です。
「元々動いていたプログラムを別の環境で動かす」
のがSIerでの「モダナイズ」です。
移行して、テストする。
これを2年くらい延々とテストを繰り返す恐ろしく退屈な仕事となるでしょう。
想像を絶する不毛さ、身の毛もよだつほどの無意味さに耐え、給料のために我慢を重ねる2年間になります。
「モダナイズ」して何が嬉しいのか
ユーザーにとっては何も嬉しいことはありません。
性能も上がらないし、アプリケーションの見た目も変わりません。
SIer側はモダナイズを機に運用コストを下げようとします。
クラウドのくせにやたらとストレージの容量をケチったりして、容量が足りなくなるたびに人手をかけて拡張する...といった、本末転倒な作業を何度も繰り返します。
また、クラウドに移したくせにメモリの容量が足りなくなって、拡張させるために「アプリチーム」が「基盤チーム」との調整を頑張ったりと、何のためのクラウドなのかよくわからない状況に陥ったりもします。
結論として、莫大なお金と時間をかけて、何も良いことはありません。
使われている言語のバージョンが「ものすごく古い」から「けっこう古い」に上がるくらいです。
だからといって、言語のモダンな機能や新しいフレームワークを使うわけでもありません。
2020年に「モダナイズ」してもJSPとサーブレットが使われ続けたりもします。
オンプレミスサーバには「保守期限」なるものがあり、期限が切れたらサーバーが故障してもメーカーが面倒を見てくれません。
そのような「保守期限」を乗り越えるためにクラウドに移行するのが本来の目的なのですが、その目的に「モダナイズ」なるものを乗っけて、色々と中途半端にバージョンアップさせようとするからわけがわからないことになっています。
SIerのモダナイズプロジェクトは莫大なお金を溝に捨てる「仕事のための仕事」であり、本質的に何の価値もありません。
何の価値もないものを「仕事」としてやっていける余裕があるという意味で、SIerにはある意味魅力があるかもしれません。
結局、ユーザーの方を見ず、技術的負債を解消しようともせず、「振ってきたプロジェクトを自分の順番の間だけうまくやりすごす」ことばかりを考えているから、ゴミが巨大なゴミとなり、腐臭を放ち、にっちもさっちもいかなくなっているのが現状です。
20年かけて積み重ねた技術的負債はシステムが消滅するまで返せないのです。
近い将来、ゲームオーバーが見えているババ抜きで、最後にババを引いた人が地獄を見ることになります。