見出し画像

プログラマー(を含む社会人)の三大美徳

こんにちは、株式会社ナンバーナインでエンジニアをしている糟谷です。

前回の記事では、ナンバーナインでのエンジニアの仕事について紹介しました。
今回は、一緒に仕事をするメンバーに持っていて欲しい気質の話です。

エンジニア(プログラマー)の気質の話といえば有名なのは「プログラマーの三大美徳」ですが、僕はこの美徳がエンジニアに限らず重要な気質であると考えています。
プログラマー的な解釈は他に沢山の記事があるのでそちらに任せるとして、その美徳を僕がどう解釈しているのか、エンジニアに限らないとはどういうことなのかをお話し出来ればと思います。

プログラマーの三大美徳とは

「プログラマーの三大美徳」は、プログラミング言語 Perl の生みの親である Larry Wall が定義した、プログラマーが持っているべき 3 つの気質です。

  1. 怠惰(Laziness)

  2. 短気(Impatience)

  3. 傲慢(Hubris)

これらは重要な順に上から並んでいます。
これらは一見悪いことに見えますが、何故美徳なのか、こちらの和訳をベースに見ていきます。

鋼の錬金術師が好きなので、怠惰・憤怒・傲慢と言いたくなりますが、微妙に意味が変わってしまうのでやめておきます。

怠惰(Laziness)

トータルで見たエネルギーの支出を減らすために、多大な努力をするようにあなたを駆り立てる性質。
こうして労力を省くために書いたプログラムは他人も使うようになり、
そのプログラムに関する質問にいちいち答えずにすますためにドキュメントを書くようになる。
そのために、プログラマーにとって最も重要な素質である。
またそれゆえ、この本が存在するのである。

僕はこれを「楽をするための努力を惜しまないこと」と理解しています。
毎日 5 分同じことをするくらいなら、丸 1 日かけてその作業自体をなくすような姿勢です。

例えば、(大抵の)プログラマーは自分が作ったプログラムのテストをしています。
1 項目やるだけなら 3 分で終わるような作業ですが、これを 30 分かけて自動化したりしています。(多少単純化してますが、大体あってます。)
今だけ見ると 10 倍の労力がかかっていますが、次回からは 0 分で終わるため、10 回同じ作業をすれば元がとれます。
目の前の仕事をもっと簡単に終わらせる方法があるのを知りながら 10 倍の労力をかけるのは心が折れそうになりますが、プログラムを修正するたび、同じことを何十回も手作業でするのに比べたら圧倒的に楽です。

また「トータルで見たエネルギーの支出を減らすために」とあるように、楽をする対象が自分である必要はありません
自分が勤勉に怠惰なプログラムを書くことで、会社/チーム/同僚などがトータルで楽になっていればいいのです。
というか、大抵のエンジニアはそのために居て、それが仕事です

目の前だけでなく全体を見渡した時に一番楽になるよう、今努力を惜しまないことがプログラマーの重要な気質なのです。
ただ、怠惰でありたいと思っていても、正しく怠惰であることはとても面倒くさいです。
面倒だなと思った時には次の美徳が役に立ちます。

短気(Impatience)

コンピュータがサボっているときに感じる怒り。
あなたの指令に反応するだけでなく、
実際に指令を予測する──あるいは、少なくともそのようなふりをする──プログラムを書く原動力になる。
それゆえに、プログラマーにとって2番目に重要な素質である。

これは「怠惰でない仕事に対する怒り」と解釈しています。
目の前の仕事が終わればいいからといって怠惰であることを諦めた仕事に対する怒りです。

先のテストの話で言えば、最初に手作業でテストをしていた場合、自動化されていないことに対して怒る事ができれば、次には手作業でテストを行わなくても済むよう、怠惰なプログラムに書き換えることができます。
自分の仕事であれ、他人の仕事であれ、怠惰でないことに怒り、怠惰に変えてしまおうと思える気質は、常に怠惰であり続けるためにとても重要なものです。
怠惰でない仕組みなんてあって良いわけがないという怒りが面倒臭さを乗り越える原動力になります。

余談ですが、これらの美徳は仕事(プログラム)に対して持つべき姿勢であり、人に短気になるのは慎重になる必要があります。
慎重になりさえすれば手段としてはアリだと思ってますが、気分ではなく意志を持って扱うように気をつけましょう。ちなみに僕は苦手です。
人やチームに対する姿勢としては HRT(謙虚・尊敬・信頼) が有名で、こちらは三大美徳と矛盾する所もあり面白いのですが、今回は割愛します。

しかし、どんなに怠惰で短気でも目の前の仕事を早く終わらせてしまいたいという誘惑に勝てない時があります。
その時には第三の美徳が必要になります。

傲慢(Hubris)

ゼウスの怒りに触れるほど、プライドが高いこと。
また、他人にケチをつけられないようなプログラムを書く(そして維持する)ための原動力になるもの。
それゆえ、プログラマーにとって3番目に重要な素質である。

最後は「より良い仕事が出来るはずだ」という自負です。
この俺がこんなつまらなくてダサい物を世に出していいわけがない、もっと楽しくてクールな物が作れるはずだという自尊心です。

とりあえず必要な動作だけするプログラム、深く考えずにやっつけ仕事をすれば、この忙しさから解放されるのだという誘惑は常にあります。
しかし、そんな物を世に出してはいけないという自尊心がそんなサボりたい気持ちから守ってくれるはずです。
やっつけるためにサボるのではなく正しくサボるためには、正しくあらねばならない、いい物を作らなければならないという意志が必要なのです。
そして、その意志をもってさえいれば成長することができます。

面倒な作業をしている時にはいつも、宮崎駿監督が『プロフェッショナル 仕事の流儀』で言っていた「世の中の大事なことってたいがい面倒くさいんだよ」というセリフを思い出します。
世界的な監督ですら面倒な作業の上に良い仕事をしているのに、お前ごときが何を楽しようとしているんだ?
まぁ、そうは言っても誘惑に負けることもあります。

社会人の美徳

これらの美徳はプログラマーだけではなく、他のどんな仕事でも重要な気質だと思っています。
三大とは言えないかもしれませんが、どんな仕事であれ、目の前の仕事を終わらせるだけでなくより良い仕事をしようという姿勢に繋がる気質だからです。
つまらない仕事に怠惰で、ダサい仕事に短気で、自分の仕事は最高に楽しくてクールだという傲慢さを持っていれば、
仕事をなくす努力が出来て、イケてる仕事になるよう工夫が出来て、より良い仕事をしようと高みを目指すことが出来ます。

そして、株式会社ナンバーナインでは三大美徳(と HRT)を持ち、一緒に成長出来る仲間を募集中です。
エンジニア以外の職種もあるので、とりあえず話を聞くだけでもお気軽にどうぞ。


ナンバーナインで一緒に働くメンバー大募集!

ナンバーナインでは、現在中途採用強化中です。少しでも興味をお持ちいただけたなら、ぜひ以下URLを覗いてみてください。

WEBTOON編集者〜日本で熱いWEBTOONの現場を体験しませんか?

広告漫画ディレクター〜新規立ち上げのチームでゼロイチに挑戦しませんか?

宮崎ひなたオフィス立ち上げメンバー追加募集開始!

その他多数のポジションで募集しています

【INCLUSIVEでも採用強化中】


この記事が気に入ったらサポートをしてみませんか?