Web+DB Press(No.58)を久しぶりに買って読みました。その中で記事の一つが色々と考えさせてくれる内容だったので紹介します。
題は「なぜ日本のソフトウェアが世界で通用しないのか」というもの。米国と日本のソフトウェア産業の仕事のやり方を比較していますが、日本でのソフトウェア開発は、ITゼネコンビジネスモデル(大手ベンダが仕事を受注し、実際のプログラミングは下請けベンダが行う構図)であり、その事が以下のような副作用ともたらしているとの事。
・結果的にソフトウェア開発が労働集約型のビジネスモデルとなってしまっている
・必然的にウォーターフォール開発となり、人手と手間がかかりがち
・IT関連企業の海外での競争力低下
・ベンチャー企業を立ち上げにくい環境
・エンジニアの地位の低下
ソフトウェア産業は本来知識集約型産業であり、ソフトウェアは流れ作業で大量に作れるものでは無く、優秀な頭脳により作りあげるものだ。日本企業のやり方だとソフトウェア開発の優秀な人材は海外に流れていくのでは?と結んでいます。
私は「海外ではこうだ。それに引き換え日本はこうだからダメなんだ」的な記事は好きにはなれませんが、そもそもなぜ日本がITゼネコンビジネスモデルになっているかを考える必要があると思います。
海外は知りませんが、日本のIT現場では「人月」がまるで通貨単位のように現状では使われています。見積もりの段階でも、XX人月なんでXX円です。という金額計算が使用されてます。変な話ですが、「なぜ、XX円なんですか?高く無いですか?」という質問に対して「この作業がXX人月だからです」という変な会話も日本のIT業界だと十分ありえる話です。
そこでプライムベンダーはXX人に相当する人数を連れてこようとしますが、一人当たりの金額を下げないと利益は出ない為、本当に何も分かっていない人を連れてきたりします。そういうIT知識がほぼゼロの人でもものづくりに参加させるには、設計書を出来るだけ細かく書き、プログラミングをほぼタイピングのようにさせる必要があります。
全部がこのような発想とは言い切れませんが、日本ではプログラミング作業=タイピング作業ととらえている節があります。自動車工場で自動車を作るようにシステムを作り上げようという発想でしょう。まさに労働集約型+ITゼネコンビジネスモデルです。
と、本当に簡単に書きましたが、上記が日本のIT現場の典型的な仕事のしかたではないでしょうか。もちろん、Webサービスを展開する企業や、ミドルウェア等を自社で作っている会社はこの限りではありません。
現状は確かに問題点が多いとは思いますが、変わるのは時間がかかりそうです。