マイナンバーの障害で何が起きていたかを想像する
少し前になりますが、マイナンバーのデータ移行ミスがあったとのニュースがありました。
少し調べてみると、まあ関わりたくない案件の臭いがぷんぷんしてきましたので、ちょっとまとめてみたいと思います。
どこから発注されていたのか?
マイナンバーのシステムは、地方公共団体システム機構という謎の機構が発注を出しているようです。
国の関連法人は、一定金額以上の取引はほぼすべて入札という形で行われます。
その入札広告はだいたいWebサイトにに公開されているはずなのですが、Webサイトを見てもどれが個人番号(マインナンバー)の公告なのか全く分かりませんでした。
公告が広く確認されるとまずい理由でもあるのかもしれませんが、まともな仕様を作れそうな組織とは思えませんね。
誰が受注したのか
IT系のニュースを検索してみたところ、2つの記事が見つかりました。
マイナンバーを管理するシステムとマイナンバーを生成するシステムの二つのシステムに分かれた受注になっているようですね。
NTTコミュニケーションズを代表としたNTTデータ、富士通、NEC、日立製作所の5社からなるコンソーシアムが二つ合わせて200億弱円で落札しているようです。
大手5社の合同なんて、関わりたくないオーラがプンプンしてきますね。
失敗しそうな原因1:NTT系がイニチアシブを取っている
NTT系がイニチアシブを取る案件は、個人的には最も関わりたくない案件の一つです。
NTT系企業は、中が殆どお役所です。彼らは要件定義書とか仕様書の"てにおは"とか"言い回し"に異常にこだわります。
NTTデータはプロマネという名の文章ダメ出し屋さんが、作られたドキュメントに文句をつけ、誤記を見つけては鬼の首を取ったように富士通、NEC、日立を叱責していたことでしょう。
もちろん、誤記なんてする方が悪いとお思いでしょうが、200億円規模のプロジェクトで作成される膨大なドキュメントを全て誤りなく記述するなんて不可能です。
おそらく、このプロジェクトで前工程のドキュメントに誤りが見つかった場合、富士通やらNECやら日立は、「全てのドキュメントを再精査して問題ありません」という報告のために膨大なリソースを使っていると思います。
失敗しそうな原因2:なぜかシステムが分かれている
システム間のインターフェースは、システム開発時に最もトラブルの多い箇所の一つです。極力システム構成は単純な方が障害を招きにくいですが、なぜか中枢システムと生成システムに分かれた構成になっており、なんとなーく嫌な空気が漂います。
仮に1システムとして受注したとしても、会社でチームは分かれて行くでしょうから、富士通、NEC、日立で3つ以上のサブシステムに分けて開発を行うでしょう。
国のシステムはただでさえ複雑な構成になりがちと聞いたことがありますので、今回もとても複雑なシステム構成になっていることでしょう。
失敗しそうな原因3:大量のデータコンバートが発生する
国が個人を管理するシステムがどうなっているのかはわかりませんが、人の名前って同姓同名もありますし、一意のデータに特定するのが難しいデータのうちの一つです。
そのデータを、データ構造の違うシステム向けに大量に生成する必要があるというのは気が遠くなる作業です。イレギュラーなデータ等を考慮すると、結構手作業で作られたデータなんていうのもありそうです。
マイナンバーシステムに投入するデータはおそらく住基ネットあたりを元に引っ張ってきていると思うのですが、ちゃんと個人を特定できるコード(主キー)は振られていなかったんじゃないかと想像しています。(そこで個人を特定できる主キーを設定できていれば、マイナンバーなんて新たに作る必要ありませんしね)
ということは、元となるデータを持ってきてみたものの、どのデータとどのデータが重複してて、どのデータを生かすべきかーなんて紆余曲折がいっぱいあったんじゃないかと思います。
とはいえ仕事を選べるわけではない
われわれシステム開発者は、大手を頂点としたピラミッドの1歯車でしかありませんので、自分が所属している会社がどの層にあるにせよ、嫌な予感がするシステムだからと断れるわけではありません。
そんなときに一介の会社員が切れるカードなんて「退職」くらいでしょうしね。
どれだけ優れたスキルを持っていても、このような大規模システムの前では焼け石に水。システム開発に最も必要なスキルはやはり体力と精神力ということになるでしょうか。