システムがテーマ

システムがテーマということなので、長かったとも、短かったとも言える私の携わった技術、システム、ビジネスなどについて、少しずつまとめていきたい。

まず、私が最後に携わったシステムは、国の補助金や委託費などの予算の管理・執行をおこなう、予算管理システムだった。このシステムは、某中央官庁の予算を横断的に管理できる唯一で最終意思決定をおこなう、大臣官房会計の依頼のシステムだ。

当該システムの条件はわずか6ヶ月で、開発期間しかなく、その内容は、年度予算が毎年3兆円もあり、かつ、繰越等や、過去データを含めると数十兆円の予算の執行、支払を管理するという、とてもつもない、ミッションインポッシブルな条件だった。

携わった(たずさわった)という表記にするが、このシステムは、私が、要件定義の50%、基本設計の70%、詳細設計の70%、製造の40%、試験の20%、運用の管理をおこなった、私の集大成でもあった。

このプロジェクトは、体裁上、プロジェクトマネージャーはいたが、実質的なマネジメントはほぼ私であり、同時に、技術者でもあった。プレイングマネージャーというスタイルで、2005年にリリースされた。

技術はデータベースはいわゆるO社の製品、WEBサーバは、官庁ではまさに革新的な選択であったTサーバを使った。WEBサーバにTを採用するということは、JavaのMVCモデルを使うことになる。

なぜ、Tサーバだったのか?それは、国産メーカーをできるだけ排除したかったからだ。

国産メーカーのWEBサーバを使用すると、例えば、Javaのバージョンが上がっても、非対応であったり、対応が次のバージョンがでるころやっと対応したりするため、技術的制約事項になりかねないためと、大臣官房会計と、我々と、国産メーカーの3者の打ち合わせが必要になり、6ヶ月という短い期間で、民間ではほとんどありえないような巨大な予算を管理するシステムを作るには、致命的な足枷になる可能性が高かったからだ。

しかし、Tサーバは実績は世界一とはいえ、責任は、自己責任という、特殊な製品であることに違いは無い。この点が怖くは無かったのかというと、正直怖かった。

だが、世界で最も使われているサーブレットを稼動できるWEBサーバであり、それは最も信頼性が高いということになる。そのような理由で、Tサーバ以外の選択はありえなかった。

データベースは当然と言える、O社の製品を選択した。やはり、何より実績があることと、私がプラチナであり、使い慣れたデータベースという理由からだ。

国のシステムは、当然入札になる。今回も入札だったが、この短期間で、入札に参加してくるメーカーはさすがにいなかった。入札は価格だけでなく提案内容の評価点もあるので、当然、我々が勝つのはわかっていた。また、我々は、当該官庁配下の大規模独立行政法人のシステムを数多く手がけ、運用していたので、仕様は最初から理解していた。

提案内容で負けるはずはなかった。

だが、ハードはそうはいかない。当然国際競争入札になる金額なので、メーカーを選択することはできない。個人的に、ハードはN社製が好きだったので、N社に頑張ってもらいたかった。運よくハードはN社の製品になった。

N社の○○官庁事業部は、知り合いも多いので、ハードには細かな注文をめいいっぱいつけた。こう書くと癒着だの談合だのいう、下世話な話がでてきそうだが、そういったことは、某官庁にあったかないか知らないが、私の携わる案件にはまったくなかった。

さて、私がどうやって、6ヶ月という短期間で、通年度で数十兆円もの予算を管理するシステムを作ったか?とう問題だ。これには、ウルトラCがある。いわゆる、C難度、いまじゃD難度かな?の離れ業を使った。具体的には、内外ともに、2012年段階でも現実的に使える、Mdel Driven Architecture 通称MDAの技術を、ミドルウェアとして実現していた。

このMDAのミドルウェアは、密かに、長い年月をかけて、その概念を実現するために、なんどもバージョンアップを重ね、時には、全てを作り直すなどの大規模なバージョンアップを続け、実現したもので、既に、大規模独立行政法人、上場企業など、様々ま組織で動いており、高可動性と、高速処理、なにより、高生産性と高品質を実現する、信頼できる製品としてできあがっていたのだ。

このMDAの優れたところは、設計が終了すると同時に、設計書をXMLで出力し、そのXMLをミドルウェアが読み込み、プレゼンテーション層(画面生成)からビジネスロジック(データベースの処理等)まで、全てを自動実行してしまうことだ。

仕様変更は、XMLを書き直すか、設計書を書き直し、XML出力するだけだ。まさに設計書とプログラムが完全同期する、エンジニアにとって現実的な夢のシステム近いものだった。

このMDAを使用することで、わずか6ヶ月という短期間にもかかわず、1万人近くの省員が使用し、数十兆円の予算と支出を管理するシステムを作り上げた。

これは、過去において、このような短期間で実現した事例はないし、今後においても、最低あと10年は破られることはないだろうと思う。

品質、性能はどうだったか?仕様漏れ等の機能面はどうだったかというと、まったく問題なく、システムは動き続け、当該省はもちろん、配下の庁、大規模独立行政法人も使った。それだけ、システムは柔軟性があり、軽く、シンプルな構造で、どんな人も理解するのが難しくなかった。

このシステムが現在、どのようになったか、私は知らない。それは、私が、国の仕事から、このシステムを最後に身を引いたためだ。私は、国の仕事をやりきり、大規模なものなら、もっと望めば携わる機会はあるが、これだけ権限の委譲を受け、権限が集中し、理想的なシステムを作ることはもうできないと思ったからだ。

Sunの墓前にしずかに頭を垂れるJavaマスコットのDuke

そして、国ではなく、民間、つまり在野に下り、そこで、新たな組織を作りたいという強い欲求から、十数年続けた国のシステムから身を引いた。

このとき私はまだ、30代前半。