プログラマーの「三大美徳」という言葉を耳にしたことはありませんか?
三大美徳とは「怠慢」「短気」「傲慢」を指し、プログラマーが効率的に業務を遂行するための心構えというべきものです。
「プログラマーになったものの、方向性に悩んでいる」という人は、自らの中にある三大美徳を見つめ直してみましょう。
この記事では、一流エンジニアを目指すなら知っておきたいプログラマーの三大美徳について解説します。
三大美徳と同様に有名な「HRT」についても触れていますので、参考にしてください。
■□■□プログラマーなどITエンジニアを目指しているならIT業界専門転職サイト「Javaキャリ」が最適!完全無料の会員登録はこちらから■□■□
Contents
プログラマーは何を目指すべきなのか?
プログラマーを目指している人
これからプログラーを目指す人にとっては、どのようなプログラマーになるべきかをわからずにプログラミングの勉強を進めている人も多いのではないでしょうか。
プログラミング言語を使いこなせているのかどうかも、どのように判断していいのか迷ってしまいますよね。
そんな時は、これから紹介するプログラマーの三大美徳を理解しておくことで、どのようなプログラマーになるべきかが見つかるかもしれません。
明確にプログラマー像がイメージできていない方は参考になると思います。
プログラマーとして働いている人
プログラマーとしてすでに働いていると、プログラマーはどうあるべきなのかを悩む人も多いと思います。
プログラミングはできるようになったら、より良いコーディングとはなんなのか、一流のプログラマーとはどんな人のことを言うのか、プログラマーになった後にも考えてしまいますよね。
どのようなプログラマーを目指すべきか、プログラマーに必要な考え方とはなんなのかをこの記事でご紹介します。
プログラマーの三大美徳とは?
プログラマーの三大美徳とは、プログラマーが持つべき「怠慢」「短気」「傲慢」という3つのマインドセットです。プログラミング言語Perlの開発者であるラリー・ウォールが提唱しました。
一見ネガティブにも見えるこれらの3要素は、一流エンジニアになるために重要な考え方を端的に表した言葉と言えます。
三大美徳を詳しく解説
プログラマーの三大美徳「怠慢」「短気」「傲慢」には、どのような意図が含まれているのでしょうか。1つずつ見ていきます。
怠慢(Laziness)
怠慢を言い換えれば「ラクをする」ということ。三大美徳「怠慢」とはすなわち、「ラクをするために努力を惜しまない」という意味です。「労力を削減する」と置き換えてもいいかもしれません。
プログラマーの作業は緻密で繊細なものですが、すべてをいちいち手作業で行っていたのでは、業務時間内に作業が完了しません。作業をいかに効率化して「ラクをする」かどうかがカギになります。
作業をラクするためには、さまざまなことを考え、手を動かさなければなりません。
- 現状の作業で、どこに手間がかかっているかを分析する
- 分析をもとに、効率化するための手段を考える
- 実際に効率化の手段を導入する
ラクをするためなら、たとえ大変でも実現するための努力を惜しまない。それこそが、プログラマーに求められる資質なのです。
短気(Impatience)
三大美徳「短気」とは、「やるべき作業を極力短くする」ことを意味します。
プログラミング現場は、ローンチまでの時間との勝負です。作業は極力無駄をなくして短期間で終わらせる必要があります。一方で、ただ単に作業時間を短くしただけでは、不具合やエラーによって手戻りが発生してしまい、かえって拘束時間が増えてしまいます。
短気なプログラマーは、エラーや仕様変更で時間を取られるのが大嫌い。だから手戻りが発生しないよう品質を維持しつつ、作業を効率的に進めていきます。
短気だからこそ、いかに不具合を出さず効率的に作業を進められるかを熟考し、あるいは急な仕様変更に手間取らないようあらかじめ対策しておけるのです。
傲慢(Hubris)
三大美徳「傲慢」とはすなわち、「文句のつけようのない高品質のプログラムが書ける」ことです。
謙虚な心を持ったプログラマーであれば、プログラミングに対して他者から何らかの指摘を受けた場合、自分の意見を翻して簡単に書き換えてしまうでしょう。しかし、それはいいことでしょうか。プログラマー、エンジニアはIT技術のプロフェッショナルであり、自らが生み出したプログラムの品質にはプライドを持つべきです。
他人に意見されても自らのポリシーを貫き、正しさを主張できる傲慢さこそが、一流プログラマーの持つ資質なのです。
この傲慢に関しては、心がけると同時に注意が必要なことも忘れてはなりません。あまりに傲慢すぎる思いや態度は、時として人間関係に亀裂を生じさせることがあるからです。
他人に耳を傾けるべきところは傾け、芯を貫くべきところは貫く。プログラマーには、このバランスとメリハリを持つことが求められています。
提唱者のラリー・ウォールとは
プログラマーの三大美徳を提唱したのは、プログラミング言語Perlを開発したラリー・ウォールです。
サーバ上でテキスト処理を効率的に行うため1987年にリリースされたPerlは、C言語やシェルスクリプトなど他言語の優れた機能を取り入れ、インターネット技術の発展に大きく寄与しました。
プログラマーの三大美徳「怠惰」「短気」「傲慢」は、ラリーが執筆に参加したPerlの解説書「プログラミングPerl」の中で触れられている考え方です。
Perlを一躍有名にしたこの本は、表紙にラクダの絵が描かれていることから、通称「ラクダ本」とも言われています。
なお、日本初のプログラミング言語Rubyは、Perlに大きな影響を受けて開発されています。そのため開発者のまつもとゆきひろ氏は、尊敬する人としてラリー・ウォールを挙げています。
三大美徳に反しているプログラマーとは
「怠慢」「短気」「傲慢」の三大美徳に反しているプログラマーは、一流エンジニアとなる資質に欠けた人物と言えます。
実際の開発現場において、三大美徳に反したプログラマーとは具体的にどんな性質かを見ていきましょう。
スキルが不足している
エンジニアやプログラマーとして必要なスキルが不足している人は、三大美徳に反していると言えます。
エンジニアやプログラマーに必要なスキルには、プログラミングなどの技術スキルはもちろん、プロジェクトチームを円滑に進めるためのコミュニケーション能力、与えられたタスクを計画的に実行できるタスク管理能力、さらに心身ともに健康な状態を保つセルフマネジメント能力などがあります。
仕事が雑で完成度も低い
与えられた業務を雑にしかこなせない、あるいは高い品質を提供できない人は、プログラマーの三大美徳に反していると言わざるを得ません。
三大美徳の実践には、ミスなく業務を遂行しようとする努力、そして高い品質を提供できるセンスが求められます。
スケジュール管理ができない
スケジュール管理が苦手で予定より遅れがちな人、報告もなく納期を遅らせてしまう人は、三大美徳に反しているプログラマーです。
約束を当たり前に守れるからこそ、信頼できる人物と評価されるもの。一流エンジニアを目指すなら、スケジュール管理スキルを日常的に磨きましょう。
他にもある有名なHRTとは
三大美徳と同様に有名なマインドセットとして、HRTという考え方もあります。
「Humility(謙虚)」「Respect(尊敬)」「Trust(信頼)」の頭文字を取った造語であり、「Team Geek」という書籍の中で「優れたチームが優れたソフトウェアを作るのに必要な三本柱」として紹介されています。
謙虚
謙虚は、プログラマーの三大美徳「傲慢」の反対語に当たります。
人間は必ずミスを犯すものであり、他者の考えを謙虚に受け止めることで改善ポイントが見えてくるものだということを、謙虚というフレーズで表現しているのです。
尊敬
尊敬とは、働く相手を一人ひとり認識し、評価し、思いやる心構えのことです。
互いの能力や功績を認め合い、尊重し合うことで、チームマネジメントが円滑に進められることを示しています。
信頼
信頼とは、仕事を一人で抱え込まず、自分以外のチームメンバーを信じて任せようという考え方です。
プログラマーやエンジニアの仕事はチームプレイであり、互いに信頼し合うことで業務が円滑に進められることを示しています。
プログラマーの三大美徳やHRTを意識して仕事をしよう
三大美徳が「対自分」に対する心構えだとするなら、HRTは「対チームメンバー」に対する心構えと言えます。それゆえ三大美徳とHRTはやや性質が異なる点に注意が必要です。
プログラミングなど個人で作業を行う場合には、三大美徳を実践することによって、スピーディで効率的に高品質のプログラミングが可能になります。
一方、ミーティングなどチームメンバーで行う作業では、HRTを意識することによって、コミュニケーションを円滑に進められるようになります。
三大美徳やHRTにはそれぞれに適したシーンがあるので、適宜使い分けることが大切です。
また、プログラマーに向いている人の特徴について、更に詳しく知りたい場合は「プログラマーに向いている人の特徴とは?向いていない人は諦めるべきなのか?」をご覧ください。
まとめ
プログラマーの三大美徳「怠惰」「短気」「傲慢」は、プログラマーの本質を捉えた考え方であり、共感できる点も多いのではないでしょうか。
三大美徳やHRTを意識することによって、効率的で品質の高いコーディングができるようになるだけでなく、プログラマーとしての評価が高まり、一流エンジニアへ成長する近道になります。
これからプログラマーを目指している人も同様に、三大美徳を意識することで、実務に役立つ知識や経験を能動的に得られるようになります。
プログラマーの三大美徳を体系的に理解して実践し、一流エンジニアを目指しましょう。