プログラマーの三大美徳

こんにちは。エンジニアの廣瀬です。
業務では「MFクラウド経費」のiOSアプリの開発をしています。

マネーフォワードで最年少です。若いです。
平成4年生まれです。若いです。(大事なことなので2度(ry

時々、エンジニアとしてどういう気概で物事に取り組むのがいいのだろう、エンジニアは何を考えて目の前の問題に取り組めばいいのか、と疑問に思うことがあります。
若さゆえの悩みです。

そんなわけで今投稿では、エンジニア(プログラマー)の本質を定義した「プログラマーの三大美徳」について紹介します。
 

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

Perlの生みの親である「Larry Wall」さんが定義したもでのです。

プログラマーには、次の美徳が絶対に必要です。 
この美徳の一つでも欠く人は、プログラマーとなってはいけません。
また、これらの美徳を欠いているにも関わらずプログラマーという職業に就いてしまった人は、今すぐ転職を考えましょう。
それくらい重要な美徳です。

1.怠慢(Laziness)
2.短気(Impatience)
3.傲慢(Hubris)

重要な順番に上から並んでいます。
3つとも世間的にはどれもいい印象に聞こえない言葉です。

では、なぜそれぞれの美徳が重要なのか、下記URLの和訳を参考に解説していきたいと思います。
http://itpro.nikkeibp.co.jp/article/Watcher/20061005/250057/?rt=nocnt
 

1.怠慢(Laziness)

全体の労力を減らすために手間を惜しまない気質。
この気質の持ち主は、役立つプログラムを書いてみんなの苦労を減らしたり、
同じ質問に何度も答えなくてもいいように文書を書いたりする。
よって、プログラマーの第一の美徳である。

具体的なアクションとしては、自動化やDRY原則・再利用を意識してコーディングする、といった行為が該当します。
また、ドキュメントを残して同じ質疑応答を繰り返さないよう工夫する点も挙げられます。

複数人開発する上では特に上記のような人がいると助かります。
全体の労力を減らすことで開発速度が上がります。
 

2.短気(Impatience)

コンピューターが怠慢な時に感じる怒り。
この怒りの持ち主は、今ある問題に対応するプログラムにとどまらず、
今後起こりうる問題を想定したプログラムを書く。
少なくともそうしようとする。
よって、プログラマーの第二の美徳である。

今後起こりうる問題を想定したプログラムとは
・先回りをした仕組みを作る。
・要望に柔軟に答えられる作りにする。
・依存関係の小さい設計にする。
と先を見据えて保守性の高いプログラムを書くことがそうと言えるでしょう。

のちに機能の追加や修正を加える場合でも最小限の修正で済めばそれに越したことはないです。
 

3.傲慢(Hubris)

神罰が下るほどの過剰な自尊心。
または人様に対して恥ずかしくないプログラムを書き、
また保守しようとする気質。
よって、プログラマーの第三の美徳である。

自分の書いたコードに責任を持ち、さらに保守性を上げるために努力する。
保守性を上げるとは具体的には、テストを書く、意味のわかるコードを書くといったことが挙げられます。

傲慢さを大事にすることで、明快で簡潔なコード、何か質問されてもすぐに答えられるようなコードになっていることが期待されます。
 

まとめ

この三大美徳には納得できる部分が多くありました。

自分の周りの優秀なエンジニア達は、普段から上記のような行動を自然にやっているように思えます。
そして、美徳を意識したような行動は起こした方が結果的には自分へ大きくリターンしてくるはずです。

記事の最初の方に

この美徳の一つでも欠く人は、プログラマーとなってはいけません。
また、これらの美徳を欠いているにも関わらずプログラマーという職業に就いてしまった人は、今すぐ転職を考えましょう。

と書かれていました。

これは
「普段から美徳で定義されている行動をとっていない方も美徳を意識することが大事」
といった程度に捉えましょう。

内容に共感できるのであれば今日から行動を起こしていきましょう。
行動すること大事です。

きっと自分も周辺の環境も良くなっていくはずでしょう。
 

最後に

マネーフォワードでは、プログラマーの三大美徳に共感していただける方を募集しています。
ご応募お待ちしております。

【採用サイト】
マネーフォワード採用サイト
Wantedly | マネーフォワード

【公開カレンダー】
マネーフォワード公開カレンダー

【プロダクト一覧】
家計簿アプリ・クラウド家計簿ソフト『マネーフォワード』
家計簿アプリ・クラウド家計簿ソフト『マネーフォワード』 iPhone,iPad
家計簿アプリ・クラウド家計簿ソフト『マネーフォワード』 Android
クラウド型会計ソフト『MFクラウド会計』
クラウド型請求書管理ソフト『MFクラウド請求書』
クラウド型給与計算ソフト『MFクラウド給与』
経費精算システム『MFクラウド経費』
消込ソフト・システム『MFクラウド消込』
マイナンバー対応『MFクラウドマイナンバー』
創業支援トータルサービス『MFクラウド創業支援サービス』
お金に関する正しい知識やお得な情報を発信するウェブメディア『マネトク!』

Pocket