小飼弾×増井雄一郎が大激論! 開発者「大増殖時代」の到来で、プログラマーの存在意義はどう変わる?
Webサービスやスマートフォンアプリの隆盛、プログラミングを簡易化する各種フレームワークの普及……。ここ最近、文系学生が就職の武器としてプログラミングを学ぶほど、「創る人」の数が増えている。
とりわけフロントエンドで顕著なこの傾向。「1億総Webアプリ開発者の時代が来た」といったような過激な記事も出始めている中、IT・Web業界ですでに仕事に取り組むプログラマーの役割はどう変わっていくのか。
「コードが書ける」こと自体が付加価値ではなくなりつつある今、プログラマーの存在意義はどこに置かれるようになるのか。
そんなテーマについて話してもらうため、豊富な見識を持つアルファブロガー小飼弾氏(写真右)と、アプリSDK『Titanium Mobile』の開発者として知られ、最近はRubyでネイティブのiOS/Androidアプリを作成できるフレームワーク『MobiRuby』を発表した増井雄一郎氏(写真左)に集まってもらった。
対談場所は、小飼氏の厚意でご自宅に。リラックスムードながら核心を突く2人の言葉から、時代が変わり続けても一流の開発者であるための生き方を探る。
小飼 おそらく、同様のプロダクトを作成するのに書き下ろさねばならないコード量は、以前の100分の1程度にまで減っていると思います。しかし、プログラマーがコードを書く仕事自体が減っている、ということはないでしょう。コーディングできるプログラマーがほしいというビジネスシーンが、以前の1万倍に増えているからです。
増井 需要の拡大は、僕も現場で強く感じますね。
小飼 つまり、プログラマーに対する需要は100倍になっている。現状では、SDKやフレームワークの台頭がプログラマーの雇用を食うというところまではいってないんじゃないかな。
小飼 まぁ、わたしや増井さんが開発したフレームワークやライブラリによってプログラミングの省力化が図られて、1万人くらいのプログラマーが仕事を失ったかもしれません(笑)。それでも多くのプログラマーの職を奪うところにまで及んでいないのは、今お話した「新しい別の需要」がどんどん発生しているからですよ。
「ネット社会が生んだ呪い」がプログラマーを苦しめる!?
増井 そうですね。歴史を振り返っても、どんな産業も自動化されるものは最終的に何でも自動化されてしまいます。フレームワークや開発自動化ツールで代えが効くものは、いつかはそれらに置き換えられていきますが、そうでない場面も非常に増えている。
小飼 例えば、あるWebページのパーツの色調整なんかは、以前より一段と大変になっているなぁと。それに、一昔前までは、システムなりサイトが動いた時点が「完成」だったでしょ? でも今は、動いてからが仕事の始まり。UIやUXを考えて、色はどうしよう、ページとページのトランジションはどうしようなどと、複雑なコーディングを必要とするインタラクションは本当に増えました。
増井 そうですよね。前は、一度リリースしたものはもうイジれないという前提がありました。それが最近は、ネット上で公開したものは、継続していくらでも改良できるという考えが一般的になりつつある。この変化はすごく大きいと思います。
小飼 「いつでも直せる」というのは、「いつでも直さなきゃいけない」ということの裏返し。プログラマーにとって、諸刃の剣みたいなものなんですけどね。まさに、ネット社会が生んだ呪いですよ。
増井 小飼さんも「呪い」という言葉を使われるんですね(笑)。僕も手離れの悪いプロジェクトのことを「呪われる」と呼んでいます。
小飼 コードを書いて、「動いた、はい完成。これで僕の仕事はおしまい」という風になりにくいのです。
開発者たれ。作業者はこれから淘汰される
小飼 増井さんは、昔に比べて”開発者”と”作業者”をきれいに分業できるようになりましたか? 例えばライブラリを作る人と、それを使う人みたいに。
増井 一時期分業を目指した時期もありました。でも、現実問題として、完ぺきに棲み分けされることはありませんでしたね。例えばRuby on Railsを使って開発を進めていると、確実に本体の方にも手を入れる必要が出てきます。
小飼 そうですよね。ただし、これまでも”作業者”として仕事をしてきたプログラマーにとっては、「稼ぐための職業」という意味で、より厳しい状況になっていくのは間違いない。今って、ちょっとググれば、深い部分まで突っ込まなくてもひとまずプロダクトを作れますから。
増井 これから、その流れはさらに強まるでしょうね。スタイルシートは一応使えるんだけど、きちっと理解しているわけではないっていう人、増えてますからね。HTMLは使えるけど、XMLは理解していないとか。本来ちょっとおかしいんだけど、その人たちも今は食えています。
小飼 僕は、プログラマーには「現場寄り」と「理論寄り」の2種類の人間がいると思っているんですよ。例えば、HTMLが使えればいいやって言う人は「現場寄り」で、HTMLを使うならXMLも勉強しておかなきゃと思う人が「理論寄り」。増井さんのお話では、「現場寄り」のスキルだけ身に付けてプログラマーをやっている人が増えているということですよね。
「続けること」と「プロになること」。それぞれに課題がある
小飼 そうかもしれないし、そうじゃないかもしれない。そもそもこういう現象って、さっき増井さんも言っていたように、どの業界でも起こってきたことなんです。業界の黎明期というのは、それをやっているというだけでお金をくれる人がいます。しかし、業界が成熟していけば、開発手法も効率化されていくし、技能だけでは評価されなくなっていく。
増井 そうですよね。
小飼 だから、業界の黎明期からいる人にとっては「続けること」が課題となり、これから入ってくる人にとっては「プロになること」が課題になる。
増井 黎明期からいる人たちが長く続けていくために、僕は20年ぐらいの周期で訪れる大きなパラダイムシフトを越えられる力が大事になると思っています。インターネットが普及し始めたことで、プログラマーに求められる知識も変わっていったように。
小飼 確かに。でも、一番大事なのは、本人が開発者として続けたいか、それとも辞めたいかじゃないかな。プログラミングがホントに好きな奴は、「パラダイムシフトなんてクソくらえ」の意気込みで新しい言語を覚えて、続けていくじゃないですか。
業界の高度化により、技術選択の過渡期へ突入
小飼 インターネットが登場した時ほど大きな変化じゃないけど、メイン端末がPCからスマートフォンやタブレットに変わりつつあるのは大きいよね。それと、いよいよ開発言語の淘汰が進んでいるように思う。特にクライアントサイドで「稼げる言語」はどんどん減ってきているというか、淘汰圧がかかっています。ノーチョイスなわけです。
増井 そうですね。あくまでも私見ですが、クライアントサイドで残りそうなのはJavaScriptかJava、Objective-C/C++の3択です。あと、もちろんRubyも、ですね。
小飼 僕はJavaもどうかと思っているけど。Androidアプリの開発って、なかなかお金になりにくいでしょ。まぁ、ここまで普及し切っていると、突然「過去の言語」になることはないでしょうけど。逆に、サーバサイドは自由度が増しています。
増井 データベースもそうですよね。MySQLをやめて、MongoDBとかNoSQLみたいにほかのを選択することができるようになってきた。ただ、サービスが作りたいだけでプログラミングはそれほど好きじゃない人にとっては、選択肢がない方が楽なんです。
増井 やることが決まっているから、あとは時間をかけて勉強するだけなんですよ。
増井 でもわたしは、やっぱりプログラマーとしての基礎力がないと、パラダイムシフトが起こった時に乗り越えられないと思います。おそらく3年から5年ぐらいは、それでも食っていけますが。
小飼 増井さんの指摘は至極ごもっともなんだけど、だからといって「jQueryから入った人も今すぐほかの言語構造から学び直さなきゃいけない」って話じゃないと思うんですよ。そういうのは、実際壁に当たってから考えればいいわけで。コードを書くことより、サービスを作るのが好きだという人は、「基礎が大事だよ」って言われてもピンとないはずですから。
増井 これはもう、シコウ(志向|思考|嗜好)の問題かもしれないですね。確かにどっちが良い・悪いという話じゃない。
「恥を捨てる」、「言い出しっぺの法則」で壁を突破する
増井 人のソースコードを読んだり、本を読んだりしながら学んできました。本に関しては、とにかく「基礎の本」を読みますね、構造から知る意味でも。C言語をやっていた時はドラゴンブック(※編集部注:『コンパイラ―原理・技法・ツール』のこと)を読んで、そこからさかのぼって基礎的な技術を学んでいました。
小飼 Rubyで有名になり始めた時はどうしてたの?
増井 メーリングリストでコミュニティーに聞いたり、アポイントを取って実際に書いてる人に会いに行ったりしてましたね。
小飼 今の増井さんの話に、長く第一線で活躍する開発者の条件が隠されていますよ。それは、「恥を知れ」という言葉を知らないということ(笑)。分からないことはどんどん人に聞けばいいんです。いわゆるデキるプログラマーって、一見偉そうに見えるかもしれないけど、みんなそんな大した仕事をしてるわけじゃないんだから。
増井 自分が昔メーリングリストに投げたメールを見ても、相当恥ずかしい質問をしていますね(笑)。それにわたしの場合、そこでのやりとりが、後々仕事につながったりもしています。Titaniumの開発メンバーになるきっかけも、実際にオープンソースに参加しながら「ここが使いにくい」、「よく分からない」とケチをつけているうちに、「だったらお前がやれ」となった。
小飼 あ、長生きする開発者の条件その2に、「言い出しっぺの法則」というのもあるね。そういう人に仕事が集まってくる。
「この業界には、増井さんのような一流の趣味人が必要」
増井 その法則があるからこそ、コミュニティーではみんながけん制し合って、誰も修正点を指摘しないという現象も起こってしまうわけですが(笑)。
小飼 文句があるということは、そこにマーケットがあるということなんです。それでも誰も手を上げないのは、フレームワークを改良したところで、お金にならないケースが多いから。JavaScriptなんて、本当は誰かが整理しないともうダメなのに、掛ける労力に見合った報酬は得られないでしょう。Rubyのような形で普及していったケースは希少ですよ。
増井 そうですね。僕自身がそうですが、過去に作ったフレームワーク自体が商売になっているわけではありません。だから労力を割きにくい。こないだ発表した『MobiRuby』も、趣味で作っています。
一応、Titaniumとの兼ね合いがあったので(Appceleratorの)社長に確認を取ったら、「作ってもいいよ」と言われたのですぐに始めたんです。これ自体は商売にならないので、自分の技術的興味と、自己PRを兼ねて作っています。
小飼 この業界にはね、増井さんのような一流の趣味人が必要なんですよ。仕事だけの人だけだったらつまらない。
小飼 それを考える上で一つの指標になるのは、「中島聡になれる人と、そうじゃない人」の違いを知ることじゃないかな。
中島聡になるには、人並みならぬ「好奇心」とある「幸運」が大事
増井 あ、そのたとえは分かりやすいですね。
小飼 中島さんとは何度かお会いしたことがあるし、著書の『おもてなしの経営学』は好きな本の一つなんですよ(※編集部注:小飼氏の書評はブログ参照)。
小飼 それと、もう一つ大事なポイントがあります。中島さんがああやって好きなことを仕事にしていられるようになったのは、古川(享氏。元・日本マイクロソフト会長)さんのような希有なプロデューサーと出会えたからだと思うんです。中島さんの知的財産を現金化して既得権益を確保し、世の中にインターフェースする存在が古川さんだった。そういう理解あるプロデューサーに恵まれないがために、世の中に出られないプログラマーは非常に多いですよ。
増井 仮に両方できる才能があっても、プロデューサーをやろうと思うプログラマーは少ないんじゃないですか。小飼さんを見ていても、プロデューサーの仕事は難しそうですよね。
小飼 中島さんのような一流のプログラマーになるのが相当難しい反面、プロデューサーになるのも同じくらい大変。プログラムを書くことより、人を育てるのが好きじゃないと務まらないからです。わたしも昔、CTOをやっていたライブドア時代はプロデューサー的な仕事をしていたけれど、本心ではプログラマーでありたいタイプですよ。
増井 なぜですか?
小飼 今は、幸いなことに金銭的なインセンティブで動かなくても良くなったから。わたしの経験上、プロデューサーの仕事は、金銭的インセンティブが動機付けになることがほとんどじゃないかな。
小飼 やり方の一つは、「俺が良いものを作る、だからおまえも続け」です。でも、それではマイクロソフトやグーグルのような組織は作れません。自分よりも優秀なプログラマーを動かせないとダメですから。その優秀さを見極めたり、彼らをマネジメントをするためにも、自分も一流か一流半くらいの開発者であることが求められる。きっと、コードを書くことも、人を育てることも、どっちも好きじゃない人がSEになるんじゃないかな(笑)。
“不満ドリブン”で作り続けるのも、息の長いプログラマーになるコツ
小飼 はい。さらに付け加えると、「コードが好きな人」も2種類に分かれます。書くまでのプロセスが好きな理論派と、モノが動くのが好きな人。後者は、仕組みが分かっていなくても動けばいい。そして、後者の方が絶対的に数は多いです。逆に前者は、理論として「できる」と分かった時点で満足してしまう。
増井 完成させられないんですよね。ロジックができても、ビューを作るのは時間がないし面倒とか。
小飼 わたしはどちらかというと理論派。でも、人に説明する時は動くものを見せないと分かってもらえないから、ある程度までは作るわけです。
増井 僕も理論派の部類に入るかもしれませんが、バランスを取りながらやっています。自分のやりたいこと、考えたことを「masuidriveの作りたい物&試作品リスト」にしてWebで公開しているんですが、半分ぐらいはすでにデモがある状態です。
小飼 ただでさえ忙しいのに、やることばかり増えて大変だよね。
増井 そうですね。今も寝ているとき以外は、ほとんどコードを書いています。
小飼 そういう性分だと、移動中なんかがプログラミングする一番ベストな時間だったりするでしょ?
増井 あ、そうなんですよ! 実は『MobiRuby』も、アメリカから飛行機で移動する14時間で、ある程度書いてしまいました。
小飼 いや、実際はそんなことないんですよ。やりたいことがない人も、「もっとこうなってほしいのに」と思うシーンって多々あるでしょ。そういう、”不満ドリブン”で開発し続けるという道もあるわけですから。
増井 そうですよね。僕が「やりたいことリスト」の話をすると、「わたしにはやりたいことがなくって……」と相談してくるプログラマーも少なくないんですね。でも、不満やもったいないという気持ちがアイデアのベースになっていることは、僕もけっこうあります。
小飼 人様にやらせたくないことを、やらせないようにする。世の中、プログラムで改善できることはとても多いんです。だから、「良い仕事がない」なんて言っているプログラマーがいたら、それは嘘。そういう人が大事にしているのは、作ることじゃなくて結局「給料がもらえるかどうか」なんですよ。
これからは「人が見えるところで遊ぶ」ことが一流になる近道に
小飼 それに、報酬という意味で考えても、本当はプログラミングが好きな人の方が嫌々やっている人よりも得するんです。増井さんのように好きなことをやっていると、それができたこと自体が報酬になって、損益分岐点が低くなるから。
増井 プログラミングが好きな人って、無駄に働きますよね(笑)。
小飼 そう。そこが一番大切で、好きだからあっちへふらふら、こっちへふらふらしながら、知らないうちに技術力が高まっていく。そして、次第に大きな仕事も任されるようになっていくんですよ。お金だけがモチベーションの職業プログラマーよりも、数倍コードを書いているわけですから。
増井 効率を考えて最短距離で行こうとする人よりも、僕みたいなタイプは効率が悪いと思います。でも、そうやって社外のオープンソースプロジェクトなどに参加することで、言語の良しあしが分かったり、GitHub内での評価が高まったりします。
実際、Titaniumの開発メンバーとしてAppceleratorから声をかけられた理由の一つは、「社内の誰よりも、GitHubのフォロワー数が多かったから」と言われました。
小飼 これからの時代、プログラマーをやりたい人にとって、GitHubアカウントを持たなくて済むのは小学生までとなるでしょう。
増井 あはは(笑)。
小飼 でも、これはけっこう真面目な話で、ソーシャルグラフってお金では買えないじゃないですか。だから、どこにいてもお声がかかるようなプログラマーになるためには、増井さんのように「人が見えるところで遊ぶ」のが大事になるんです。それが呼び水となって、仕事も最新技術も得られるようになっていく。
小飼 そもそも、開発を商売にしている人たちは、フツーにしていちゃダメなんです。プログラマーにとって、「普通だね」という言葉はdisり以外の何物でもない。だから、人前で思いっきり遊ぶべきなんですよ。
取材・文/岡 徳之、萩原伸悟(ともにtadashiku,Inc.) 撮影/竹井俊晴
RELATED関連記事
RANKING人気記事ランキング
米国優位が揺らぐ?ひろゆき「CPUの進化でGPU神話って崩壊しません?」【AI研究者・今井翔太が回答】
NEW!
表面的なテクニックより「基礎基本の重要性」に気付かされた一冊【Node.js 日本ユーザーグループ代表・古川陽介】
AWS認定資格10種類を一覧で解説! 難易度や費用、おすすめの学習方法も
NEW!
正論モンスター化に要注意!ぎくしゃくしない「ミスの指摘」のコツ【澤円「コミュ力おばけ」への道】
社会で成功するゲーマーに、ひろゆきが聞く「現実世界を攻略できないゲーマーに足りないものって何すか?」
JOB BOARD編集部オススメ求人特集
タグ