掲載日時: 2007-12-11 08:00

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

いつまでも童心を忘れない同僚、ふだんは人語を解さないかに見える熟練プログラマー、仕事と趣味が渾然一体となった隣のデスクトップ…こういった一風変わったプログラマーたちへの対応を考えてみよう。

著者 : 文:Justin James 翻訳校正:吉井美有

URL : https://japan.zdnet.com/article/20362839/

 プログラマーたちは、「変わった人」というレッテルを貼られて喜んでいる。実際のところ、開発コミュニティの中にいる他のプログラマーたちが見ても変わった人だと思えるような、ある種のプログラマーたちが存在する。以下に、開発現場で出会う可能性の高いプログラマーのタイプを10種類挙げている。他のタイプを思い付く読者の方々もいるかもしれない。

#1:ガンダルフ

 このタイプのプログラマーは、『指輪物語』のガンダルフを演じる候補として真っ先に挙げられそうな風貌をしている。彼(あるいは彼女であっても!)は、顎髭をベルトの位置ほどまでの長さにまで伸ばし、ちょっと間の抜けた帽子を被っている。そして冬にはケープやマントに身を包んでいるかもしれない。チームにとって幸いなことに、この人物はまさにガンダルフのように魔法を使うことに長けている。ただしチームにとって残念なことに、雪の降りしきる中をいかに苦労してコンピュータルームにパンチカードを届けたかをガンダルフは延々と語り続けるのだ。ガンダルフ・タイプは一番の大物ではあるが、普段はそっとしておき、どうしても必要なときにだけ呼び出すようにする。

#2:殉職者

 他のどのような職業においても、殉職者というのは単に「仕事中毒」なだけである。しかし開発現場における殉職者は仕事中毒の域を超え、もはや別次元に到達している。仕事中毒であるだけならば、少なくとも帰宅してシャワーを浴び、睡眠をとる。しかし開発現場の殉職者は、空のピザボックスの散らかった席で寝ることに誇りを感じるのだ。問題は、これらの殉職者がそんなふうに働くように頼まれたわけではないという点にある。そして彼らは、「いいよ、家に帰って晩ご飯を楽しみなよ。こっちは、今から3週間かかるはずのコードを今晩中に仕上げてしまうから」といった言葉を投げかけることで他のチームメンバーを後ろめたい気持ちにさせようとするのだ。

#3:オタク

 オタクには気を付けよう。もしもオタクに追い詰められた場合には、『ドラゴンボールZ』が『新機動戦記ガンダムW』よりもどう優れているのかや、PLAYSTATION 3がなぜXbox 360よりも良いのかについて3時間にもわたって説明されることになるだろう。オタクの作業空間はポスターやアクションフィギュア、オタク心をくすぐるその他の小物など、大半が日本からの輸入品であろう物であふれている。オタクは相手にしたくない存在であるばかりか、そのオタク道を(会社の内外で)追求するためにかなりの時間を割くことも多い。何のために雇われているのかということに関して、まったく何もわかっていないのだ。

#4:ヴィンス・ニール

 この手の40代は、1984年にあったすべての悪い面を今も引きずる時代遅れの人だ。ボリュームのあるヘアスタイルを見せびらかし、破けたストーンウォッシュのジーンズを履き、どこかにバンダナをつけている。ヴィンスはオフィスに座って仕事をしている間中、ボン・ジョビやデフ・レパードの曲を鼻歌で歌っている。これは、『シュガー・オン・ミー』("Pour Some Sugar on Me")がそれほど耳にこびりつきやすくなければそんなに問題とはならないはずなのだが。

 ヴィンスは概して、一緒に働く相手としては楽しい人物であり、実際に豊富な経験を積んできている。ただ、大人にならなかっただけなのだ。とは言うものの、ヴィンスがそのヘアスタイルやハイカットシューズに似合うロックンロールなライフスタイルを送ろうとすると、厄介なことになる。毎日二日酔いで出勤してくる人と一緒に仕事をするのはかなりきついものだ。

#5:ニンジャ

 ニンジャはあなたのチームのMVP(最優秀選手)であるものの、だれもそのことを知らない。ニンジャがオフィスにいるのか、あるいは何か作業をしているのかということすらわかっていないのに、朝になるとその存在を確認できる証拠が見つかるという点で、ニンジャは伝説の暗殺者のようだ。例えば、ソースコード管理システムを起動してみると、まるまる1週間かけてあなたが取り組もうと思っていた問題を解決するコードが、ニンジャの手によって朝の4時にチェックインされていたという事実を知ることになる。しかしあなたは、ニンジャがそのプロジェクトのことを気にかけていたということすら知らなかったのだ!そう、あなたが会議続きで身動きがとれない間に、ニンジャは作業を進めていたのだ。

 ニンジャは隠密行動を旨とするため、その名前すら明らかにならないかもしれないが、ニンジャの参加しているプロジェクトはすべて、はるかに円滑に進んでいるようだということはわかるはずだ。ただし、慎重に事を運ぶ必要がある。ニンジャは一匹狼なので、他者と協力して仕事をさせようとしてはならないのだ。

#6:理論家

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

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

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

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

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

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

#8:落下傘兵

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

#9:平凡な奴

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

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

#10:伝道師

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

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

ZDNET Japanは、Ziff Davisからのライセンスに基づき株式会社4Xが運営しています。
ZDNET Japan is operated by 4X Corp under license from Ziff Davis.

Copyright © 2026 4X Corp, Inc. All rights reserved. No reproduction or republication without written permission.