恐るべき格差世界2。
投稿者: chimryuuban 投稿日時: 2008/05/16 16:17 投稿番号: [163247 / 196466]
ところが、プログラマの世界では、この原則が通用しません。
誰にでも出来るつまらない仕事を有能なプログラマにやらせると、数十倍の生産性をたたき出すことが、少しも希ではないからです。
まったく珍しいことではないのです。
これは、非常に退屈なサーバやネットワークの保守運用や、デバッグや、テスト作業や、大きなプロジェクトのヒエラルキーの最底辺にいるプログラマですら、そうなのです。
大きなプロジェクトのピラミッドの最底辺にいる新人プログラマには、「誰にでも出来るプログラム」のコーディングを任せられます。
しかし、この、「誰にでも出来るプログラミング」において、有能な新人プログラマと無能な新人プログラマでは、文字通り桁違いの生産性の違いが出ることがよくあります。
有能な新人プログラマは、最も適切なライブラリやAPIを鋭く見抜き、もっともパフォーマンスと安全性と保守性のバランスのとれたシンプルで美しいプログラミングをします。
そして、それは、凡庸なプログラマが、甘い判断でライブラリやAPIを使い、スケーラビリティーのないコーディングをした場合に比べて、ずっとシンプルで巧みなコーディングで、ソースコードは短い。そのため、バグが入りにくく、テスト仕様書も少なく、テスト工数も少なく、トラブルを引き起こすリスクも少なく、引き継ぎも容易で、後から改変するときのコストも少なく、しかも、別のプロジェクトですら、そのルーチンは使い回しが効くのです。
そして、有能なプログラマは、それをすばらしいスピードで行うのす。
さらに、有能なプログラマは、正規表現をバリバリ使って、能率良くプログラムを編集していく。
プログラム開発環境にマクロをどんどん仕込んでいく。
そうして、頻度の高い繰り返し作業は、片端から自動化していく。
そもそも、プログラム自体を編集するスクリプトプログラムをよく書く。
仕様のエッセンスをコンパクトに記述した簡単な定義ファイルからプログラムを生成するジェネレータを即席で作る。
もしくは、仕様のエッセンスを簡単な即席自作言語で記述したテキストファイルを実行時にパースし実行するようなメタレベルプログラミングをする。
要するに、人間が直接プログラムを書くのではなく、「プログラムを書くプログラム」を書くことで、プログラムにプログラムを書かせるのです。すなわち、自分で作業をするのではなく、自動作業ロボットを作ってそのロボットに作業をやらせるのです。プログラマの世界とは、ロボットの開発・製造・運用コストが桁違いに安い世界であるため、通常の物理法則に規定された世の中の常識を超越してしまうのです。
このため、有能なプログラマが「誰にでも出来るつまらないプログラム」を書くときの生産性が、無能なプログラマにくらべ、桁違いに高くなってしまうのです。
誰にでも出来るつまらない仕事を有能なプログラマにやらせると、数十倍の生産性をたたき出すことが、少しも希ではないからです。
まったく珍しいことではないのです。
これは、非常に退屈なサーバやネットワークの保守運用や、デバッグや、テスト作業や、大きなプロジェクトのヒエラルキーの最底辺にいるプログラマですら、そうなのです。
大きなプロジェクトのピラミッドの最底辺にいる新人プログラマには、「誰にでも出来るプログラム」のコーディングを任せられます。
しかし、この、「誰にでも出来るプログラミング」において、有能な新人プログラマと無能な新人プログラマでは、文字通り桁違いの生産性の違いが出ることがよくあります。
有能な新人プログラマは、最も適切なライブラリやAPIを鋭く見抜き、もっともパフォーマンスと安全性と保守性のバランスのとれたシンプルで美しいプログラミングをします。
そして、それは、凡庸なプログラマが、甘い判断でライブラリやAPIを使い、スケーラビリティーのないコーディングをした場合に比べて、ずっとシンプルで巧みなコーディングで、ソースコードは短い。そのため、バグが入りにくく、テスト仕様書も少なく、テスト工数も少なく、トラブルを引き起こすリスクも少なく、引き継ぎも容易で、後から改変するときのコストも少なく、しかも、別のプロジェクトですら、そのルーチンは使い回しが効くのです。
そして、有能なプログラマは、それをすばらしいスピードで行うのす。
さらに、有能なプログラマは、正規表現をバリバリ使って、能率良くプログラムを編集していく。
プログラム開発環境にマクロをどんどん仕込んでいく。
そうして、頻度の高い繰り返し作業は、片端から自動化していく。
そもそも、プログラム自体を編集するスクリプトプログラムをよく書く。
仕様のエッセンスをコンパクトに記述した簡単な定義ファイルからプログラムを生成するジェネレータを即席で作る。
もしくは、仕様のエッセンスを簡単な即席自作言語で記述したテキストファイルを実行時にパースし実行するようなメタレベルプログラミングをする。
要するに、人間が直接プログラムを書くのではなく、「プログラムを書くプログラム」を書くことで、プログラムにプログラムを書かせるのです。すなわち、自分で作業をするのではなく、自動作業ロボットを作ってそのロボットに作業をやらせるのです。プログラマの世界とは、ロボットの開発・製造・運用コストが桁違いに安い世界であるため、通常の物理法則に規定された世の中の常識を超越してしまうのです。
このため、有能なプログラマが「誰にでも出来るつまらないプログラム」を書くときの生産性が、無能なプログラマにくらべ、桁違いに高くなってしまうのです。
固定リンク:https://yarchive.emmanuelc.dix.asia/1143582/ffccf4x78_1/163247.html