理論家は「プログラミング」に関して必要な知識をすべて身につけている。彼らは4時間もかけて、世に埋もれたプログラミング言語の歴史を説明したり、あなたの書いたコードが完全に最適化されていないため実行時に3ナノ秒も無駄しているということを証明したりすることができる。しかし問題は、理論家が「ソフトウェア開発」の何をも知らないということである。理論家の書いたコードはあまりにも「エレガント」であるため、一般人にはそれを理解することができないのだ。理論家の好むテクニックは「再帰」であり、彼らはスケジュールや可読性を犠牲にして、コードの隅から隅までを最大限にチューンアップするのである。
また、理論家は本来のタスク以外のことに目を奪われがちである。彼らはタスクを与えられた場合、自らの高い基準を満たすまったく新しいシステムを作成するうえで既存ツールは力不足だと判断し、そのための新ライブラリをビルドするためのツールを作成する必要があると決めてしまう。そのため、他の人であれば1時間でできるような簡単なタスクに3カ月間もかけてしまうのだ。理論家は、プロジェクト自体の範囲内で仕事をさせ、究極のソートアルゴリズムに取り組むために時間を使わないようにさせることができれば、優秀な開発者へと変貌させることが可能である。
やっつけプログラマーは、手に負えない野生児である。彼らは大抵の場合、優れたプログラマーであり、他の誰と比べてもその2〜3倍の速さで仕事をこなすことができる。問題は、そのスピードの少なくとも半分が手抜きをすることで達成されている点にある。やっつけプログラマーは、ソースコード管理システムにコードをチェックインすることや、設定データをコード内に直接記述しないようにすること、そして他者とのコミュニケーションをとることを時間の無駄だと考えている。こう言えば、やっつけプログラマーのイメージをわかってもらえるはずだ。
やっつけプログラマーはあまりにも速くコードを記述し、必要なリファクタリングも行わないため、そのコードはスパゲッティコードと呼ばれるごちゃごちゃしたものとなる。例えば、7ページに渡って記述された中核機能が、プログラミングの教科書に載っている「べからず集」の実例のように見えるのにちゃんと動作するといったことはよくある。また、やっつけプログラマーは他人と一緒にうまく仕事を進めることができない。そして、やっつけプログラマー2人を同じプロジェクトに入れると、彼らは互いの変更をないがしろにしあい、互いに足を引っ張り合うため、そのプロジェクトは必ず失敗することになる。
やっつけプログラマーは、きちんとした仕事を行うよりも期日までに仕上げることの方が重要なプロジェクトに投入すべきであり、そうすればコードは必ず期日までに完成するはずだ。彼らは、声が大きくがさつなタイプの忍者でしかない。忍者が外科医のメスさばきのような精密さで仕事を進めるのに対して、やっつけプログラマーは雄牛のように荒々しく仕事を進め、その行く手を阻むものを蹴散らすのである。
特殊部隊の一員が敵陣の奥深くに落下傘で降下し、極秘の作戦計画を実行に移すという映画をご存知だろうか?ソフトウェア開発の現場においてこういったことを行う人材こそが落下傘兵と呼ばれるタイプである。落下傘兵は、死にかけのプロジェクトを救うために投入されるプログラマーであり、いわば最終手段であるといえる。落下傘兵は長期的な仕事に取り組む忍耐力に欠けているものの、その一番の強みは、馴染みのないソースコードを理解し、それを使って仕事をする超人的な能力にある。他のプログラマーであれば、プロジェクトで効率的に働けるようになるまでに何週間、いや何カ月間もの学習期間を要する場合でも、落下傘兵に必要なのは数時間、もしくは数日間だけだ。落下傘兵は中核のコードに触れるほどには学習できないかもしれないが、その立ち上がり時間の短さゆえに、チーム全体でかかって失敗するかもしれない場合であっても、成功をもたらすことができるはずだ。
平凡な奴が達成出来るレベルは、よくても「まあまあ」でしかない。このタイプ名に騙されてはいけない。この平凡な奴というタイプには女性も含まれているのだ。彼らは長い時間をかけた挙げ句に、チームの誰よりも出来の悪いコードを作成する。平凡な奴がかかわるプロジェクトを言葉で表せば、「ゆっくりマイペースでやっていても、まず完走できない」となるはずだ。しかし、平凡な奴はいつも、失職せずにすむぐらいの「まあまあ」の仕事を行うのだ。
このタイプの人材を面接すると、彼らは経験してきたプロジェクトについて多くを語ることができるものの、そのプロジェクトに対して自身が実際にどうかかわったのかについてはほとんど語ることができない。平凡な奴をふるい落とすのは極めて簡単である。行った仕事について実際の詳細を尋ねてみると、彼らは突然、記憶喪失になってしまうのだ。しかし、いったん彼らを雇ってしまうと、辞めさせるのに何年もかかるかもしれない。
伝道師は、どのような環境が用意されているにせよ、今あるツールや開発手法をすべて捨て去り、何か他のもので置き換えることで改善できるとしつこく主張する。実際のところ、伝道師は理論家の対極に位置している。伝道師は「ソフトウェア開発」について非常に多くのことを知っており、それを押しつけようとするが、実際の「プログラミング」はほとんどできない。
伝道師は自らのことをプロジェクトマネージャーや部門マネージャーであると内心密かに思っているものの、その域に到達するには知識や経験が不足している。そのため、伝道師が完全に管理的な役割を果たせるようになるまで、周りにいる人は皆、職場を変革しようという試みを聞かされ続けることになるのである。
勝ち残るIT活用--中堅中小企業の現場からタレントの江口ともみさんをレポーターに、
全国さまざまな業種の企業担当者に聞く!
サイバー攻撃関連ニュースのまとめ特別企画:高度化するサイバー攻撃からビジネスを守る
~対策レポートや企業の製品動向をまとめ読み~
境界防御だけでは、もはや不十分?
大切なデータベースを守る方法とは
必要以上の容量を奨められていませんか?
→電気ガスのように使えるストレージを知る
ウェブ消費行動の専門家×日本ベリサイン
ネットで消費者の信頼を得るポイントとは
陥らないためのワンポイント解説&
”実証実験から読み解くセミナー”情報
福田和代が贈るZDNetオリジナルストーリー
見逃せない3部作の第1回が無料公開!
JP1、Hadoop、QlickView "集計・分析"
データをクラウドに集約 ”蓄積・検索"
率直な読者のご意見を全て公開
クラウドに対する疑問や実際の効果に迫る
日立のサーバ戦略が描く、IT活用の今後
仮想化・クラウド対応としての製品強化
物理パッチ適用までにサーバを襲う脅威から
自動的に保護するDeep Securityエージェント
製造業者必見
オフライン環境のセキュリティ対策
最新テクノロジ満載、「百度」の講演も!
TECHNOLOGY @WORK 東京 2012レポート
株式会社フリーセル
NECラーニング株式会社
ピーエムシー・シエラ・ジャパン株式会社
ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。