2007年02月17日 05:00 [Edit]
プログラマーって本当に労働者なのか?
X=労働者ならこれは正しいし、プログラマー⊂労働者なら元の文も正しい事になるけど、プログラマー⊂労働者って本当なのだろうか。
分裂勘違い君劇場 - プログラマの労働条件を過酷にしているのは、過酷な労働条件を受け入れるプログラマです を改変本来、Xは、サービス残業を強要されたら、それを拒否すべきです。
あらかじめ無理なスケジュールだとわかっているプロジェクトも、拒否すべきです。
安い賃金で働くことも拒否すべきです。
確かに、労働者を「労働に対して対価を受け取る人」と定義するなら、アスリートもプログラマーも立派な労働者なのだけど、「その労力に比例して対価を支払う」という狭義の労働者モデルをあてはめるには、労力と生産の関係があまりに非線形なのだ。
どう非線形かは、上掲の「人月の神話」を読んでもらうとして、賃金が安いか高いかを査定するためには、相場が必要。「これだけの能力を持ったプログラマーがこれだけ稼働するとこれだけのプログラムが出来上がる」という。ところが、これが成立しているようでしていない。
例えば、「コード1行につき10円」という取り決めがあったとする。そしてプログラムの中に要素数1000からなる配列を初期化するルーチンが必要だったとする。この場合、
my @a; $a[0] = 1; $a[2] = 1; # ... $a[999] = 1;
というコードを書けば1万10円になるが、
my @a;
for (my $i = 0; $i < 0; $i++){
$a[$i] = 1;
}
と書けば一気に40円に下落し、
my @a = map { 1 } (1..1000);
と書けばたった10円になってしまう。下に行けば行くほど優れたコードなのに、収入も減ってしまうのだ。
このことはプログラマーの間では常識なのだけど、しかし「コード1行につき10円」に対する代案を、プログラマー側ではなかなか出せない。
もう一つの見積もり法として、「完成した製品全体に対していくら」とか「稼働したサービスが上げる収益の何割か」というものがあって、こちらは能力の高いプログラマーには好評だ。これならmy @a = map { 1 } (1..1000);とやっても誰にも文句は言われない。白いソースコードも黒いソースコードも、アガリを取るのがいいコードというわけだ。
しかしこちらの見積もり法は、もう労働者のそれとは相容れなくなっている。5割増の残業手当を出されても書けない時には書けないものだし、逆に1日仕事が5分で終わってしまうこともある。それがプログラミングの世界だ。
そもそも、プログラムは工業製品とはいえない。むしろ芸術品に近い。優れたプログラマーほどそのことをわかっている。だからプログラマーが労働者としての権利を主張するのは、作家が労働者としての権利を主張しているような違和感がどうしてもつきまとう。
だから、ことプログラマーに関しては、例のホワイトカラーエクゼンプションを適用するべきだと思う。もっと踏み込んでフリーエージェント制でもいいと思う。サラリープログラマーからすればとんでもない話に聞こえるかも知れないが、とんでもないのはプログラマーという職業そのものなのだし、作家や漫画家からすればむしろそれは当然の世界でもある。
もちろんそういう中で、あえて会社のおかかえになるという選択肢もあるだろう。顧問弁護士や顧問弁理士のように、顧問プログラマーという存在もありうる。当然報酬も顧問〜士に準ずる高いものとなるだろう。いずれにせよ、労働者からエグゼンプトされるのはやむえない。
百歩譲っても、プログラマーというのはメタ労働者ではあっても労働者とは言えないと思う。厳しいようだけど、労働者として扱ってもらいたかったら、プログラマーではなく別の職を選ぶべきだと思う。少なくとも、それを本職にするべきではない。
労働者とは、法(code)に沿って働く人々のことだ。プログラマー(coder)は法そのものを書く以上、実は特権的な地位であり、特権的な地位にある以上は労働者の持つ権利の一部は諦めなければ本来の労働者に対してフェアとは言えないのではないか。
Dan the Self-Employed Programmer
この記事へのトラックバックURL
同じ手術なら短い時間で、合併症なく短期間の入院でお帰り頂くのがいい外科医です。
…これを一見同じようながんの手術でも、手前で帰ってくるのと深く掘ってくるので数ヶ月後、数年後の結果が大きく変わってきたりすると、話はややこしくなるわけでもあります。
アナロジーが成立するかどうかは分かりませんが、これは一見問題なく動くがあるとき突然動かなくなるcodeと、そういうことのないcodeの品質の違いという辺りかも知れません。
http://zmock022.blog19.fc2.com/blog-entry-686.html
職人的な職業には多かれ少なかれ皆当てはまる話なのかもしれません。
>プログラマー⊂労働者って本当なのだろうか
日本においては奴隷です。そして奴隷には法のほうのcodeを書く権利はありません。
http://d.hatena.ne.jp/JavaBlack/20070217/p1
を書いた人はcoderとprogrammerの違いを述べてますが
私も賛同します。
図らずも弾さんはそのことを指摘されているようですが。
評価が容易であるなら独立すればよいわけで、
そこまでの明瞭性はこの仕事にはないわけですよね。
労働者といえないという話まで飛躍しそうですね。
WCEなんか導入したら激しく犠牲者増えそうな悪寒。
特に組み込みとゲームの現場は悲惨でし。
このあたりは時間清算であることが唯一の歯止めに
なっていたりする。時間清算なら月200時間あたりを
超えると現場からクレームきたりもするが、固定だと
マジで際限なく働かせようとしてくる。
月300時間超えなんてのも普通にあった。
歳くった今となっちゃそこまで無茶できんて。
業界からホされること必至で必死。
ちょっと怖いです。
