馬鹿の見る夢のなかには馬鹿しか出てこない

うちの会社でときどき仕事を外注の人にお願いすることがある。あるいは、うちの会社でしばらく働いてもらうことがある。そうすると、そういう人たちは「ああ、世間の職業プログラマは、こんなレベルで、こんな質の悪いコードを書いてやがるんだな」という局面に出くわすこともあるだろう。


「こんな奴でも食っていけるんだ」とか「世間のレベルとはこんなものなのか」みたいに一般化して認識する。下手すると自分のblogで「こんなコード許されていいのか」だとか「こいつバカス」とか愚痴を書いてやがる。「ほげほげテクノロジーを使いこなすのは、世間の職業プログラマには無理だろう」だとか書いてやがる。そんなの勘違いも甚だしいと思うんですよ。


あのね。仕事というのは、相手の実力の30〜40%で出来るものを与えるのが正しいマネージメントなのです。相手の力の80%〜120%を出さないと達成出来ないような仕事というのは、その人にお願いしても時間がいたずらにかかるだけで、質の低いものしか仕上がらないのです。だから、普通はそういう限界ぎりぎりの仕事をいきなりお願いしたりはしないものなのですよ。


単純作業であれば、誰がやっても同じぐらいの時間で出来るけれども、難しい仕事になればなるほど、差が出てくる。問題の複雑度が N 倍になったとき、N 倍〜 2N 倍ぐらいの時間で解決できる人間と、N*N 倍ぐらいの時間がかかる人間とにきっちりわかれるんです。だから、仕事というのは、常に自分が容易にこなせる易しい仕事しか与えられないのです。


まして、腕試しとして最初に与えられる仕事というのは、どうでもいい仕事、あまり会社にとって重要ではない仕事です。コードが書き殴ってあったり、書いた人がどうしようもない人で既に会社をクビになっていたり。すなわち、自分の実力の30%〜40%でこなせることすらとても出来ない人が書いているコードなわけです。酷いコードで当たり前ではないですか?そんな仕事しかもらえないうちはまだまだ自分も信頼されてないんだなぁ、と認識することです。もっともっとスキルを磨くことです。


うちの会社でも、Ph.D.がごろごろしているような会社と仕事をさせてもらうことがあります。東大の院生やら京大の院生やらを従えて、そういう仕事をこなします。あるいは、私ひとりでコードを書いて、社員の誰にも話さないまま片付けます。世のなかには、素晴らしいコードを書く人や、素晴らしいアイデアを考え付く人がいっぱい居るのです。もちろん、職業プログラマのなかにもたくさん居ます。そういう人たちと仕事が出来ていないうちは、自分はまだまだなのだと知ることです。決して職業プログラマをみくびらないことです。


世間のプログラマがたいしたことないのではなく、自分がたいしたことがないから、そういう仕事にしかありつけないのです。馬鹿の見る夢のなかには馬鹿しか出てこないように、常に自分のレベル以下の仕事しか自分にやってこないのです。自分がやっている仕事がショーモナーだと感じるなら、ショーモナーな自分を少しでも早く脱却することです。