あなたのそばにもいるかもしれない10人の困ったプログラマーたち

文:Justin James 翻訳校正:吉井美有
2007-12-11 08:00:00
  • このエントリーをはてなブックマークに追加

#6:理論家

 理論家は「プログラミング」に関して必要な知識をすべて身につけている。彼らは4時間もかけて、世に埋もれたプログラミング言語の歴史を説明したり、あなたの書いたコードが完全に最適化されていないため実行時に3ナノ秒も無駄しているということを証明したりすることができる。しかし問題は、理論家が「ソフトウェア開発」の何をも知らないということである。理論家の書いたコードはあまりにも「エレガント」であるため、一般人にはそれを理解することができないのだ。理論家の好むテクニックは「再帰」であり、彼らはスケジュールや可読性を犠牲にして、コードの隅から隅までを最大限にチューンアップするのである。

 また、理論家は本来のタスク以外のことに目を奪われがちである。彼らはタスクを与えられた場合、自らの高い基準を満たすまったく新しいシステムを作成するうえで既存ツールは力不足だと判断し、そのための新ライブラリをビルドするためのツールを作成する必要があると決めてしまう。そのため、他の人であれば1時間でできるような簡単なタスクに3カ月間もかけてしまうのだ。理論家は、プロジェクト自体の範囲内で仕事をさせ、究極のソートアルゴリズムに取り組むために時間を使わないようにさせることができれば、優秀な開発者へと変貌させることが可能である。

#7:やっつけプログラマー

 やっつけプログラマーは、手に負えない野生児である。彼らは大抵の場合、優れたプログラマーであり、他の誰と比べてもその2〜3倍の速さで仕事をこなすことができる。問題は、そのスピードの少なくとも半分が手抜きをすることで達成されている点にある。やっつけプログラマーは、ソースコード管理システムにコードをチェックインすることや、設定データをコード内に直接記述しないようにすること、そして他者とのコミュニケーションをとることを時間の無駄だと考えている。こう言えば、やっつけプログラマーのイメージをわかってもらえるはずだ。

 やっつけプログラマーはあまりにも速くコードを記述し、必要なリファクタリングも行わないため、そのコードはスパゲッティコードと呼ばれるごちゃごちゃしたものとなる。例えば、7ページに渡って記述された中核機能が、プログラミングの教科書に載っている「べからず集」の実例のように見えるのにちゃんと動作するといったことはよくある。また、やっつけプログラマーは他人と一緒にうまく仕事を進めることができない。そして、やっつけプログラマー2人を同じプロジェクトに入れると、彼らは互いの変更をないがしろにしあい、互いに足を引っ張り合うため、そのプロジェクトは必ず失敗することになる。

 やっつけプログラマーは、きちんとした仕事を行うよりも期日までに仕上げることの方が重要なプロジェクトに投入すべきであり、そうすればコードは必ず期日までに完成するはずだ。彼らは、声が大きくがさつなタイプの忍者でしかない。忍者が外科医のメスさばきのような精密さで仕事を進めるのに対して、やっつけプログラマーは雄牛のように荒々しく仕事を進め、その行く手を阻むものを蹴散らすのである。

#8:落下傘兵

 特殊部隊の一員が敵陣の奥深くに落下傘で降下し、極秘の作戦計画を実行に移すという映画をご存知だろうか?ソフトウェア開発の現場においてこういったことを行う人材こそが落下傘兵と呼ばれるタイプである。落下傘兵は、死にかけのプロジェクトを救うために投入されるプログラマーであり、いわば最終手段であるといえる。落下傘兵は長期的な仕事に取り組む忍耐力に欠けているものの、その一番の強みは、馴染みのないソースコードを理解し、それを使って仕事をする超人的な能力にある。他のプログラマーであれば、プロジェクトで効率的に働けるようになるまでに何週間、いや何カ月間もの学習期間を要する場合でも、落下傘兵に必要なのは数時間、もしくは数日間だけだ。落下傘兵は中核のコードに触れるほどには学習できないかもしれないが、その立ち上がり時間の短さゆえに、チーム全体でかかって失敗するかもしれない場合であっても、成功をもたらすことができるはずだ。

#9:平凡な奴

 平凡な奴が達成出来るレベルは、よくても「まあまあ」でしかない。このタイプ名に騙されてはいけない。この平凡な奴というタイプには女性も含まれているのだ。彼らは長い時間をかけた挙げ句に、チームの誰よりも出来の悪いコードを作成する。平凡な奴がかかわるプロジェクトを言葉で表せば、「ゆっくりマイペースでやっていても、まず完走できない」となるはずだ。しかし、平凡な奴はいつも、失職せずにすむぐらいの「まあまあ」の仕事を行うのだ。

 このタイプの人材を面接すると、彼らは経験してきたプロジェクトについて多くを語ることができるものの、そのプロジェクトに対して自身が実際にどうかかわったのかについてはほとんど語ることができない。平凡な奴をふるい落とすのは極めて簡単である。行った仕事について実際の詳細を尋ねてみると、彼らは突然、記憶喪失になってしまうのだ。しかし、いったん彼らを雇ってしまうと、辞めさせるのに何年もかかるかもしれない。

#10:伝道師

 伝道師は、どのような環境が用意されているにせよ、今あるツールや開発手法をすべて捨て去り、何か他のもので置き換えることで改善できるとしつこく主張する。実際のところ、伝道師は理論家の対極に位置している。伝道師は「ソフトウェア開発」について非常に多くのことを知っており、それを押しつけようとするが、実際の「プログラミング」はほとんどできない。

 伝道師は自らのことをプロジェクトマネージャーや部門マネージャーであると内心密かに思っているものの、その域に到達するには知識や経験が不足している。そのため、伝道師が完全に管理的な役割を果たせるようになるまで、周りにいる人は皆、職場を変革しようという試みを聞かされ続けることになるのである。

  • コメント(3件)
#1 いが   2007-12-14 01:26:16
#11: 食い散らかし

 食い散らかしは思いつきやアイディアは一流のプログラマーである。しかし、彼らは興味あるところだけを作成し、あとの細かいバグチェックや製品リリースのための作業は興味がない。そして彼らが通った後には、スパゲッティコードをもとに製品化作業を担当する無数のプログラマのうめき声が響き渡る。

 ……って、わたし?
#2 大野晋一   2007-12-14 16:50:12
カナヅチ カナヅチはプロジェクトが始まった当初ばたばたとしているが、やがて、おぼれて沈んでいく人のように姿が見えなくなり、ほかのひとも彼がいたことさえ忘れてしまう…… なんてね
#3 サクヤス   2007-12-27 02:15:04
テラ丼:
とにかく仕事を請け続け、知らないうちにキャパオーバーになり、周りからの信用を無くす。。
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]