プログラマには「何を作る」のか考えられるプログラマと「どう作る」を追求するプログラマの2種類いる。どっちが優劣ではなく違いがある。漫画家で言うと、独りで全て出来る人と、原作と作画が分かれて作画を追求する人。そう考えてプログラマは漫画家に似てると思った。
http://twitter.com/#!/kuranuki/status/107815093332492289

プログラマという職業は何に似ているか。プログラミングという作業が、ただの単純労働のように思われてる一面があることに、私はとても憤りを覚えます。

私はプログラミングがとても大好きで、プログラミングはクリエイティブな活動だし、高いスキルが必要なものだとも考えていて、それが出来るプログラマは、もっと希少な職業であっても良いはずだと考えています。

では、プログラマという職業はいったい何に似ているか。あるとき「漫画家」が近いのではないか、と思うようになりました。

プログラムを作るときは、何を作るのかを考える時間と、どうやって作るかを考える時間があります。どちらも創造性が必要ですが、使う脳みそが違うように思います。漫画で言えば、原作を考えることと、作画をすることに分かれていることに近いように思います。

ComicsComics / Richard Masoner / Cyclelicious

漫画家には、話を考えるところから、コマ割りやセリフ、構図といったネームを考えるところ、そして作画するところまでを全て独りでやっている人が多い。それは、どんな問題を解決するかを、どんなインタフェースのデザインで、どうやってソースコードで表現するかまでを独りで考えてすることに近いのではないでしょうか。

そう考えると漫画家って凄いですよね。

プログラマでも、それを全て独りでやってのける人たちがいます。例えば、最近の有名どころだとマークザッカーバーグ。Facebookの最初のコードは彼が産み出したもので、どんなものに、どんなデザインで、というところも彼自身が考えたものです。たとえ映画「ソーシャルネットワーク」のように誰かのアイデアを聞いて閃いたからとしても、やはり彼自身のものに違いはないでしょう。

プログラマと漫画家の相似を考えるきっかけは、Rubyのまつもとさんとの雑談でした。プログラミングは何に似てるか、という話題になったとき、確かまつもとさんは「小説を書くのに似てるのかも」と仰っていました。そう、彼も原作者であり、表現者でもあるんですね。だから「小説」のメタファで良いわけです。いずれにせよプログラムは大量生産の工業品ではないのです。

一方で、漫画には原作者と作画でクレジットが分かれているものもあるし、原作と作画を分かれて担当する二人組で作っている人たちもいますね。どちらが偉い訳ではなく、役割分担なのでしょうし、おそらくお互いにリスペクトし合った上で、ぶつかりあっていないと良いものは出来ないんだろうと想像しています。プログラミングだって同じはずで、本来は対等なんですよね。

アジャイル開発でいうスクラムだと、原作はプロダクトオーナーで、作画がプログラマになりますね。さしずめ、スクラムマスターは編集者でしょうか。そこでも、どちらかが一方的に強いという力関係が発生すると良いものはできません。やっぱりプログラマは、ただ言われたことだけをする単純労働者ではないのです。

プログラミングの教科書によくあるのは、課題があってそれを実装しましょう、というものですが、それは「何を作るか」の部分が省かれてしまっています。「どう作るか」は訓練することが出来ますが、「何を作るか」はあまり教育でどうこうできるところではないのでしょう。その辺りも漫画の描き方の訓練と通じるところがありそうです。

私たちソニックガーデンで目指すビジョンでは、プログラマはアーティストのように扱われるような業界にしたいという思いがあります。プログラムは、そのプログラマの作品であり、かつ商品としての価値も求めていきたい。それを考えるとき、漫画家というのは参考になりそうです。

なので、「ハッカーと画家」というよりも、「プログラマと漫画家」が似てると言った方がしっくりきています。ただし、私の漫画家の知識はバクマンを読んだ程度なので、間違ってるかもしれないのであしからず。