Hatena::ブログ(Diary)

shi3zの長文日記 RSSフィード Twitter

2012-08-17

ジョイフル・ワーク 仕事をする喜び または社畜との訣別 10:01

21世紀になってから良く聞くようになった新語で、「社畜」という言葉がある。

会社に飼われている家畜、という意味で、もの言わぬ社員を蔑視するための通称だ。


ベンチャー企業で明日をも知れない生活を長く続けて来た僕なんかは、逆説的に社畜を飼ってるなんて凄い会社じゃないか、と思う。


ベンチャー企業ってのは、基本的に来月も仕事があるかわからない。

社長や営業が仕事をとってくるのにしくじって、ヒマな日がしばらく続くと不安になる。来月も会社があるかどうかわからないんだもの。


しょうがないから自分で仕事をとってきたり、いつ仕事がきてもいいように自分で新しい製品を作ったりして時間を潰すわけだ。


社畜とは無縁の生活。

会社が潰れてもいつでも一人で食って行ける、という自信がなかったら、とてもこんな生活はできない。

いわば野生の狼。


反対に、社畜らしい社畜といえば、僕が知ってる社畜の王様みたいなのは、Microsoft時代の上司や先輩達なんだけど、なにしろぜんぜん仕事しない。


昼過ぎに出社してきて、夕方くらいまでネット見て、五時になると「そろそろ飯でも行くか」って感じ。

で、適当な取引先に電話して、「いやーどうもどうも。今日どうすか、六本木あたり」ってな感じで呼び出して、六本木で豪遊。ギャハハと笑い、酔いつぶれて帰宅。それを毎日繰り返す。


どうよこれ。これが一流の社畜ってもんよ。極楽社畜ライフ。そのときはまだ社畜って言葉はなかったけど、僕は「動物園みたいな会社だなあ」と思ってた。似たようなものでしょ。

こんなライフスタイルが許される会社は、基本的に規模がデカい。


誰かが知らないところで血反吐履いて儲けてるから、どうでもいい部署はぜんぜん仕事しない。

仕事しなくても給料は支払われるし、会社の金で飲み食いしないと予算消化してないと怒られる。


仕事のできる20%の人が仕事しない80%を支える、パレートの法則ってやつ。


まさに会社に飼われてる感覚。


サービス残業デスマーチだなんだっていうのは社畜とは言えない。それは企業戦士。

もし社畜だとしたら、実際の家畜と違って人間の社畜はいつでも逃げ出す自由がある。

逃げようとすらしないから社畜なのだ。というか社畜でいるのが気持ちいい。飯は勝手に出てくるし、寝ててもいい。とにかく人生を無為に過ごしていい。そういう世界。

昔はそういうの、「バブリー」って言ったんだけどね。



ただ、先輩達は数年間そういう生活をしていて体重がどんどん増えてしまい、ある日を境にパタッとやめてしまった。

その理由は、「健康に悪いから」

会社から咎められたのでも、良心の呵責に苛まれたのでもない。健康に悪い。極めて自分本位の理由だ。


また別の大きな日本企業で働いたことがあるが、その時の先輩達も似たようなものだった。

とにかく働かない。驚くほど働かず、毎日会社でマンガを読んでる。しかも仕事に1ミリも関係しない。


そういうのが二週間くらい続いて、ある日、「来週アルファーだから」と通達が出て、え、なんにもしてないじゃんどうすんの?と思ってると「前作のアレをあーして適当にジャンプだけするやつ。それアルファってことでいいでしょ」と極めていい加減に決定される。


それどころかチーフ以下全員が他の会社の仕事をアルバイトで引受けて内職してる。もちろんギャラは会社を通さずに懐だ。ヤバい。リアル給料泥棒だらけの会社。


そんな連中がマスターアップ近辺に1ヶ月会社に軟禁されようと同情は感じない。

デスマーチだサビ残だと騒いでるけど、実際には自業自得だ。


また恐ろしいことに、そんないい加減につくったゲームがウン十万本と飛ぶように売れる。もちろんクソゲーだ。ゲームの出来なんか知ったこっちゃない。カネだ。カネが全てだ。それでボーナスさえ出るんだからやってられない。


腐ってる。と思って僕はその社畜をやめた。


Microsoftの先輩達は社畜っぽい生活を辞めて、「遊ぶのに飽きたから」といって働き始めた。

それはそれで面白いらしかった。


思ったのは、Microsoftはさすが優秀な人材を集めてる、ということだ。

優秀な人材は遊べば遊ぶほど、逆に仕事がしたくなってくる。

そうすると彼らが20%になって、他の80%の誰かが遊び始める。うまくできてんのよね。攻守交替


遊ぶタイミングと仕事をするタイミングのメリハリがハッキリとついてる。

それがわりと凄い。


だから優秀な奴が遊んでるんなら、とりあえず遊ばせておけばいい。

そういう懐の広さが、社畜を許す社風になるのだ。



ところが日本ではとりたてて目の前の仕事が与えられないと、今度は「リストラ候補」だの「社内ニート」だの言ってまた自虐に走る。


仕事が与えられてないのに給料が出てるって凄いことなんだよ。

その間に自分で自分の仕事を考えればいい。それか好きなことをしてればいい。


で、「好きなことしなよ」って言うと混乱しちゃう。

「ああ自分は必要とされてないんだ」とか言い出す奴もいる。


違うよ。好きなことして会社に貢献しろよってことなんだよ。

会社から一人前のビジネスマンって認められたってことでもある。


でもなかなか「好きなことしろ」って言われて好きなことができるひとはいないらしい。

そういうのに気づいたのは自分が社長になってからだった。


サラリーマン時代は本当に好き放題やってたし、そのノリは学園祭の延長みたいなものだった。

思いつきで考えたことを思いつきで実行して、それで失敗してもたいして怒られなかった。

まあ儲かったものもあった。


ARCはそういう意味では「好きなことしろ」という連中を集めるために作った組織だ。

ブログ上で「少年プログラマー」を集めて、主に学生だが、彼らには給料を払い、時々会社に来てもらう替わりに好きなことをしてもらった。


そういうなかで生まれたのがenchant.jsやcode.9leapで、やはり優秀な連中に好きなことをさせるととんでもないものが生まれるのである。


大学がつくばなのでレギュラーでは来れないけど優秀なメンバーとして坂口君というのがいて、彼はとびきりの変わり者だ。


高校時代からの関数型言語マニアで、去年の面接にはHaskellで作ったHaskellの処理系を持って来た。

型推論の同人誌を書いていて、最近は夏休みで久しぶりにARCに顔を出してる。


夏コミでこんな本出したんですよ」


と言って、定理証明支援系言語Coqの解説書を見せてくれた。


「買ってやろうか」


と言ったら


「いえ、けっこう売れたんで差し上げます」


と言うのだった。彼はいつもそうだ。

定理証明支援系言語なんて言葉を聞いたことすらなかった僕は、それについて詳しく聞いてみた。

テストより強力な数学的証明法で、プログラムにバグがないことを「証明」する言語、なのだそうだ。


相変わらずカッ飛んだ奴だ。

僕もちょっと勉強してみよう、と思っていろいろネットを漁ってみたが、日本語はもちろん、情報がほとんどない。


東大情報科学科の必修科目であるOCamlという関数型言語を開発したフランスのINRIAという研究機関が開発した定理証明系言語がCoqというらしい。その開発には専用のIDEが必要で、一行ごとに証明支援が行われる。


関数型言語は関数なんだからその動作も数学的に間違いがないことを証明できるハズだ、という執念から考えだされた、バグのないプログラムを書くための究極の方法なわけだ。


相変わらず、それはカネには全くなりそうもなかったが、こういう人間が会社に居て良かったと思った。

テストの重要さは日に日に増している。


もしバグがないことを数学的に証明できたら、それは会社として凄い競争力になるだろう。

テストというのはカネがかかるのだ。


しかも、定量的な方法では回避できない。

仕方ないので会社によってはバグ密度という指標を用いてバグ検査を行うが、これだって意味のわかんないテスト方法だ。


しかし実際にテストをしなくても、もしそのプログラムがきちんと動作すると一部分でも「数学的証明」がなされていれば、テストの手間は大幅に減る。しかも上手いことに、そんな離れ業ができるのはごく一部の限られた人間だけだ。そこにビジネスチャンスがある。


近い将来、関数型言語であるLispが形をかえてRubyC++に影響を与えたり、JavaScriptという言語に進化したように、今はまだ難解に思えるこの定理証明支援系言語という仕組みも、なんらかの形で日の目を見ることがあるかも知れない。なにしろバグのないプログラムというのは、誰もが欲しいものだからだ。たとえバグがないことを証明するために、プログラム本体の10倍の記述量が必要だとしても。


僕には全く想像できないがそういうことが理解できてる人間が会社の仲間としてここに居る。

それは凄く頼もしいし、実際彼の同人誌は社内にちょっとした衝撃を与えた。こんな世界があるのか、と。


うちの会社の、特にプログラマの採用基準は極めて厳しい。

殆どの求職者は落ちる。100人面接して100人落ちるのも珍しくない。採用広告出したんだから一人くらいは採用しないと・・・というセコい考えで募集してない。基準に満たなければ落とす。

だからプログラマーはなかなか増えない。


それだけ厳選したプログラマーたちであっても、純粋な関数型言語を実用的に使えるレベルの者はほとんど居ない。そういうのが欲しかったらヘッドハントしなきゃならない。


もちろん使えないというわけではない。最近の面接では必ず「第一級関数」と「カリー化」について質問してるし、それに答えられない人は採用しない。そういうのはプログラマーとしての教養だと思うからだ。


けど、せいぜい、クイックソートだとか、フィボナッチ数列だとかを各関数型言語で実装して、それで「ふーむ」と唸って仕事に戻る、という感じだ。


関数型言語は習得できる人が少ないので誰かが関数型言語でモジュールを書くとメンテナンスできる人が非常に少なくなるという欠点がある。


最近はHaskellのちょっとした流行や、CoffeeScriptといったものの登場で関数型言語が全くダメ、という人は減って来た。いいことだと思う。


少し前までは関数型言語で実用的な仕事をするなんてとんでもない、という空気が支配していた時期もあるのだ。


実際、JavaScriptは関数型言語への入門としてはなかなかいい。

見た目はJavaのような手続き型言語っぽいし、そのようにも書ける。


いずれ定理証明の仕組みがもっと洗練された形でこうした言語群に降りてくるかもしれない。

OCamlで書かれた実用的なソフトは意外と多いから、OCamlがふつうに普及してOCamlプログラマーの数が増えてくると、Coqのような言語(実はMLに良く似てる)の重要性も増してくるだろう。


「いいね」


パラパラと坂口君の"新作"をめくりながら僕は言った。


「何が書いてあるのかサッパリわからん」


だがそこがいい。

仕事をする喜びというのはいろいろあると思う。


僕が最高に楽しさを感じる瞬間というのは、こういうときだ。

未知との遭遇。自分のなかの既成概念の破壊。新しいパースペクティブが目の前に広がって行く。

そして、そんな未知の世界を識る人間が目の前に仲間として居る。


自分より賢く優れた人間と仕事すること。

理解を超えた存在と机を並べること。


それが僕にとって最高に面白い職場で、仕事をしていて良かったと思える瞬間でもある。

自分の理解を超えていたとしても、それは僕の仕事がなくなるということを意味しない。

むしろそこに新しい仕事が生まれるのだ。


彼らは探検家であり、新しいパラダイムを探し出し、それを追求するという優れた頭脳を持っている。彼らと同じ高みに登ることはできないが、そこまでする必要もない。


僕はただ、彼らとその他の人々の翻訳者になればいい。

坂口君がジョン万次郎や南方熊楠だとすれば、僕は福沢諭吉森鴎外となって、彼らの得た知見をより広く、普通の人に役立てるよう翻訳する仕事をすればいいのだ。


それはわくわくするような知的興奮であり、気の遠くなるほどに壮大な冒険でもある。

でもそこになにか新しいものがあるなら、それを掴んで自分のものにしたい、という探究心は誰もが持っているものだ。


坂口君だけじゃない。ARCにはそんな人がたくさんいる。

そういう世界に居ると、毎日仕事もせずに飲み歩いていた先輩達のことなど忘れてしまうのだ。