営業やマネージャーにとって、現場にいるプログラマというのは扱いづらい存在である。

飲み会などで、普段の彼らを観察してみると。同じエンジニア同士で固まってボソボソとよくわからない話をして、控えめな声で笑っており、総じて温厚で、扱いやすそうな人々に見える。

ところが、仕事になると、彼らはなんやかんのと理由をつけて、スケジュールに文句を言い、プロジェクト途中のリクエストには素直に答えてくれず、あげくには遠回しな嫌味を言ってきたり、極端な場合には、その温厚な仮面を投げ捨てて、攻撃的な暴言さえ吐く事がある。

どうも彼らは我々の事が嫌いらしい、と感じている営業・マネジメント職の人もいるのではないだろうか？

彼らの人格や価値観に問題がある可能性も否定しないが、このような感情的な齟齬は、多くの場合、あなた自身が彼らの「自尊心」を傷つけていることに気づいていないことが多い。





プログラマの自尊心 プログラミングという作業は、原則、単純作業ではない。 まずプログラミングには想像力が必要である。あなたが最初に彼らに提示したぼんやりとしたシステムの「仕様」を現実のシステムに落とし込むために、インターフェースや内部の処理、その運用にまで思いを馳せ、彼らは精緻な積み木のようにプログラムを組んでいく。 あなたの「注文」はその積み木を簡単にぶち壊す。 例えば、プロジェクトの終盤あたりで、クライアントのちょっとした思いつきのインターフェースの追加があったとする。営業のあなたも揉み手に満面の笑みで「それは結構ですな」と、アイデアの秀逸さを賞賛する。追加見積するほどではないが、ここでクライアントの注文をスマートにさばけば、点数を稼ぐチャンスである。 社に帰ったあなたは早速、軽い気持ちで内線電話をとって、プログラマに注文を伝えるだろう。今出来上がっている積み木の上に素敵な青色のブロックを載せてくれないか？というような調子である。 だが、プログラマはその豊かな想像力を駆使してすぐに理解するのだ。その素敵な青色のブロックを載せるには、本来は下に無数の土台が必要であることを。 プログラマは閉口して言う「納期は伸ばせるんですか？」

あなたは言う「とんでもない！ちょっとした変更だぞ！？」 こうなればプログラマは下に土台を築くことを諦めるしかない。なんとか今の土台を使ってその青色のブロックを「差し込む」場所を探すのだ。

不機嫌なやり取りの後、プログラマはシステムのエレガントさを少しばかり台無しにする妥協をして、システムの問題を増やさないように注意深く、その青色のブロックを「差し込む」。 プログラマのプロフェッショナリズムとは、本来あるべき形であった積み木－「欠陥のない」システムを組むことにある。そしてそれは、プロジェクトの初期、（プログラマの脳内にしかない、まだ誰にも見えない形であったとしても）確かにあったのだ。 あなたはこの一件で、その積み木をぶち壊したことに気づいていない。さらに言えば、この妥協によって生じた諸問題の責任は、クライアントはおろか、無批判にクライアントに同調したあなたにすらなく、他ならぬプログラマが負うことになるのである。 このような出来事はプログラマの何よりも「自尊心」を大きく傷つける。 プログラマはずっとあなたの指示に従っていたというのに、突然、そんな指示はしていなかった。最初からこれに対応できるように指示を解釈する必要があったのだ、と言われているようなものだからだ。 そのような急なリクエストでも上手くこなす予知能力じみた能力を持ったプログラマもいることはいる（特に熟練のプログラマはそういう術に長けている）、だが彼らとて全てのケースに対応できるほど全能ではない。しかし、あなたの言い草は、まるでそれができないプログラマは未熟だ、と言っているのに等しいのである。