« プログラミングの話(2) | Main | プログラミングの話(4) »

July 14, 2013

プログラミングの話(3)

プログラムを書けるようになりたいと思っている人は、プログラムでないと不可能と思われるような大量のデータを處理することが出來るという他に、もしプログラムが作れるようになったら、それこそどんなシステムだって作ることが出來ると、獨りで勝手に興奮し舞い上がってしまう人たちだとも言える。しかし、プログラムが書けるようになったら、大量のデータを處理するホンのちょっとしたプログラムを書くと言うならまだしも、どんなシステムだって作れるようになると思っているのだとしたら、それは大閒違いだ。

むかし「C言語でのシステム開發で1人の開發者で把握出來る仕樣の規模はせいぜい50K程度である」と言った人が居た。50Kというのはだいたい有效ステップで50000行くらいあるプログラムのことである。これはおそらくリーダをどのくらい配置すべきかという指標であろう。そしてその當時の開發者の生産效率はだいたい5K/人年、つまり1人の開發者が1年に約5000行のプログラムを開發する。そのペースだと、1ヶ月で作れるプログラムは約400行になり、1日だとたった20行(C言語の關數だと1~2個くらい?)しか作れないことになる。

ひょっとしたら「そんなバカな、俺だったら月に20~30Kくらい樂勝で開發出來る」という人も居るだろう。しかし、誰もがそんなキチガイみたいな效率で作れるわけではない。かの有名なヨードンさんの話では、效率が良い人と惡い人の閒でなんと28倍の差があったと言う。假に0.4K/人月を標準とし、最高と標準の閒の差を14倍とすると優秀な人の生産效率はせいぜい5~6K/人月だ。よって20~30K/人月が樂勝というのはまさに驚嘆すべき生産效率であり、そんな人がもしこの世に存在するのなら神と呼ばれても不思議ではない。ちなみに20K/人月という生産效率の元では、1日に約1000行ほどプログラムを作る必要がある。

知らない人のために書くと、システム開發はプログラムを書くという作業だけではなく、少なくとも機能設計書、プログラム設計書、單體試驗項目表、結合試驗項目表くらいは作成するし、試驗をするには自分のプログラムを呼び出すドライバと、自分のプログラムが呼び出す他擔當の機能、つまりスタブを作成しなければならない。また、すべての設計書、プログラム、試驗項目表には作成後のレビュが必要であり、他擔當のレビュにも參加しなければならない。さらに深刻なバグが發生したときの對處や、開發マシンの不調に伴うロスなどを考えると、1日に1000行のプログラムを完成させていく生産效率を維持するのは竝大抵のことではない。

まあ、プログラムを書くという作業はシステム開發の全工程のせいぜい1/5以下であり、他の4/5以上は打合せ、ワープロ作業、マシン時閒の奪い合い、他擔當との喧嘩、喫煙、病氣による休暇に費やされる。

|

« プログラミングの話(2) | Main | プログラミングの話(4) »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/57785980

Listed below are links to weblogs that reference プログラミングの話(3):

« プログラミングの話(2) | Main | プログラミングの話(4) »