ソリティアの合間に


UK STUDIO – プログラマの報酬について

現状プログラマをやっている人で、普段自分でコードを書かない(能力的に平均以下であろう)人達がかなり多く存在している。個人的にはハッキリ言ってそういう人達は足手纏いだと思っている。なので正直、そういう人達がいなくなればいいとも思っている。
だが、現状そういう人達が存在している以上、「あなたたちはプログラマとして無理なのでやめてください」と言ってしまっていいのか、それは さすがに傲慢じゃないのか、普段からコードを書き能力がある人達と、そうじゃない人達が共存する方法はないのかと思って色々書いたのが先のエントリ

@ukstudio 別にその仕事を好きでもなくて向いてるでもなくて、ていう人たちに別の仕事やったら? ていうのは排除してるわけじゃないと思うんだけどなー。

しかし、ogijunさんにこのように言われて、それもそうかと納得してしまったので、僕にとって結局のところプログラマは自己学習をし、 ある一定以上の能力がある人達が就く職業ということで落ち着いた。

(一部リンク改変)

俺個人の意見でいうならば、能力的に平均以下なソフトウェアエンジニアにはあえて退場してもらうべきだと思っている。
これは単純にソフトウェアエンジニアで構成されるチームのレベルは、チーム構成員の中で一番レベルの低い人のレベルになってしまうからである。
チーム構成員の平均値のレベルではなく、本当にチーム構成員の中で一番レベルの低い人のレベルにまでチーム全体のレベルが下がってしまう。
エンジニアとしての能力が低い人がその人より能力の高い人全ての足を思いっきり引っ張ってしまい、チームとしての効率が格段に下がるのはもちろん、能力のある人の効率の低下は著しい。
優秀な人がチームの尻ぬぐいのために、毎日一番遅くまで仕事をしているなんて光景もよく見る。傍目から見て同情しちゃうくらいである。

ソフトウェアの性質として、不良点が1点あればそこから全体が崩壊していく、ないしはそこから全体のレベルが下がっていくというのがある(設計・実装ともに)。
よって、ソフトウェア全体としての品質を一定以上に保つことが強く求められるのだが、そこに能力の低い人によるレベルの低い設計なり実装が入り込むと一気に品質が下がってしまう。

また、チームで一番偉い人やプロジェクトマネージャも「チームのレベルはチーム構成員の中で一番レベルの低い人のレベルになってしまう」ことを経験的に知っているため、チームの中でレベルのかなり低い人に一人でやれそうなレベルの低い仕事を任せてチームから隔離するなどの政策をとることもまま見受けられるが、実際にはあまり効果を上げていない(ように思う)。
隔離しないよりは隔離した方が幾分かはましなのかもはしれないが、隔離された方のモチベーションが下がるのはもちろん、隔離されなかった方のモチベーションも結構下がったりするようでやっかいである。

だからこそ能力的に平均以下なソフトウェアエンジニアにはチームやひいては業界・産業のためにも、そして本人のためにもソフトウェアエンジニア以外の仕事に就いて欲しいと思う。

で、落ち着いたはいいけど、現状そうはなっていない。個人的に一番疑問なのが給与面である。
先のエントリでの反応で、「業務時間外の行動が業務に影響し、それ相応の査定・給与となっているのだからいいではないか」と言ったような意見をいくつかもらったが、本当に査定・給与に反映されているのだろうか。正直、プログラマは技術力にかなりの格差があるにもかかわらず、給与にそこまでの格差がないように思える。
(中略)
プログラマの場合、問題になるのが成果がわかりづらいという点である。なにをもってプログラマの価値を決めればいいのかわかりにくい。例えば、優秀な人であればコード量は少なく労働時間も短く作れるものが、他の人であればコードは肥大化し労働時間も長くなるだろう。その場合、後者の方が残業代なども含めて給与が高くなるだろう。

そもそも、ソフトウェアを定量的に測定する方法は現在も発明されていない。
ソフトウェアメトリクスやら、レビューの指摘回数やら、行数あたりのバグの発生率やらをカウントしていくなんて方法で現場でソフトウェアの定量化を試みることもあるが、それらの母数となるソフトウェアの規模の定量化が未だ実現できていないため、それらが本質的にその人の能力を示す指標にはならない。
能力を定量的に測定できない以上、技術力の比較もできないし、ひいては給与なんかに差をつけるというのもなかなか難しいのだろう。
「あの人と自分には技術力に明らかに差がある」などと思ってみても、それを厳密に比較する方法はないし、もしかしたらそれは単なる思い込みだけかもしれないのである。

ソフトウェアエンジニアである以上、正直なところ給与についてはあきらめるのが一番の早道だし、そもそも給与面を気にするようならばソフトウェアエンジニアはやっていられないように思う。
もちろん優秀なエンジニアの待遇を良くすることは強く賛成するし、できるのならばそうあるべきだと思う。
が、実際のところ優秀なエンジニアがどれだけ優秀なのかを知る手法がないので、どれだけ待遇をよくすればいいのかが分からないし、もしかしたらその人は優秀ではないのかもしれないのである。

個人的にはソフトウェアエンジニアたるもの、もはやソリティア(もしくはマインスイーパ)の合間に仕事をするくらいが一番合理的なように思う。

2 thoughts on “ソリティアの合間に

  1. これ、普通の事務職についても同じで、プログラマに限った問題ではないと思う。
    営業なら「数字」で評価されるからその点平等のように見えるが、実は似たような問題を内包していて、「数字」を挙げてくる人ほど「商品知識がいい加減」だったり、「コンプライアンス的に「かなりヤバイ営業をしている」人が多かったりする。

  2. 本質的にはそのとおりなのだけれど、ソフトウェアエンジニアの場合は
    ・コンスタントに差が出る。感覚的にはそれなりにできる人と普通の人とで2倍くらいの差がある。
    ・運や調子などに左右される要素は少ない。
    ・できない人ができるようになることはあまりない(私感)。できる人が別の意味でできるようになることはよくある。
    ・やばいことをやっていればそれなりにばれるw
    という特徴がある分、報酬の差があることの正当性は当然あると彼らは信じるのだろうけど、実際にはあまり報酬差は無いですからね。
    2倍の生産性を誇る人に対して、20%増しの報酬を出しているのならばかなり良心的な部類だと思います。
    まぁ、ソフトウェアエンジニアはソフトウェアを作るだけではないので、一概に技術力が報酬に直結するとはいえない部分もあるのですけど。