人気ブログランキング |

独り言

phinloda.exblog.jp
ブログトップ

タグ:ソフトウェア開発 ( 2 ) タグの人気記事


2008年 01月 15日

それは新たなる納期の始まりに過ぎない

格言、初出不明。

by phinloda | 2008-01-15 05:56 | メモ
2007年 06月 09日

プログラミングの80%が知的作業に使われて20%がルーチンワークに使われている

数字のトリックがある。考えないと解けないような知的作業には時間がかかる。ルーチンワークには時間がかからない。それも劇的に短縮できる。

例えば web サイトをクロールする処理を作るのは大変である。perl で1行で書けるという人もいるが、それはインターネットから単独のページを get するだけであって「クロール」ではない。クロールには、スケジューリング、エラーが発生したときの対応、現在のページの内容に応じて次の get 先をダイナミックに決定する処理、そのための html や xml のパーサー、などが必要なのである。

このタスクは最初、知的作業に含まれているから、すなわち80%に含まれている。なお、20%というのはこれ以上減らせないぎりぎりの数字ということで、あまり深い意味はない。簡単にいえば、100%知的作業のプログラミングはあり得ない。考えるだけではコードは生成できないのでキーボードを叩くかマウスを操作する時間が必要なのだ。

さて、これが例えば100時間かかったとする。次回に同様のタスクが発生したときには、これをそのまま使ってもいいし、多少アレンジするとか修正して、使いまわしてもいいし、実際そうするはずである。他人のライブラリは信じなくても自分のライブラリを使いまわすプログラマーは多い。

ということは、これは次回からルーチンワークになる。つまり、一度作ったモジュールの再利用だ。これはごく短時間、例えば1時間で済む。では、知的作業の80%は減るのか? 減らない。なぜなら、「他のことを考えなければいけない」からだ。

従って、駆け出しのプログラマーとシニアプログラマーとは、同じ「知的作業」といっても、その内容が違う。あまり頭を使わずに簡単にできる作業が、経験と実績と勘によって蓄積されていく。コーディングの成果物の量や質も違う。これが生産性28倍の正体の一つである。

by phinloda | 2007-06-09 14:50 | メモ