1円で落札し、翌年から随意契約で回収する:中島聡氏が語る行政ITの構造と、オープンソースによる改革案

YouTubeで開く ↗
概要

日本の政府や自治体、大手の銀行・保険会社は、大手IT企業にソフトウェア開発を発注する際に「結構掘られている」。元マイクロソフトのエンジニアで起業家の中島聡氏は、この動画でそう指摘する。行政システムの使い勝手が悪く品質が低いこと、そして日本のIT業界の国際競争力が低いことの根っこには、発注と開発の仕組みそのものの問題がある、というのが中島氏の立場だ。動画はChatGPTの音声機能をインタビュアー役にした対談形式で進み、問題の構造と中島氏なりの解決策が語られる。

12分で読めます
0:12

動画の趣旨:国会入りした安野氏へのエール

中島氏は冒頭で、この動画を作った理由を説明している。先日の参院選で、結党からわずか2ヶ月のチームみらいが1人の議員を国会に送り込み、国政政党として認められた。中島氏は、国会に入った安野氏にこの問題をぜひ解決してほしいと考えている。

ただし、問題を解決するには多くの人が状況を理解している必要がある、と中島氏は言う。どこにどれだけ税金が無駄に使われているかを皆が知っていれば、改革する側を応援しやすくなる。日本のIT業界がいかに「腐っているか」、なぜ政府系システムの使い勝手が悪いのか、なぜ業界の国際競争力が低いのか。その根っこに近い話として、このテーマを取り上げたという。

2:35

競争入札は1年目だけ、2年目からは随意契約

ChatGPTはまず、日本のIT企業が競争入札で低価格を提示し、随意契約に移った後で追加費用を請求する手法がある、と問題を提示し、中島氏がこうした手法を実際に目にするかを尋ねた。

中島氏は、自分で直接目にしたことはないと断ったうえで、新聞報道や人づてに聞いた話からすると本当に起きているらしい、と答えている。仕組みはこうだ。政府はソフトウェアを調達する際、実際には既製品を買うのではなく作ってもらう。たとえば社会保障システムやマイナンバーシステムを作るなら、「こういう仕様で作りたいので、作れる人は手を挙げてほしい。実績と金額を書いてほしい」と競争入札にかける。競争させることで、できるだけ安く良いものを作れるという前提に立っている。

中島氏が「大きな欠陥」と呼ぶのは、競争入札が1年目にしか効かない点である。複数年度にわたるプロジェクトでは、2年目、3年目に「仕様変更がありました」と言われる。発注する側も最初から欲しいものを完全に分かっているわけではなく、曖昧さが残るため、「そこは追加機能ですね」と扱われる。そして追加機能の費用は競争入札ではなく随意契約になり、政府はベンダーを選べない状況で頼み続けるしかない。

有名な事例として中島氏は、「確か富士通が」何かのシステムを1年目に1円で落札し、2年目から何十億円もの随意契約で政府からお金を絞り取った、という話を挙げる。画面上の資料では住基ネットや年金記録問題にも触れており、こうしたことは実際に起きているのだと強調した。

電電ファミリーの系譜と、税金で生き残る大手ベンダー

この構造を担う企業について、中島氏は歴史をさかのぼって説明する。NTTの前身である電電公社が日本の電話システムを作る際にベンダーとして使っていた企業群、いわゆる「電電ファミリー」がある。そのファミリーが日本では延々と生き残り、今ではNECや富士通、日立といった大手ITベンダーとして、政府や銀行の大きなシステムを作っている。

中島氏によれば、彼らが長年培ってきたノウハウが「競争入札では安く落とし、その後の仕様変更や保守で儲ける」という手法だ。これが長年続けられ、莫大なお金、つまり多くの場合は日本国民の税金がこれらのベンダーに流れている。中島氏は、実はそれで生き残っている部分がものすごく大きいと見ている。昔はNECや富士通もパソコンなど良い製品を作って頑張っていたが、今ではNECのパソコンもない(売却したかもしれない、と中島氏は言い添えている)。それでも生き残っているのは、税金を吸い取る仕組みが日本にあり、そこで莫大な利益を上げているからだ、というのが中島氏の見立てである。

政府側はなぜ黙認するのか

政府側、つまり政治家も官僚も、この状況を分かっていないわけではないと中島氏は言う。ある意味で日本のIT業界の雇用を守るという意味合いもあり、騙されていると言いながら、あこぎだと知りながら黙認している部分がある。天下りも起きているので癒着もある、と中島氏は付け加える。

しかし大まかに言えば、日本のIT業界を支えるためにIT予算を使っているような状態であり、それが莫大な無駄を生んでいる。きちんと計算すれば毎年何十億円、何百億円という税金が無駄に流れている、と中島氏は主張する。

ゼネコン型の多重下請け構造

中島氏が指摘するもう一つの問題は、開発体制である。大手ITベンダーはいわゆるプライムベンダー(元請け)で、日本ではゼネコンと同じ構造になっている。プライムベンダーは基本的に営業と仕様の打ち合わせくらいしかせず、実際のコーディングは下請け、孫請けに投げる。

その下請けや孫請けも受注産業であり、仕事の量が増えたり減ったりするため、正社員を抱えるのはリスクになる。だから派遣社員を使う。中島氏が「ものすごく歪んでいる」と言うのは、人材の配置である。NECや富士通、日立のようなプライムベンダーには、理系の大学をきちんと出た人が入社している。ところがその人たちはプログラムを書く仕事には就かず、基本的には管理職として、特に優秀な人は国向けの営業を担当し、大まかな仕様を決めて下請けに投げる仕事をする。プログラマーとしては教育されない。

「士農工商プログラマー」と呼ばれる現場

では実際のコードは誰が書いているのか。中島氏は、実際に会ったことのある派遣社員の話を紹介している。彼らのほとんどは理系の大学を出ておらず、多くは文系出身だという。就職が決まらず派遣会社に登録すると、「ソフトの仕事ならたくさんあるので、2ヶ月の講習に行ってください」と言われる。2ヶ月ほどプログラミング講習を受けた後は、オンザジョブトレーニングという名目でいきなり現場に派遣され、プロジェクトの一員としてプログラムを書く。そういう人がたくさんいる、と中島氏は言う。

中島氏がショックを受けたのは、彼らの間でプログラマーが「士農工商プログラマー」と言われるほど地位が低いことだった。きつい仕事を安い給料でこなしている。去年ほどに話した30代半ばの人は、孫請けの会社で月給30万円ほどで働いていたが、その30万円には「みなし残業」が含まれていた。30万円のうち7万〜8万円ほどがみなし残業分で、月60時間の残業を前提にした給与設定になっている。60時間までは残業してもしなくても支払われるが、実際には60時間以上の残業を求められるような前提の給与体系だという。中島氏は、こうしたみなし残業ははっきり言って違法にしたほうがいいと考えている。結果として時給はものすごく安く抑えられる。

まともにプログラムを書いたことのない人がこうした職場で安く使われ、上から降りてきた仕様どおりにコードを書く。これが日本のシステムの作り方だ、と中島氏はまとめる。

設計とコーディングを分けてはいけない

この構造では、理系の大学を出た賢い人はプライムベンダーで営業や管理の仕事をさせられ、プログラマーとして育たない。一方、下請けや孫請けではコンピューターサイエンスを学んでいない人がコードを書いている。中島氏は「ある意味、いいものができるわけがない」と言う。

長年ソフトウェアを書いてきた立場から、中島氏は「ソフトウェアの設計をする人とコーディングをする人は一緒でなければダメだ」と強調する。自身がいたマイクロソフトも、Google、Apple、OpenAIも、世界で活躍するテクノロジー企業はどこも、大学でコンピューターサイエンスを学んだ人、それも大学院修了者や博士課程を出た人たちが設計とコーディングの両方を担うことで良いソフトを作っている。それにもかかわらず日本では、ITベンダーが随意契約で政府からお金をむしり取りながら、下請けにコーディングをさせている。良いものはできないが、お金だけは流れているので生き延びている。中島氏はこの状況をぜひ直してほしいと語った。

12:36

解決策:オープンソース化と単年度の競争入札

ChatGPTは、今の業界構造を変えられるとしたらどこから手をつけるべきかを尋ねた。中島氏は問題を二つに分ける。一つは「競争入札で安く落として随意契約で儲ける」ビジネスモデル、もう一つは下請け・孫請けを使う開発スタイルである。そのうえで、解決策の一つとしてオープンソースでの開発を提案した。

たとえばマイナンバーシステムを作るなら、そもそも税金で作るシステムなのだから、オープンソースにして誰でも見られる形で保守していくのが正しい、と中島氏は考える。公開されたコードを見て勉強する人も出てくる。そして何より、ベンダーの切り替えがしやすくなる。

クローズドで作ると、1年間作られたものを他社はソースコードを見ることもできない。契約上は後から見られる場合もあるが、継続的に見続けることはできない。蓋を開けたらどうなっているか分からないものを、他社が2年目から引き継ぐのはほぼ不可能だ。逆にオープンで開発していれば、白日の下にさらされているので、それを見ていた他のベンダーが「これならうちのほうが良いものを作れる」「ここに問題があるからこう直そう」といった提案を出せる。

そのため中島氏は、契約の段階で複数年度契約をやめ、必ず半年または1年単位の競争入札にすべきだと言う。随意契約はなし、という条件である。

「オープンにすると危ない」は誤解

国のシステムをオープンにするとセキュリティ上の問題があるのではないか、と考える人は多い。しかし中島氏は、オープンにした程度でセキュリティホールが出るようなシステムではそもそもダメだと反論する。例に挙げたのがLinuxだ。Linuxはオープンソースで世界中で使われているが、オープンだからこそセキュリティホールがあれば皆が見つけて潰しに来るので、良いものになっている。オープンソースだから危ないという考え方は間違いだ、というのが中島氏の主張である。

開発するA社と監視するB社という2社体制

中島氏はさらに具体的な発注方法を提案した。国がシステムを作るとき、2社に発注する。A社には「このシステムをこういう条件で1年間作ってください。ただしオープンソースにします」と依頼する。B社には、A社が書いているプログラムのセキュリティホールを見つけること、コードの品質が保守しやすいものになっているかを監視することを依頼する。2社は互いに関連のない会社でなければならない。A社が書き、B社がモニタリングする体制である。

開発はオープンなので、国民全員が見られる状態で進む。プログラムが書ける国民なら、GitHubで開発していればコメントを書けるので、「ここにセキュリティホールがある」「こんなコードではダメだ」といった声をいつでも上げられる。その声を吸い上げてきちんとしたレポートにし、フィードバックを返すのもB社の役割にしておく。

2年目に開発を続ける場合や新機能を加える場合も、すべてが公開されており、B社もソースコードに詳しいので、随意契約ではなく再び競争入札にできる。「ソースコードは今こういう状況で、ここまでできた。A社はこういう仕事をしてきた」と示し、A社に点数をつけてもいいし、仕事ぶりが悪ければ外してもいい。そのうえで「この仕様を追加するのをどの会社がやるか」と募る。B社はかなり有利な立場にいるし、A社も外されていない限り継続したがる。さらにC社やD社といった別の会社も、ソースコードを見たうえで「このプロジェクトならうちのほうが良いものを作れる」と判断できる。

こうしてベンダーロックインがなくなり、毎年競争させられる。画面の資料には、業界で「追加要件は宝の山」という言葉が使われていると書かれていたといい、中島氏はこうした状態をなくせると述べた。

GitHubでの管理は下請け問題にも効く

二つ目の問題である下請け・孫請けへの丸投げについても、中島氏はGitHubでのソースコード管理が効くと考えている。GitHubでは誰がどのように関与しているかが分かる。孫請け会社から派遣されてきた、ほとんど役に立たない人がいれば、それが如実に分かる。誰がどんな仕事をしているかを綿密に監視できるので、プロジェクトの途中で「この人は仕事をしていない」と監視役のB社が指摘できる。

これにより、業界で言う「人月」の工数を稼ぐためだけに派遣社員を揃えるようなことがしにくくなる、と中島氏は言う。「この人は役に立たないのでプロジェクトから外してください」と具体的に言えるようになり、本来プログラムを書く立場にない、コンピューターサイエンスを学んでいない人で人月を稼ぐことも難しくなる。また、GitHubではユーザーIDが明らかなので、「正社員しか書いてはいけない」「正社員と下請けまではよいが、その先はダメ」といったコントロールもしやすくなるという。

20:21

締めくくり:理解したうえで応援を

ここまで中島氏が一人で話していたところ、ChatGPTの接続が切れており、話を聞いていない状態になっていたことが判明した。中島氏は聞いていなかったものは仕方がないとして、ChatGPTに締めの挨拶を頼み、ChatGPTは日本のIT業界が抱える課題について考えていきたいとまとめた。

最後に中島氏は、この動画は単に文句を言うためのものではないと述べた。こういう現状があることを多くの人に知ってもらい、そのうえでこの問題に切り込もうとする安野氏を皆で応援しよう、という趣旨だという。中島氏は視聴者に、状況を理解したうえで応援してほしいと呼びかけて動画を締めくくった。