プログラマとそれ以外の人って世界の捉え方からして違いすぎて、そのギャップが毎日嫌になる。プログラマってパソコンが存在しなくてもプログラマなんやなって毎日思う。以下、嫌な点の列挙
・プールプルーフの考え方がない。あらゆる分野のエンジニアは、「人は基本的にヒューマンエラーを起こす無能」という前提で環境を作るが、そうでない人は、啓蒙したり、ミスを叱って気を引き締めさせることで解決する。(特に私はヒューマンエラー多めの人間なのでつらい)
・カプセル化や疎結合を意識していない。部署ごとの役割の境目が曖昧なので、たしかに「他部署のミスを発見できる」とか「例外的なことが起こった時に融通が利く」のようなメリットはあるが、他部署の都合も把握していないといけないと、意識すべきことが膨大になる。
・水平思考ができない。自分の主観はいつだって正しくて、押し付けて良いと思っている。プログラマは常に「自分は間違ったことや、ソースがないことを喋っているかもしれない」と気をつけて喋っているというのに! 主観と主観がぶつかったときは常に、地位が高い方の主観が正しい。
・業務の持続可能性をついて考えていない。業務の全容は人の脳内にあり属人的で、業務内容を次世代へ引き継ぐときもフローチャートや手順書に起こしたりしない。OJTでは、知識が必要になったり、例外的な事が起こったら、場当たり的に知識を教える。知識を断片的に、枝葉から順番に覚えることになる。(なんなら、そうやって業務内容を容易に理解させない事で、属人的な業務をこなしている上司の威厳や上下関係を担保しているのではと疑いたくなる)
・弊社ではようやく「手順書を書こう」というムーブメントが起こり始めているのだけど、みんな(プログラマと比べて)命令を厳密に記述するのがド下手。「ここまで書けばわかるでしょ」という、複数の解釈ができてしまう記述や、前提知識を多分に要する記述が多い。というか手順書に限らず普段のOJTでもそう。
・エンジニアの「チョットワカル」の精神がない。なんでもいいので学問を1つ本気で学んだことがある人はみんな「自分は途方もないくらい無学だ」ということをわかっていて謙虚なのだが、そうでない人は傲慢で、「新人の方が自分より業務内容に詳しい」という状態が許せない。
・新人が、プログラミングであらゆる既存のルーチンワークを解決できることが実証されると、(そのルーチンワークをしている自分の尊厳が失われるためか)集団で無視する。