特許庁のシステム開発が破綻した本当の理由
特許庁と東芝の新システム開発契約打ち切りについて、なぜこの開発プロジェクトが破綻したのかについて私なりの解説をしようとバックグラウンドを調べたところ、調べれば調べるほど、この問題の根底には(1)コスト意識が欠如し自分たちが「公僕」であることを忘れてしまった霞ヶ関官僚、(2)霞ヶ関から流れて来るお金にたかる IT ゼネコン、(3)そのお金の流れに対する影響力を利用して票を稼ぐ政治家、という原子力業界と全く同じような構図があることが明らかになり、ウンザリしてしまった。
破綻の原因は、ソフトウェア・アーキテクチャやプロジェクト・マネージメントにあったのではなく、「競争原理が正しく働かない社会構造」そのものにあるのだ。これではうまく行くはずがないし、たとえうまくいったとしてもやたらと高くつく。
そもそも破格だと言われた99億円という落札価格も、私から見ればどうみても高すぎる。特許庁のシステムであれば、優秀なエンジニアを10人集めることが出来れば1〜2年程度で作れる(100人いたら逆に難しくなる)。一人当たりの人件費を(健康保険・福利厚生・オフィススペースなども含めて)2000万円として計算しても、2〜4億円で作れる。会社としての粗利益率を50%で計算しても10億円で落札しておつりが来る計算だ。コードの書けない上流の「自称エンジニア」が上位設計をして、実際のコーディングを下請けに任せるようなことをしているから人も育たないし、コストも高くつくのだ。
参考までに、週刊朝日の記事、サンデー毎日の記事、特許庁情報システムに関する調査委員会による「調査報告書」、へのリンクを張っておく(下の図はサンデー毎日の記事からの引用)。
いつも拝読しております。大手電機メーカーでシステム開発をしている20代の者です。
SIerへの批判、官僚・ゼネコン・政治家が絡んだ腐敗した構造への批判、ごもっともであると感じています。そのうえでですが、この件を含む、以前からの中島さんのSIerの開発体制やあり方についての批判のうち一部に、最近は疑問を感じるようになりました。ポール・グレアムの「ハッカーと画家」に書かているような開発手法は理想的だと思いますし、ウォーターフォール型の開発には僕も嫌気がさしていますが、SIerの現状をふまえると、そういった開発手法にも一定の合理性があるようにも思えるのです。
>2〜4億円で作れる。会社としての粗利益率を50%で計算しても10億円で落札しておつりが来る計算だ。
ステップ数で計算することに意味があるとは僕も思っていませんが、仮にこのシステムが10万ステップだとしましょう。SIerが開発を行う場合、この10万ステップにひとつもバグがない状態を目指さざるを得ません。このシステムが仮に20年稼働するとして、20年間のうちにシステム障害が起こる可能性を0%にすることは不可能ですが、0.00…%の先にいくつゼロが続くのかが重要な意味をもちます。ですので「すべての起こりうる場合をテストする」ようなテストが必要となるわけですが、すごいハッカーが10人いても、そのようなテストを1年や2年の開発期間中に行うのは難しいと思います。
また、使用するミドルウェアのバグで障害が発生することも考えられます。例えばオラクルDBを使用し、オラクルDBのバグでシステムが落ちた場合、「DBのバグだから文句はオラクルに言え」では済みません。DBの品質に責任を持つためには、例えば、MySQLをテストして細かなバグにはパッチを当てるとか、DBも自社開発するとか、そういったコストも必要になるのではないでしょうか。DBに限らずWebサーバやハードウェアなど、あらゆる面でそういうコストが発生します。そういった観点をふまえると、テスト済みの古いJava実行環境を使用するのが現実的で、最新のプログラミング言語が使用できないため、さらなるコストがかかるわけですが、「絶対に落ちないように作る」ためにはそういったコストも必要なものだと思います。4億円で開発するというのは難しいのではないでしょうか。
>優秀なエンジニアを10人集めることが出来れば1〜2年程度で作れる(100人いたら逆に難しくなる)
あくまでも弊社の場合は、ということですが、製品の技術面に最終的な責任を持っている責任者の方々は、そこらのハッカーよりも遥かにスキルが高いように思えます(年齢で言うと、中島さんとほぼ同年代の方々です)。OSや言語処理系などは自作できるでしょうし、単に自作できる人よりも遥かに詳しいように思えます。その人たちが5人集まれば確かに1年もかからずに作ることができると思います。ですが、それでは若手が育たないので、小分けして若手にも仕事を割り振り、責任者が仕様書をレビューすることで質を担保しています。より優秀な学生を採用すれば、より少ない人数での開発が可能だとは思いますが、それにも限界があるように思えます。
なにかご意見などありましたら教えて下さい。
Posted by: tkr | 2013.01.06 at 04:46
tkr さんの言うほど優秀な技術者ならば、相当に高級を払う必要がありますよね。本文中では 1000万円ぐらいしか払わないつもりのようですが、それは無理では? その 5倍は必要でしょう。さらに、補佐をする人も必要でしょう。
ざっと見て 10倍のコストならば、本文中の 10億円に対して 10倍の 100億円が妥当では? それでも、100億円できちんとしたものができるならば、安上がりですね。
現実には、本質は、ITゼネコンの問題でしょう。
Posted by: Ponta | 2013.01.06 at 06:37
訂正: 高級 → 高給
Posted by: Ponta | 2013.01.06 at 06:38