(大事なことなので2度(ry時々、エンジニアとしてどういう気概で物事に取り組むのがいいのだろう、エンジニアは何を考えて目の前の問題に取り組めばいいのか、と疑問に思うことがあります。そんなわけで今投稿では、エンジニア(プログラマー)の本質を定義した「プログラマーの三大美徳」について紹介します。Wall」さんが定義したもでのです。プログラマーには、次の美徳が絶対に必要です。この美徳の一つでも欠く人は、プログラマーとなってはいけません。これらの美徳を欠いているにも関わらずプログラマーという職業に就いてしまった人は、今すぐ転職を考えましょう。それくらい重要な美徳です。1.怠慢(Laziness)2.短気(Impatience)3.傲慢(Hubris)重要な順番に上から並んでいます。3つとも世間的にはどれもいい印象に聞こえない言葉です。それぞれの美徳が重要なのか、下記URLの和訳を参考に解説していきたいと思います。http://itpro.nikkeibp.co.jp/article/Watcher/20061005/250057/?rt=nocnt1.怠慢(Laziness)全体の労力を減らすために手間を惜しまない気質。同じ質問に何度も答えなくてもいいように文書を書いたりする。よって、プログラマーの第一の美徳である。具体的なアクションとしては、自動化やDRY原則・再利用を意識してコーディングする、といった行為が該当します。ドキュメントを残して同じ質疑応答を繰り返さないよう工夫する点も挙げられます。複数人開発する上では特に上記のような人がいると助かります。全体の労力を減らすことで開発速度が上がります。2.短気(Impatience)コンピューターが怠慢な時に感じる怒り。今後起こりうる問題を想定したプログラムを書く。少なくともそうしようとする。よって、プログラマーの第二の美徳である。今後起こりうる問題を想定したプログラムとは・先回りをした仕組みを作る。・要望に柔軟に答えられる作りにする。・依存関係の小さい設計にする。と先を見据えて保守性の高いプログラムを書くことがそうと言えるでしょう。のちに機能の追加や修正を加える場合でも最小限の修正で済めばそれに越したことはないです。3.傲慢(Hubris)神罰が下るほどの過剰な自尊心。人様に対して恥ずかしくないプログラムを書き、また保守しようとする気質。よって、プログラマーの第三の美徳である。自分の書いたコードに責任を持ち、さらに保守性を上げるために努力する。保守性を上げるとは具体的には、テストを書く、意味のわかるコードを書くといったことが挙げられます。傲慢さを大事にすることで、明快で簡潔なコード、何か質問されてもすぐに答えられるようなコードになっていることが期待されます。まとめこの三大美徳には納得できる部分が多くありました。自分の周りの優秀なエンジニア達は、普段から上記のような行動を自然にやっているように思えます。美徳を意識したような行動は起こした方が結果的には自分へ大きくリターンしてくるはずです。記事の最初の方にこの美徳の一つでも欠く人は、プログラマーとなってはいけません。これらの美徳を欠いているにも関わらずプログラマーという職業に就いてしまった人は、今すぐ転職を考えましょう。これは「普段から美徳で定義されている行動をとっていない方も美徳を意識することが大事」といった程度に捉えましょう。内容に共感できるのであれば今日から行動を起こしていきましょう。行動すること大事です。自分も周辺の環境も良くなっていくはずでしょう。最後にマネーフォワードでは、プログラマーの三大美徳に共感していただける方を募集しています。ご応募お待ちしております。