プログラマは下っ端じゃないと思うよ

プログラマで、生きている: 社長・SE・PGの社内対談2「プログラマは下っ端ですか?」

ひでみ 昔、後輩に「早くSEになりたいです」って言われて、「なんで?」って聞いたら「いつまでも下っ端はイヤです」って答えが返ってきたことがあったんですよ。その時は面倒くさかったから黙ってたんですけど、うざがられても「プログラマは下っ端じゃない!」って言っておけばよかったかなあ、って今になって後悔してるんです。「プログラマは下っ端だ」と思ってSEになった人は、プログラマを下っ端として扱うんじゃないかと思って。

ちょっとコレ読んで、コラム主の後輩がなんで「プログラマは下っ端」と思ってしまったのか、考えてみたくなった。で、ちょっと書いてみる。

プログラマという職種がSEよりも「下」に「見られている」というのは、確かにそういう見方をする人もいるだろうな、と思う。でも、その上下関係の根拠といのは、実はいくつかあってそこを分けて考えないと、気持ちの悪いことになる。ちょっと箇条書きにすると、こんな感じか。

プログラマがSEよりも下であるとする理由その1は、平均して給与の水準がSE>プログラマだからだろう。ものすごく単純な理由だ。給与の水準で、社会の序列というのが決まるという理論。理由その2は、担当する工程が設計と実装で分かれていて、設計に従って実装するという仕事のあり方から、「プログラマはSEの言うことに従う」となる。まあ、わかりやすいといえばわかりやすい。その3は一言で言うと「お客様は神様です」ってことかw まあ、最近はここを過剰に主張するお客様も増えているし上下関係に置き換えて理解する人がいても、まあ、わからないでもない。全体的にコラム主の後輩というのは、社会の空気をよく感じ取っている子なんだと思う。でもそれは「空気」に過ぎない、という事を考えてみる。

最初のお金の問題は、今の日本のIT産業のコスト構造が、高給をプログラマに払うようになっていないから、たまたまそうなっているということだと思う。お金があまり払えないから、給与水準の低い人(若年者≒下っ端)の仕事になってしまう。プログラマが下っ端なのではなく、下っ端だからプログラマなのだ。本当に残念なことに、ほとんどのケースでこの不等式は成立してしまうと思う。統計とか持ってるわけではないけども。でも、プログラマにも持っている技術の高低というものがある。高い技術を持っている人は、当然の事ながらただの下っ端ではありえない訳です。下っ端にはできない高度な技術を持っていれば*1、高給をとるプログラマにもなれるので、単純にこの不等式が成り立つとは言えないなと。

二番目の仕事のやり方の問題だけども、「プログラマはSEの言うことに従う」が成り立つのは、そのプログラマが設計を実装する以外の能力がない場合だけだと思う。言えるのは原則としての「実装は設計に従う」だけじゃないのかな。現実には考慮の足りていない設計があって、そこにプログラマが気付いたら、設計に対して意見出したり、何も言わずに考慮を実装したりする(余白を読む、とでも言えばいいかなw)。これはプログラマがただ諾々とSEの言う事に従っているのとは違う。

三番目は、これもまた日本のIT産業の構造という話だけども、一次請けから始まる多層の下請け構造があるなかで、設計が上のほうの層ににあって、プログラム製造の部分は下請けに回ることになる。この構造のなかで仕事は複数の会社にまたがって分割されたとき、プログラマとSEの立ち位置というのは、受注者と発注者ということで、プログラマから見るとSEはお客様ということになる。SEから見ると、お上品な言葉で言えばパートナー。言い方を変えると出入りの業者です。この構造がSE=上、プログラマ=下っ端に見えてしまう。でもそれは会社と会社の力関係というのが事の本質であって、SEとプログラマの関係に置き換えて成立するものではないと思う。SEとプログラマっていう職能・職種の話であれば二番目の話で終わるんだ。

えーと、総括すると、「プログラマは下っ端」という人は

  • 工程の違いを上下関係と誤認している。
  • 給与水準の高低、発注者・受注者という関係を「SEとプログラマの関係」と誤認している。

ということかな。一番目のはわりとどうでもいい話で、ちゃんと説明して誤解を解けば終わりだと思う。でも二番目のは深刻だ。やっぱりね、社会的に「おまえの仕事には価値がある」って認めてもらう指標として、給与ってのは大切だ。そこが安いってのは、すごく軽く見られてるって事だし、安く使える人しか集まらないということでもある。

でも
最終的な製品を作っているのは紛れもなくプログラマなんだよ!

いいプログラマを雇って、いい給料を払えば、その支払いに見合った品質の製品が出来上がる可能性は高い。でも、下っ端のプログラマを雇って、最低限の賃金しか支払わなければ、やっぱりその支払いに見合った品質の製品=ゴミができるんだ。一旦ゴミが本番稼動してしまったら、そのソフトウェア資産は、その後の不具合対応で赤字ばかりを生み出す不良債権*2になる。サービスや製品を作る責任を負う人には、ここのところを本当によく理解してほしい。ちゃんとしたお金を支払わずに、成果だけを欲しがってもムダなんだ。

最後は日ごろの鬱憤が爆発してしまったな、まあいいかw

*1:難しいプログラムが書けるだけじゃなくて、仕様の読解力や、ケースバイケースで技術を使い分ける力、万人に読みやすいコードを作る力などなど。

*2:瑕疵期間すぎれば終わりというのが建前ではあるけど、次の仕事をもらうために昔の仕事の後始末を続けるなんてのは、私の身の回りではよくある話。