「クリエイティブ供給過多時代」を勝ち抜く―未踏エンジニア・堀田創のキャリア論(1)

スーパークリエーターの発掘・育成を目的とした『未踏ソフトウェア創造事業』に2度選出された堀田創さん(ネイキッドテクノロジー元 CTO)。現在は次なるビジネス立ち上げに備え、海外を視察しているという。そんな堀田さんに「これからの時代を生き抜く上で必要なこと」「狙い目になるキャリア」について伺った。

■Web 開発は、国境を越えていく

世界中でアウトソーシング・プラットフォームが立ち上がり、今やあらゆる国の優秀な企業やフリーランサーにタスクを委託できる時代。海外では Web 開発のアウトソーシングが既に常識となりつつある。

近い未来、間接的にせよ直接的にせよ、日本でも、外国人エンジニアとの競争を余儀なくされる場面が増えてくるだろう。

IPA 主催の未踏ソフトウェア創造事業に2度選出された堀田さん。博士号取得後、インターンシップでアメリカに1年間留学し、帰国後にネイキッドテクノロジー CTO に就任。

現在は、ネイキッドテクノロジーの売却に成功し、次なるビジネス立ち上げに向けて海外企業を視察しているという。

“Web 開発のグローバル化”をリアルに肌で感じてきた堀田さんならではの視点から語られる、これからの時代をサバイブするためのキャリア論とは。

■食いっぱぐれないエンジニアは『職人タイプ』


―堀田さんは、ベンチャーの経営に携わり、多くの外国人エンジニアを採用してきたと伺いました。グローバルな視点から、どういったエンジニアが優秀だと思われますか?

大きく2つのタイプに分かれると思っています。まずはちゃんとビジネスのことがわかっていて、アイデアをカタチにできる『アントレプレナータイプ』。

もうひとつはコーディングが緻密でスピードも速く、エンジニアリング上の問題を解決できる『職人タイプ』ですね。

―それぞれの定義を教えてください。

『アントレプレナータイプ』は、“誰もやっていない価値のあるアイデア”を見つけて実現できる、クリエイティブに秀でたタイプです。

もちろんアイデアが出せるだけではカタチにならないので、“どの技術を使うことが最適か”と見極められ、開発チームをリードしながら、“アイデアをビジネスとして成立させられる人”を指します。

もうひとつの『職人タイプ』は文字通りの職人気質で、いわゆる“きれいなコード”が書けるエンジニア。当然ながら、与えられた問題を高速で解くことのできる人です。

私がネイキッドテクノロジーでエンジニアを採用する際は、アルゴリズムの問題を出して、「問題を解くスピード」と「緻密さ」を見るようにしていました。ホワイトボードにコードを書いてもらって。

このコーディングテストだと、日本人よりも外国人エンジニアのほうが評価は高かった。もちろん、ちょうどその頃ソーシャルゲームが盛り上がっていて、優秀な日本人エンジニアがそちら側にとられていただけかもしれませんが。そんなこともあって、結果的に外国人を採用することが多かったですね。

■コミュニケーションに“コスト”のかかるエンジニア


―これからの時代にマーケットで必要とされるタイプは?

圧倒的に『職人タイプ』のほうが需要はありますね。

いま“Web”というマーケット全体をみると、日本の中では明らかに“クリエイティブな人材が供給過多”な状態になっています。

Web ビジネスで起業したい人ってどんどん増え続けていますよね。「アイデアがあって起業したい。でもコーディングは得意じゃない」こういうタイプの方が増えているように思うのですが、彼らが求めているのは、作りたいものを忠実に再現してくれる『職人タイプ』のエンジニアです。

私自身、最低限のコーディングはできるけど、きちっと高いクオリティのコーディングを実現できるエンジニアというわけではありません。だからやっぱりエンジニアリングに長けた『職人タイプ』がほしいんですよ。

コミュニケーションに“コスト”のかかるエンジニア

―「経営者がほしいと思う職人は食いっぱぐれない」というわけですね。

そうですね。特に私のようなエンジニアから経営者になったタイプだと、『職人タイプ』との仕事を好むんですよ、開発スピードが上がって効率的なので。

たとえば、写真のストレージをつくろうと思った時、「ファイル容量を圧縮するか」「スピードをどれくらい犠牲にしていいか」こんなふうに、ほとんど論点は決まっているんですよ。でも、わざわざ口に出して説明しなきゃいけないのはコストになる。

前提が共有できていて、知識を持った『職人タイプ』のエンジニアと仕事すると、「ここが解決されるといいよね」と話すだけで、解決する。

だから「コミュニケーションコスト」が削減できるエンジニアと働きたいんです。仕事がスイスイ進んで行くのってすごく気持ちいいので。

■コンピュータサイエンスの基礎を学ぶ意義

―『職人タイプ』の中でも、特に優秀なエンジニアが持つ“共通のスキル・知識”はあるのでしょうか?

コンピューターサイエンスの基礎知識を体系的に習得していること、ここは共通している部分ですね。

―“コンピュータサイエンスの基礎知識”とは?

そもそも OS ってどんな構成で作られているのか、通信とはどのような仕組みで始まるものなのか、こんなふうに「構造」や「仕組み」を理解しているかどうかです。

コンピュータサイエンスの基礎がないエンジニアは、“できるとわかっていることはできる”けれど、“できるかどうかわからないことを解決する”という能力が弱いと感じます。

実際、過去に Android アプリをつくっていた時、漢字変換機能が上手に呼び出されないという問題と直面したことがありました。エンジニアが OS のコードを読まなきゃいけない場面も多かった。

そんな時、あるフランス人のエンジニアは、すぐに“解決までの道のり”を複数パターン提示してきて、最適解を高速で導き出すことができたんです。

“漢字変換”とはどんな仕組みなのかを知っていて、どう OS に割り込ませたら互換性が保てるか瞬時に考えられる。これって OS の構造を知らないとできないことなんですね。
―そういった知識は働きながら身につけられるのでしょうか。

いまの日本の現状を考えると、働きながら習得するのはかなり難しいのかもしれません。長期休暇をもらって勉強したりできないですからね。

雇う側としても知識のない人に任せる余裕はないですし、どうしても即効性のあるエンジニアが持てはやされてしまう。なので、大学院や研究所で学んできた人はやっぱり強いと思います。

海外をまわって気づいたんですけど、日本はそれほど学歴を重視していない国のように思います。

アメリカやアジアの国々では、明らかに学歴を重視する傾向があります。「優秀な大学を卒業している=優れた能力を持つ」という前提が成立しているんです。

実際、マスターをとっているエンジニアはかなり優秀だと思います。知識の量と幅が圧倒的に違う。

新しい概念が出てきた時も「どう成り立っているか」と自然と考えられるんですよね。だから、より本質に近いところで問題解決の糸口が見つけられるのだと思います。

(つづく)
※次回は、世界を知る堀田さんの視点からみた“日本人エンジニアの武器”について伺います。

コンピュータサイエンスの基礎を学ぶ意義
[取材協力:『co-ba library』東京都渋谷区渋谷3-26-16 第5叶ビル6F]

記事提供:CAREER HACK