CodeIQ MAGAZINECodeIQ MAGAZINE

CodeIQ MAGAZINECodeIQ MAGAZINE

未明の2時間半。一心不乱にコードに集中 ──中島聡流プログラミングの流儀 #OpenGL

2014.01.29 Category:ギーク・インタビュー Tag: ,

  • このエントリーをはてなブックマークに追加
1_MG_1453

米国マイクロソフト社でWindows95/98、Internet Explorer3.0/4.0 のソフトウェア・アーキテクトを務めたことで知られる、UIEvolution創設者の中島聡氏。

開発者としての日米にまたがる豊富な経験をふまえ、IT業界やそこで働くプログラマたちへ向けて、ブログなどで切れ味のよい提言を続けている。現在も毎朝4時起床してコードを書く現役エンジニアである中島氏に、プログラミングの流儀を聞いた。
by 馬場美由紀 (CodeIQ中の人)

未明に起きて仕事。昼寝は「18分間」と決めている

──現在はアメリカを拠点に活動されていますが、最近の中島さんの関心事は何ですか?

いま「VideoShader」というiPhoneアプリを書いています。OpenGLを活用したビデオフィルター開発のための開発環境。アプリの中のプリセットを使ってビデオにエフェクトをかけることができるし、もう少しこだわるとフィルターを自分で開発して遊ぶこともできます。

これは会社の仕事というよりは趣味なので、私が一人で書いています。とはいえ、片手間ではなく死にものぐるい。その辺でフルタイムで働いているプログラマより、よほど濃密に働いていますよ。

──一日どのぐらいコードを書いているんでしょうか。

時間の長さというより、その使い方が重要です。僕の場合は早朝が一番充実している。毎朝4時に起き、妻が起きてくる6時半までの2時間半が最も集中できる。その間はトイレも行かず、メールも読まず、一心不乱。

ただこんなに朝早いと1日持たないので、食事の後は昼寝をします。18分間と決めている。これが僕にとって最適のリフレッシュ。夜のテニスも週に2~3回やりますね。で、就寝は23時ぐらいかな。ダラダラやらない。メリハリをつける、というのが基本ですね。

──そのアプリを書くために、新たに勉強することも多いようですね。

iOSもそうだけど、OpenGLなんかは今年(2013年)に入って勉強始めました。OpenGLはもともとゲーム屋さんが使うライブラリなので縁がなかったけれど、ビデオ関係のアプリだからやらないわけにはいかない。集中して1カ月やったら、だいたい様子が見えてきました。

──若いときの集中力と、53歳になった今の集中力、違いがありますか?

ほとんど変わらない。意識しなくても、自然と自分の中からわき起こるんですよ。新しいものを勉強したいっていう意欲が。これがなくなったら、現役引退ですですが、幸いにもまだみなぎっています。

日本のエンジニアはなぜアメリカに勝てないか

──16歳でプログラミングに触れてから、現在までずっとコードを書いているわけでが、その持続力には驚きます。会社に入って数年もするとマネジメントをやるようになって、現場から離れてしまうプログラマも多いと思いますが。

これがまさに僕が一番問題視していることなんです。世界的に活躍しているIT企業、Google、Apple、Microsoft、Facebook……みんなアメリカの会社ですよね。なぜ日本はだめなのか。個々の能力では日本人が劣るところはない。勤勉な性格だし……。

根本の違いは、優秀な技術者がいつまでもプログラムを書いているかどうか、ということなんです。

特に理工系の修士号取得者。日本では大学を出て大手企業に入ると、そこではほとんどプログラムを書かない。仕様書は作り、ドキュメントも書くけど、実際のコードを書くのは子会社や外注やその下請けの人たち。僕はこういうのを「ゼネコンスタイル」と呼んでいます。

それに比べると、アメリカのソフトウェア企業は、バリバリの理系の修士号、博士号の人を採用して、その人たちを一生プログラマとして使い続ける。プログラマとして優秀であれば、ゼネラリストよりも高給を弾んでくれる。生涯プログラマでもリスペクトされる。 マネジメントはそれなりの専門職だから、それが得意な人に任せればいいという考え方。プログラマは一般に人の管理をするより、コードを書いていたほうが幸せだから。

──中島さんは、よくプログラミングを料理にたとえますね。

一流のシェフが自ら調理し、何度も失敗を重ねながら完成に近づけていくのと似ているんです。ところが日本では、本来ならシェフになるべき連中が、自分自身は料理をせず、紙にレシピを書くだけ。

実際の調理は、必ずしもプログラマになりたかったわけでもない人が書いている。これを直さない限り、永久にアメリカ企業には追いつけない。そのことを10年以上いろんなところで指摘しまくっているんだけれど、なかなか改善されないですね。

──最近はウォーターフォール型に対して、Web業界ではアジャイルという開発手法も導入されつつあります。まずはプロトを作って、試して、手戻りを重ねながら、開発を進めていく。

多少はそういう動きもあると思いますが、開発手法そのものが重要なのではない。組織のあり方のほうが重要なんです。ソフトウェア企業の組織構造をそのままにして、じゃあ、アジャイルで行こうというのは無理があります。コードも書けないゼネラリストがいくらアジャイルと叫んでも何も起こらない。正社員が自らコードを書くということを始めないと、何も変わらない。

「ソフトウェア工場」の発想から抜け出せ

──ただ、日本でも大手SIerにいた人が、自分のプロジェクトにもっと主体的に関わりたくて、Web系の企業に転職する例が増えています。

個々のエンジニアは危機感を抱いているということですよね。せっかく優秀なのにコードを書かせてもらえないのは、実にもったいない。そこから抜けていく人、自分で起業するような人は応援したいですね。もちろん、抜けられない人もいるだろうから、そういう人は会社の中で大暴れしろ、と言いたい。

──「ソフトウェア工場」の発想が日本のソフトウェア産業をだめにしたというお話でしたが、PCのOSのような大規模な開発では、工場のようにして作らなければならないのでは。

僕はMicrosoftでは比較的大きなプロジェクトに参画していたけど、Windows95だって最初始めたときは30人、IEも7人しかいなかった。そのぐらいだとすごくやりやすい。僕はソフトウェア・アーキテクトという立場にいたので、全部自分で決められた。まず自分でコードをざっと書いて、モジュール分けされたところで初めて担当者に渡すようにしました。

たしかにOSは1人では書けない。7人ぐらいだとまだスムーズにいきますが、それが100人、200人になると難しくなる。だから、大規模化は避けることが肝心。どうしても大規模になってしまう場合は、どこかで分散化することを考えないといけない。

それができないと、たいていは失敗します。Windows Vistaが失敗したのもそれですね。あの時点で、Vistaグループにはエンジニアが2000人もいました。管理に伴うオーバーヘッドが半端ではない。だいたいエンジニアの開発効率は人数が増えるごとに下がっていくというのが通例なんです。

僕なんかでも調子がいいときは、1日2000~3000行書けますが、Vistaのグループは、聞いた話では、1人あたり1日1.5行しか書けなかったといいます。つまりプログラマの頭数を増やしても、オーバーヘッドが増えるばかりで生産性は必ずしも上がらない。そういうジレンマに陥るものなんですよね。

続きを読む

(執筆:広重隆樹/撮影:刑部友康)

【中島聡さんインタビュー記事】
ビデオ・フィルター言語「Video Shader Script」を開発者・中島聡氏が熱く語る!
美しいコードに触れたとき、涙があふれ、アメリカに行かなければと思った──中島聡流プログラミングの原点
【ウチに来ない?】
問題を解くだけで、あなたのエンジニアとしてのスキルがわかります!
コード銀行:階段ピョンピョン123!

中島聡氏(なかじま・さとし)
1960年、東京生まれ、早稲田大学大学院理工学研究科卒業。UIEvolution Inc.のファウンダー。 マイクロソフトでWindows95、Windows98、Internet Explorer 3.0/4.0のチーフアーキテクトなどを務めた。現在シアトル在住。有料メルマガ「週刊 Life is beautiful」でも活躍。
UIEvolution: UIEvolution
ブログ: Life is beautiful

CodeIQコード銀行にあなたのコードを預けてみませんか?

  • CodeIQコード銀行ではあなたのコードを財産と考えます。
  • お預かりいただいたコードは、CodeIQコード銀行がしっかり評価し、フィードバックいたします。
  • 当コード銀行にお預けいただいたコードは、企業がみてスカウトをかける可能性があります。
  • 転職したい方や将来転職することを考えている方で、今の自分のスキルレベルを知りたい方はぜひ挑戦してみてください。
  • 企業からスカウトがきたら困る人は挑戦しないでください。

興味を持った方はこちらからチャレンジを!

  • このエントリーをはてなブックマークに追加

■この記事を書いた人

avatar

馬場美由紀 (CodeIQ中の人)

エンジニアの勉強会やイベントレポート担当。技術やキャリアに関するエンジニア向けお役立ち情報もお伝えしていきます。面白い情報があったら教えてね!酔ったら記憶なくす記憶飛部所属。Twitter:@miyaq

■関連記事

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ