コードの道で、私はこれまでに多くの奇妙な敵と、奇妙な味方に出会ってきた。私は少なくとも五種類の異なる「コード戦士」と接してきた。そのうちの有能な仲間たちは開発の進行に役立ったが、他の者たちは私の計画のすべてを妨げているように見えた。

しかし、彼ら全員がソフトウェア開発の「神殿」に居場所を持っている。これらの異なるスタイルのプログラマーをうまく調整できないなら、プロジェクトが多くの時間を費やしたり、不安定になったり、コードが読みにくくなったりする問題に気づくだろう。

补漏灵型

くそっ、コードは完璧じゃなくても、動けばいいんだ!

そういう人こそ、あなたの会社の基盤です。どこかで問題が発生したとき、彼は迅速に修正し、ある程度再発しないようにします。もちろん、それがどう機能するかとか、使いやすさなどといった瑣末な問題には関心を持ちません。しかし、彼は問題を修正するのであって、大量の無駄話をして時間を無駄にするようなことはしません。こうした社員を最も有効に活用する方法は、彼らに問題を一つとえて解決させ、あとは干渉しないことです。b110

補完しました!

完璧主義・強迫性障害型

私のコードに何をしようというんだ!

この種のプログラマーは、君のデッドラインや予算など気にしない。それらはコードの優雅さに比べれば取るに足らないものだ。最終的に完成した結果を受け取るとき、君は栄光の輝きを放つ完璧なコードを提出する以外に何もする必要がない。これは非常に効率的だ。なぜなら、君が行うすべてのことは、そのコードの完璧さを損なうだけだからだ。彼らはコードを修正する資格を持つ唯一の存在なのだ。

b23

我不值得

反编程型

私はプログラマーだが、コードなんて書かない!

彼らの世界にはただ一つの真理しかない。コードを書くことは悪である、と。もしどうしても書かなければならないなら、君はすでに間違った道に足を踏み入れている。他の誰かがすでにその作業を行っているのだから、彼らのコードを使えばいい。彼は、この開発が実際にはどれほど速く進むかを教えてくれるだろう。たとえ彼が他のプログラマーと同じかそれ以上の時間を費やしたとしても、最終的に結果を受け取るとき、君はわずか20行の簡潔で読みやすいコードを目にすることになる。それは十分に速くないかもしれないし、効率的でもないかもしれないし、前方互換性もないかもしれない。しかし、それは最小限の作業なのだ。

b31

いったい何をやっているんだ!

半吊子型

まだ何を望むんだ?もう動いているじゃないか?

この種の人間はコードの品質など気にしない。それは他人の仕事だと思っている。彼は要求されたタスクを素早く完了する。あなたは彼の働き方を好まないかもしれないし、他のプログラマーもこの種の人間を憎んでいる。しかし、上司と顧客は彼を気に入る。彼はあなたの将来の仕事に大きな苦痛をもたらすだろう。それでも彼はいつも期限内に仕事を終えるので、(どんなに望んでも)彼を叱ることはできない。

b41

こっちはもう完成したよ!

理论型

まあ、これで成立はするが、実のところもっと良い選択肢がある。

何をすべきかということよりも、この手の男は選択肢の方に興味がある。彼は80%の時間を、タスクを実装する方法を考えながらパソコンを凝視して過ごし、15%の時間は理不尽な締め切りへの不平不満に費やされ、4%の時間はさまざまな選択肢の間で選ぶことに使われる。コードを書くのはわずか1%の時間だけだ。最終結果を受け取るとき、君はたいていこんな不満も受け取ることになる——「時間があれば、もっといいものができたのに。」

b51

これが0と1の違いってわけだ!

あなたはどのタイプ?

個人的には、自分は完璧主義タイプだと思っている。さて、君はどのタイプだろうか? それとも、この記事で触れられていない別のタイプのプログラマーがいると思う? ぜひ下にコメントを残してほしい。記事に反映させるから。

本文由赖信涛翻译自Steven Benner's Blog