お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

ソフトウェアの仕様書は料理のレシピに似てる(大阪弁バージョン)

2006/10/25 04:49
  • このエントリーをはてなブックマークに追加

プロフィール

中島聡

Microsoftでチーフアーキテクトを務めた経験を持つUIEvolution CEOの中島聡氏が、「Web 2.0」と呼ばれる新しいネット時代のサービスのあり方や、ライフスタイルの変化について考察します。
ブログ管理

最近のエントリー

 先日、経済産業省向けの仕事をしとる知り合いと食事をしたのやけど、彼によると経済産業省の今の悩みは、「IT産業の階層化の弊害によっておこる下流のプログラマーの収入の低下」だそうである。「プライムベンダー」と呼ばれる「上流コンサルタント」たちがインドや中国にも仕事を発注できることを理由に、激しく値切り始めたために、今やわずか一人月30万円ちうケースもあるちうわ。

 こないな話を聞くとホンマに悲しくなる。まず第一に「プログラムを書く」ちう仕事は簡単な仕事ではおまへん。数学的な頭を持っておらへんとかなり辛いし、基礎がしっかりと出来ておらへんとろくなソフトウェアは作れへん。物価の安いインドや中国なら許せるが、米国よりも生活費の高い日本で一人月30万円とはあまりにも低すぎる。

 「彼らは下流のエンジニアで、詳細仕様書に従った通りのプログラムを書くだけの簡単な仕事をしておるから給料が安い」ちう説明を聞いたことがあるが、それにもまるっきし賛成でけへん。わいはこの業界でようけのエンジニアも使ってきたが、優秀なエンジニアとそうでないエンジニアの生産性は(誇張抜きで)20対1ぐらいである。そないな簡単な作業しか出来ないエンジニアとも呼べないようなエンジニアが沢山いてもマネージメントがエライだけである。そもそも、就職した段階で詳細仕様書に従ってしかプログラムを書けへんような人が、ソフトウェアエンジニアになっても幸せになれるとは思えへん。

 ほんでもっとも許せへんのが、そういった上流→下流ちう階層構造でプログラムを作る工程そのものや。

 これに関しては、自信を持って言えるのやけど、「どないなに優秀なエンジニアでも、決してプログラムをオノレ自身で書かんとええ詳細仕様を作ることは出来ない」ちう絶対的な法則があるのや。わいの知っとる優秀なエンジニアは、皆それを知っており自ら実行しとる。もちろん、彼らはプログラムを書き始める前に大まかな設計をするのやけど、十分な経験を積んだエンジニアは、その段階でのものが「仮設計」でしかないことを良く知っとる。やから、その段階で詳細設計書を書くような時間の無駄使いはせず、すぐにプログラム(もしくはプロトタイプ)の作成にかかるのである。

 実際にプログラムを書き始めて初めて見えてくること、思いつくことが沢山あるので、それを元に柔軟に設計を変更しながらプログラムを書き進めるのである。作っとるプログラムが予定通りに動き始めてやっと、設計も完成に近づくのである。(せやけど、そないな作り方で作ったプログラムはソースコードが汚くなってしまうケースが多いので、この段階から出来上がったプログラムを、読みやすさ・メンテナンスの高さを重視して大幅に書き直すことを強く薦める。エンジニアによっては、ここでいっぺん作ったプログラムを全部捨ててしまってもういっぺん全部作り直す人もいるぐらい、この作業は重要や。)

 世界を又にかけてソフトウェア・ビジネスをしとる米国の会社は、MicrosoftにしてもGoogleにしても、この法則にのっとって、アーキテクト自らががプログラムを書いとる。

 せやけどダンさん、わいがいっぺん働いたことのあるNTTの研究所では、ほどんど自らソフトウェアの開発をしたことの無い人達が詳細資料書を書き、それを外注に発注してプログラムを書かせる、ちうソフトウェアの作り方をしとった。学生時代からプロとしてソフトウェアを作っとったわいは、新入社員にも関わらず「こないなやりかたやええソフトは作れまへん」と上司たちにくってかかったのやけど、どなたはん一人として理解してくれなかった。

 わいには、この「オノレでプログラムを書かない上流のエンジニアが詳細設計書を作り、下流のエンジニアがコーディングをする」ちう工程そのものが、根本的に間違っとるとしか思えへんのや。「下請け」ちう弱い立場にあり、経験も少ない下流のエンジニアが、「仕事を発注してくれる大切なお客様」である上流のエンジニアに対して、「この部分は、設計をちびっと変更をした方がプログラムがシンプルに書けるし実行効率もあがると思うんやけどアンタ、変えちゃってええでっしゃろか」やらなんやらと言うことが出来るとは思えへん。下流のソフトウェアハウスの経営者にとっても、そないな余計なことを言うエンジニアよりも、仕様書通りのプログラムを納期以内に黙って作るエンジニアの方が使いやすいのではおまへんやろうか。

【注】このエントリーは、大阪弁変換(Javascript ver.)というツールを使って標準語を大阪弁に変換して作成したものです。

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー

個人情報保護方針
利用規約
訂正
広告について
運営会社