TechとPoemeの間

Qiita に書かないエンジニア業の話

「プログラマの三大美徳」と「HRT」を使い分ける - 「コードを憎んで人を憎まず」

TL; DR

プログラマの三大美徳」はソフトウェアに向けるものであり,人に向けるものではない.

「HRT」は人に向けるものであり,ソフトウェアに向けるものではない.

 

プログラマの三大美徳

プログラマの三大美徳というものがある.Perl を開発した Larry Wall が提唱したもので,「怠慢」「短気」「傲慢」からなる.

詳しくは上述のリンクにある各解説記事に譲るのだけど,例えば「怠慢」とは,「エンジニアとして手間を省くために最大限の努力をする気質」を指す.元の Larry Wall の記述では当たり前過ぎて省略されているのだけど,「最大限の努力」とは「仕事をしないために交渉する努力」ではなく「技術で手間を解決する努力」を指すものだと思われる (勿論,場合によっては前者が大事になるケースも有るのだけれど) .

プログラマの三大美徳は "怠慢", "短気", "傲慢" である」というワーディングは非常にキャッチーであり,それが故に誤用されることがあるのかなぁと思うのが私の問題意識である.「(プログラマ | エンジニア) は (怠慢 | 短気 | 傲慢) じゃなきゃね」と言い始めてしまい,その本質を見失ってしまうケースに遭遇したことが少なくない.ビジネスチームの依頼に対する態度に (怠慢 | 短気 | 傲慢) さを出してしまったり,,ユーザーファーストで考えなきゃいけない状況でエンジニアファーストで (怠慢 | 短気 | 傲慢) さを表に出してしまったり,という様子を目にしたことや,自分のことを振り返って思い当たる節があるのは,私だけではないと思う.

こういう道徳的な話は言葉にしてしまうと当然なことにしかならないし,「自分はそんなことない」と思ってしまいがちだけど,こういう誤解をして間違った (怠慢 | 短気 | 傲慢) をまとっているときこそ,理性を失って正しい選択を出来ない状態になっていはずだ.常日頃から「自分はプログラマの三大美徳を勘違いしていないか」を問いかけるべきだと思う.

HRT

一方で,プログラマやエンジニアが人に対して持つべきマインドセットを表すものとして有名なものに HRT がある.『Team Geek』という本で「優れたチームが優れたソフトウェアを作るのに必要な三本柱」として紹介されているもので,「謙虚 (Humility)」「尊敬 (Respect)」「信頼 (Trust)」の頭文字を取ったものである.

HRT が大切というのは自明というか当然なのだけれども,HRT は人 (チームメンバー) に対して適用するべきで,チームのソースコードに適用するべきではないことには少し気をつけるべきだとも思う.

それまで本番で大きな問題なく動いているコードだからと「尊敬」を持ってリファクタやアーキテクチャの見直しを躊躇ったり,テスティングの不十分なコードはきっと動くはずと「信頼」してデプロイした後に毎度手動で動作確認をしたり,というのは間違った HRT の使い方である.

特に,自分よりも経験のある,尊敬するエンジニアが書いたコードだからと遠慮してしまうことが,自分にはよくある.しかし,彼 / 彼女が書いたコードが必ずしも正しい解決策とは限らないわけで,変に遠慮せず自分が正しいと考えていることをしっかり (HRT を持って) 議論する姿勢が大事だと思う.

コードを憎んで人を憎まず

 こういう文脈で,前職時代に後輩に一度話したことがあるのが,「コードを憎んで人を憎まず」という言葉である.

自分がこの言葉を口にするようになったきっかけはいろいろあるのだけれど,大学時代のゼミ教官ディベート卒業論文の中間発表をするときによく口にしていた「論を憎んで人を憎まず」というモットーが自分の中でのルーツなのかなぁと思う.

特に卒業論文の中間発表では,中途半端なものやツッコミどころをたくさん抱えたものが出てきたときは,教官もゼミメンバーもバンバンと叩かなきゃいけないのだけれど,このときに人格否定になってはいけない.ゼミメンバーはお互いリスペクトを持ち,2年間のゼミ活動が最後まで円滑に進めるために必要だったのが「論を憎んで人を憎まず」の精神だったのだと思う.

この精神はアジャイルチームにも全く同じことが言えて,チームは一度コードを書くだけで終わるのではなく,プロダクトが続く限りは続くのだから,チームメンバー間の HRT を保ちつづける姿勢は非常に重要だと思う.

 

ということで,2017 年は去年よりも更に,チームが正しい場所で「プログラマの三大美徳」を発揮し,正しい場所で「HRT」を発揮できればなと思う.

Tech と Poeme の間とは

TL; DR

このブログの目的を書く.

About this blog

「TechとPoemeの間」とは,自分がエンジニアとして働く中で考えていることを書く場所として準備したはてなブログである.

なぜ新しくブログを建てるのか

これまで,高校時代は Livedoor Blog, Oricon Blog, SpoNavi Blog と渡り歩き,社会人になってからは Blogger, はてなブログ,Ameba Blog と使ってきた中で,なぜまた新しくはてなブログを建てるのか,という話になると思う.

自分が現在書いているブログは,主に趣味の野球観戦のことを書く ベイファンとITエンジニアの狭間で と,仕事の雑感や,気持ちの面での振り返りを書く むらみのもくめ がある.

Ameba blog ではない理由

特に,昨年の転職を機に,自分の勤務先企業が運営しているプロダクトを触ろうと Ameba Blog を始めた.しかし,実際に書いてみてわかったのは,Ameba Blog は気軽なエッセイを書くためのものであり,順を追って組み立てた文章を書いたりするのには向かないし,当然プログラミング言語シンタックスハイライト機能も無いので,エンジニアが仕事の話を書くにはあまり向いてないんだなぁ,ということだった.

 Qiita ではない理由

技術的な話は Qiita に書いてきたし,今後もそうするつもりなのだけれども,必ずしも Qiita が適切ではない話も多い.例えば,昨年末に書いた 3回目の転職活動で初めて転職した話 - Qiita は,転職の話であり,エンジニアのキャリアの話であるから,正直 Qiita に書くのは不適切なのかな,という気が今でもしている.それでも,自分が持っているブログやメディアで適切なものも見当たらなかったし,Qiita の Advent Calendar のエントリとして書いた記事だったので Qiita に書いた.

これからも,「こういう技術的なトライをしてみたい」とか,チームマネジメント,アジャイルチームのファシリテーションとか,エンジニアという仕事をする上での気持ちの持ち方,考え方などについて文字にする場所が欲しいと思ったのが,今回のブログを建てた一番大きな理由である.

自分が技術的に突出した存在でなくても仕事ができているのはメンタリティの部分が大きいと思っているし,チームのコミュニケーションを回したり,チームの生産性を最大化させるためにどういうトライをしているかというのをを,文章にすることで整理できたらと思っている.

ということで 

タイトルにある「Tech と Poeme の間」というのはそういうことで,技術的な知見や Tips はこれまで通り Qiita に,エモくて秩序立てていない文章は Ameba Blog に,という線引きをした上で,その間に落ちる,エンジニア業のことを書いていきたいと思う.

 とはいえ,直接的なきっかけと言えば明日アップする記事をどうしても書きたかったという他に無いので,しっかり継続できるように話題のピックアップとか,やっていきたいと思う.