プログラマはコミュ障じゃないよ

時にコミュ障とプログラマがセットで語られることがあるのだが、そもそもプログラマに占めるコミュ障の割合は他の職業と比較して有意に大きいのだろうか、という疑問がある。

世間一般でいう「コミュニケーション能力」が具体的にどのような内容であるのか、寡聞にして知らないのだが、職業プログラマにとって効率的なコミュニケーションとは次のようなものだ。

  1. 正確な情報を、
  2. 包み隠さず全て、
  3. できるだけ正確な用語を使用して、
  4. 簡潔かつ網羅的に、
  5. キャッチアップしやすい媒体にて、
  6. なるべく容易に再利用できる形式で、
  7. 概ね全ての関係者がアクセスできる方式にて発信する。

コンピュータ・システムの開発ってのは、賽の河原で石を積み上げてサグラダ・ファミリアを建造するようなものである。

プログラマは、その難しさを誰よりも知っている訳で、だからこそ情報の正確さと、チーム内の情報格差の是正を重視する。情報が不正確だと迷走するし、情報格差は意図せぬ同床異夢を誘発する。どちらも、バベルの塔の逸話のごとくプロジェクト関係者の言葉を乱して混乱と疲労を生むだろう。いずれもシステム完成の障害でしかない。

現実には、政治ムーブの一環として、言葉を濁したり、相手によって情報の公開/非公開を取捨選択したり、些細な言葉尻を捕らえて責任をなすりつけあったりする、なんてことが多いのだが、実のところそのような行為は「システムを完成させる」という技術的視点では第一級の障害である。火薬庫の屋根裏で火遊びするに等しい。

というかコンピュータ・システムという複雑な複雑怪奇な代物を作ろうというのに、何でこの人たちは悠長に政治ムーブしているのだろう、ちょっとは空気読めよ――というのがプログラマの本音である。

つまり「コンピュータ・システム開発」という限定された文化圏においては、「プログラマはコミュ障ではなく、プログラマ以外がコミュ障である」というケースも多いのだ。

まあ、そうは言っても予算を引っ張ってくるのは政治ムーブに長けた人たちである。例えコミュ障であっても、金を握っている奴は強いのだ。そして時折彼らの目的は「システムの完成」ではない。「システムの完成」ではなく、それに付随すること――例えば「賞賛を得たい」とか、逆に「失点しない」とかが目的だったりする。だから、たとえ「システムの完成」に有効な施策であっても、彼らの真の目的に合致しないなら、すげなく拒否されるのである。かなわんなあ、ほんと。

余談:ところでプログラマプログラマ以外の人たち(主に顧客や多重下請け構造の元請社員など)の間の温度差は、プログラマ以外の人たちはプロジェクト内において「コンピュータ・システム開発技術」の技術面の能力が相対的に低いことがある、という所からも生じているように思う。ダニング=クルーガー効果より、彼らは「コンピュータ・システム開発の技術的側面」について自分たちを過信してしまうことがあるのだ。だから余裕がないのに余裕があると思い込んで悠長に政治ムーブをかましてくる上に、事の重大さを「大したことはない」と誤認して「何でできないの? 簡単でしょ?」と上から目線で言い放つ人が稀に出現するのである。かなわんなあ、ほんと。

余談その2:なおダニング=クルーガー効果はプログラマにも当てはまる。だからこそ、彼らコミュ障を侮ってはならない ;-)