プログラマーの能力差

 このところ本書の読者の方からメールをいただく機会が増えてきました。本書執筆の目的としては、「これからプログラマーを目指そうという人へのアドバイス」とともに、「プログラマーとして活躍している人へのエール」があります。今のところ、メールをいただく方は後者が多く、さらにハイレベルな方が多いのです。

 昨日、メールをいただいた、萩野様とお会いし、非常に有意義な時間をすごせたのですが、本書の中で、「プログラマーの能力には27倍の差がある」と、「まずは動くものを作って確認」の2点に共感いただけたということでした。

 萩野様はIPv6では世界的第一人者であり、私などと比較するのも恥ずかしいほどの実力と実績をお持ちの方ですが、そういう方でもプログラマーの評価が低すぎる、価値を理解できない組織や管理者が多すぎる、と思われているのでしょう。本書で私が27倍と書かれた本を読んだことがあると書いたのですが、どうしてもその本が思い出せず、ネットで検索してみるとどうやら、1968年に発表されたサックマンたちの研究結果を何かの本で読んだ、と言うことのようです。

H. Sackman, W. J. Erikson, and E. E. Grant "Exploratory Experimental Studies Comparing Online and Offline Programing Performance", Communications of the ACM Volume 11, Issue 1 (Jamuary 1968)

これによると、27倍ではなく28倍と書かれているようで、私の曖昧な記憶の中で少しだけ謙虚に倍率を下げてしまっていたようで、訂正せねばなりません。

 また、まずは動くものを作る、という点に関しては、萩野様の表現を引用させていただくと、

we have to switch our mind from "spec then code" to "code then spec".

つまり、仕様を決めてからコーディングするのではなく、コーディングをしてから、つまり実際に動かしてみてから仕様を決めるべき、という感じだと思いますが、机上の検討だけで仕様を決定してしまうことの怖さをおっしゃっているのです。

 ユーザインターフェースや帳票など外部仕様は先に仕様が必要な面もありますが、通信プロトコルなど技術的な仕様に関しては実際に動かして確認してみて初めて気がつくということは私の経験上も非常に多いものです。特に、仕様を確定する人と、実際にコーディングをする人が違う場合に、仕様自体に間違いが含まれていることを最後まで気がつかないという恐れが出てきます。

 萩野様のようなハイレベルな方々から反響をいただけるとは、執筆時点でまったく想像していなかったのですが、現状まだまだ能力のある人たちが気持ちよく活躍できる社会ではないということで、改めてこの業界の悪い構造、つまり人月計算による多段階下請け構造が、如何に業界の発展を阻害しているかがわかってきた感じです。すこしでも改善できるよう、私自身も微力ながら動いていかねばと考えております。

 さて、萩野様はIPv6の専門家ですので、著書のサンプルソースがIPv6レディになっていない点などをご指摘いただき、来年にはIPv4アドレスが枯渇すると問題な今、このようなサンプルを改めていかねばならないと痛感しました。萩野様が著された「IPv6ネットワークプログラミング」株式会社アスキー:ISBN4-7561-4236-2をいただき、非常にわかりやすく具体的にこうすべきと書かれていますので、私が公開しているソースを訂正していきたいと考えています。←本書の44ページからのサンプルのIPv6レディのソースも作成しました。

 著書を通じ、素敵な皆様との出会いが生まれることは本当にうれしいことで、活躍されている皆様とお会いすることで私もエネルギーを分けていただけます。雑談もとても魅力的で、プログラミング関連の追求のみならず、趣味の追及も皆さんすばらしく、人間の幅を広げるのに役立てておられます。専門分野同様趣味も人間関係を広め、必ず自分にとって役に立つことにつながりますし、相手の役にも立てることが多いのです。すばらしい方々と出会える運が私にとって何よりの宝物です。

2007.5.16

フレームページへ

from 2007/1/13