2017年5月11日木曜日

なぜプログラマはあなたの事が嫌いなのか?

勉強の為に引用しました。

なぜプログラマはあなたの事が嫌いなのか

営業やマネージャーにとって、現場にいるプログラマというのは扱いづらい存在である。
飲み会などで、普段の彼らを観察してみると。同じエンジニア同士で固まってボソボソとよくわからない話をして、控えめな声で笑っており、総じて温厚で、扱いやすそうな人々に見える。
ところが、仕事になると、彼らはなんやかんのと理由をつけて、スケジュールに文句を言い、プロジェクト途中のリクエストには素直に答えてくれず、あげくには遠回しな嫌味を言ってきたり、極端な場合には、その温厚な仮面を投げ捨てて、攻撃的な暴言さえ吐く事がある。
どうも彼らは我々の事が嫌いらしい、と感じている営業・マネジメント職の人もいるのではないだろうか?
彼らの人格や価値観に問題がある可能性も否定しないが、このような感情的な齟齬は、多くの場合、あなた自身が彼らの「自尊心」を傷つけていることに気づいていないことが多い。

プログラマの自尊心

プログラミングという作業は、原則、単純作業ではない。
まずプログラミングには想像力が必要である。あなたが最初に彼らに提示したぼんやりとしたシステムの「仕様」を現実のシステムに落とし込むために、インターフェースや内部の処理、その運用にまで思いを馳せ、彼らは精緻な積み木のようにプログラムを組んでいく。
あなたの「注文」はその積み木を簡単にぶち壊す。
例えば、プロジェクトの終盤あたりで、クライアントのちょっとした思いつきのインターフェースの追加があったとする。営業のあなたも揉み手に満面の笑みで「それは結構ですな」と、アイデアの秀逸さを賞賛する。追加見積するほどではないが、ここでクライアントの注文をスマートにさばけば、点数を稼ぐチャンスである。
社に帰ったあなたは早速、軽い気持ちで内線電話をとって、プログラマに注文を伝えるだろう。今出来上がっている積み木の上に素敵な青色のブロックを載せてくれないか?というような調子である。
だが、プログラマはその豊かな想像力を駆使してすぐに理解するのだ。その素敵な青色のブロックを載せるには、本来は下に無数の土台が必要であることを。
プログラマは閉口して言う「納期は伸ばせるんですか?」
あなたは言う「とんでもない!ちょっとした変更だぞ!?」
こうなればプログラマは下に土台を築くことを諦めるしかない。なんとか今の土台を使ってその青色のブロックを「差し込む」場所を探すのだ。
不機嫌なやり取りの後、プログラマはシステムのエレガントさを少しばかり台無しにする妥協をして、システムの問題を増やさないように注意深く、その青色のブロックを「差し込む」。
プログラマのプロフェッショナリズムとは、本来あるべき形であった積み木-「欠陥のない」システムを組むことにある。そしてそれは、プロジェクトの初期、(プログラマの脳内にしかない、まだ誰にも見えない形であったとしても)確かにあったのだ。
あなたはこの一件で、その積み木をぶち壊したことに気づいていない。さらに言えば、この妥協によって生じた諸問題の責任は、クライアントはおろか、無批判にクライアントに同調したあなたにすらなく、他ならぬプログラマが負うことになるのである。
このような出来事はプログラマの何よりも「自尊心」を大きく傷つける。
プログラマはずっとあなたの指示に従っていたというのに、突然、そんな指示はしていなかった。最初からこれに対応できるように指示を解釈する必要があったのだ、と言われているようなものだからだ。
そのような急なリクエストでも上手くこなす予知能力じみた能力を持ったプログラマもいることはいる(特に熟練のプログラマはそういう術に長けている)、だが彼らとて全てのケースに対応できるほど全能ではない。しかし、あなたの言い草は、まるでそれができないプログラマは未熟だ、と言っているのに等しいのである。

残業させられることに怒っているのではない

プロジェクトの終盤。進捗の遅れや、不具合が残っていたりして、プログラマに残業や休日出勤を命じることもあるだろう。
その時に彼らが醸し出す、怒気を孕んだ空気に、あなたは辟易しているかもしれない。
だが、直感に反してプログラマは「残業そのもの」に怒ってはいないことが多い。むしろ、彼らは内線電話もかかってこない夜や休日の静かなオフィスを好んでさえいる。そこで彼らは思う存分プログラミングに集中できる楽しい(手当が出るのであればなお良い)時間を過ごせるからだ。
だが、その残業や休日出勤が、あなたの立案した無茶なスケジュールや、途中にさしこんだ仕様変更に起因しているのであれば話は別である。
あなたが悠々と家族と過ごしている時間に、あなたの不適切なマネジメントのせいで、仕事をさせられている人間が上機嫌でいるわけがないではないか。
システムを完璧にすることに関して不平を言うプログラマはいない。それが彼らの仕事である。
だが、それはあくまで最終納品物を使ってくれるエンドユーザーの為であって、あなたや誰かの尻拭いのためにしていることではないのだ。
もし、残業や休日出勤を命じた時に、プログラマが大きくため息をついたのなら、それは休日の予定が台無しになったことだけが理由ではない(往々にして彼らに休日の予定などないのだし)あなたのマネジメントの失敗を一方的に押し付けられ、それに抗弁する無意味さを悟った上でのため息なのである。

退職という抗議

このような事を繰り返しているとやがて、プログラマはあなたの内線電話が永遠にかかって来ない場所に向かうことになる。つまり退職するのである。
彼らが、正直にあなたに恨みつらみを述べることはない。「キャリアパス」がどうとか「家族との時間が」というような月並みの理由を述べて彼らは去っていく。彼らは心底あなたや会社に呆れ返っているので、もはや議論すら拒否しているのである。
結果として、最後まであなたと会社は、彼らを退職させるに至ったワークフローや営業上の問題を知る機会がなくなるし、これを機会にそれらが改善される、ということもなくなってしまう。
あのプログラマは何かこの会社では実現できない理由で退職したのであり、我々のワークフローのせいではないと、あなたは思いたがっているし、実際思い込んでいるからだ。
しかし、退職とその代替人材の確保というコストは確実にあなたの会社の損益に影響を与えている筈である。
プログラマの3年以内の離職率を計算してみたことはあるだろうか?
もし、プログラマの離職率が高い、と感じたのであれば、あなたの会社のワークフローや、マネジメントには確実に問題がある筈だ。
プログラマはそれを指摘しない。それは彼らの職分ではない。
ただ不機嫌な態度を示して、あなたや経営者がそれに気づいてくれるのをじっと待っているのである。

ピープルウエア 第3版

0 コメント:

コメントを投稿