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

この記事へのトラックバック
404 Blog Not Found:プログラマーって本当に労働者なのか?
404 Blog Not Found:プログラマーって本当に労働者なのか?【】at 2012年01月22日 22:36
日経BP高島様より献本御礼。 プログラマーのジレンマ 伊豆原弓訳 [原著:Dreaming in Code] はてなブックマーク - 【書評】プログラマーのジレンマ:シロクマ日報:ITmedia オルタナティブ・ブログ個人的に id:dankogai さんの感想がすごく聞いてみたい本。日経BP...
他山の宝石 - 書評 - プログラマーのジレンマ【404 Blog Not Found】at 2009年05月29日 18:53
人月が銀の弾(たま)ではないことが知られて久しいのに、「人月伝説」が衰えないのは、誰が悪いのだろうか? 矢野勉のはてな日記 - プログラマなら人月なんかさっさと超えろ人月というのは「人月の神話」以来、現場の技術者にとっては「お金の計算にしか使えない単位」なので....
人月を超えるとプログラムしている暇が減る【404 Blog Not Found】at 2007年09月26日 16:26
http://blog.livedoor.jp/dankogai/archives/50766218.html 労働者を「労働に対して対価を受け取る人」と定義するなら、アスリートもプログラマーも立派な労働者なのだけど、「その労力に比例して対価を支払う」という狭義の労働者モデルをあてはめるには、労力と生産の関係
[転職][開発]プログラマーとコーダーと,ホワイトカラーエグゼンプション【カレーなる辛口Javaな転職日記】at 2007年02月24日 09:24
プログラムの行数から努力度を判断するのは難しい。確かに、手を動かしてたくさんプロ...
行数【makky::personal】at 2007年02月22日 08:17
考えがうまくまとまらない。まとまらないのでまとまらないまま書いてみる。 プログラマの労働条件を過酷にしているのは、過酷な労働条件を受け入れるプログラマです(分裂勘違い君劇場) デスマ確定プロジェクトへの参加やサービス残業はダンピングなので拒否すべき、という...
プログラマという仕事【星宿海】at 2007年02月18日 13:30
いい問題提起ですね。解答というより便乗質問です。 404 Blog Not Found:プログラマーって本当に労働者なのか? - shiroさんのコメント 芸術家だから労働者としての権利を主張できない、というのは飛躍がありませんか。例えば米国のプロの俳優は全てユニオンに所属し、仕....
俳優と脚本家【404 Blog Not Found】at 2007年02月17日 21:34
とソフトウェア会社の経営者さんはお考えになっているのかもしれない (あくまで一般的な話ですよ?ベンチャー企業にはそうでないところもあるかもしれません 404 Blog Not Found プログラマーって本当に労働者なのか?より そもそも、プログラムは工業製品とはいえない。むし...
プログラムは芸術品ではない【enchanting an air of joyous bliss】at 2007年02月17日 17:13
弾氏のブログ404 Blog Not Foundから。 プログラマーって本当に労働者なのか?(一部抜粋) 確かに、労働者を「労働に対して対価を受け取る人」と定義するなら、アスリートもプログラマーも立派な労働者なのだけど、「その労力に比例して対価を支払う」という狭義の労働者モデ...
人月神話:「プログラマー」は労働者?芸術家?【コンサルタントのネタモト帳+(プラス)】at 2007年02月17日 09:39
この記事へのコメント
労働者に対してフェアとは言えないっていうのはかなりグっときますね。
ちょっと怖いです。
Posted by hg at 2007年06月19日 12:18
↑笑った。「規約」にあわせる為にそういうことをすることがあって、これはまさに労働者といわれても仕方がない。いい方に行けばCASEツールと言えなくもないが実体は・・・。
Posted by ho at 2007年02月25日 15:12
最初の1001行のコードを出力する1行のプログラムを書く人が一番よいのか
Posted by niryuu at 2007年02月20日 17:56
現場の言いなりで働いているような御仁多いから、
WCEなんか導入したら激しく犠牲者増えそうな悪寒。
特に組み込みとゲームの現場は悲惨でし。
このあたりは時間清算であることが唯一の歯止めに
なっていたりする。時間清算なら月200時間あたりを
超えると現場からクレームきたりもするが、固定だと
マジで際限なく働かせようとしてくる。
月300時間超えなんてのも普通にあった。

歳くった今となっちゃそこまで無茶できんて。
業界からホされること必至で必死。
Posted by どっかの中の人 at 2007年02月19日 21:46
極論しだすとカイゼンに努めている工場労働者も
労働者といえないという話まで飛躍しそうですね。
Posted by @ at 2007年02月17日 19:49
芸術家だから労働者としての権利を主張できない、というのは飛躍がありませんか。例えば米国のプロの俳優は全てユニオンに所属し、仕事ごとに最低賃金や撮影時の休息時間が保証されています (もちろん職業の性質上、仕事が取れるかどうか、また一度取れた仕事から外されないかどうかについては保証されませんが)。条件が合わなければストライキをやったりもします。
Posted by shiro at 2007年02月17日 19:36
日本の大多数のプログラマーはハードウェア製品の組み込みプログラマーで、成果は工業製品として出荷されるため、そこに芸術的な作品があったとしても、無制限にコピーされまくり、むしろより多数のコピーを作られたほうが優秀な結果として工業製品への労働者として扱われます
Posted by 名無し at 2007年02月17日 19:02
最終的には労働者も評価される訳で…
Posted by しかし、 at 2007年02月17日 15:25
成果を判定できないから労働者なんじゃないですかね。
図らずも弾さんはそのことを指摘されているようですが。
評価が容易であるなら独立すればよいわけで、
そこまでの明瞭性はこの仕事にはないわけですよね。
Posted by @ at 2007年02月17日 14:51
また、いつもの極論ですね。それが楽しいところですが。

>プログラマー⊂労働者って本当なのだろうか
日本においては奴隷です。そして奴隷には法のほうのcodeを書く権利はありません。

http://d.hatena.ne.jp/JavaBlack/20070217/p1
を書いた人はcoderとprogrammerの違いを述べてますが
私も賛同します。
Posted by おやじです at 2007年02月17日 12:44
私はこちらの職業を連想しました。
http://zmock022.blog19.fc2.com/blog-entry-686.html
職人的な職業には多かれ少なかれ皆当てはまる話なのかもしれません。
Posted by 通りすがり at 2007年02月17日 11:50
 coderではないけれども、外科医もそれに近いかも知れません。

 同じ手術なら短い時間で、合併症なく短期間の入院でお帰り頂くのがいい外科医です。

…これを一見同じようながんの手術でも、手前で帰ってくるのと深く掘ってくるので数ヶ月後、数年後の結果が大きく変わってきたりすると、話はややこしくなるわけでもあります。

 アナロジーが成立するかどうかは分かりませんが、これは一見問題なく動くがあるとき突然動かなくなるcodeと、そういうことのないcodeの品質の違いという辺りかも知れません。
Posted by rijin at 2007年02月17日 08:07