Forkwell Press

エンジニアの生き様をウォッチするメディア

ソースコードにアクセスできるハードウェア「IRKit」を作った理由とは? - Nature 大塚雅和(mash)氏

この連載では、「Forkwell Jobs」の開発にも関わるフリーランスエンジニアの後藤大輔 (@idesaku) が、さまざまな企業で働くエンジニアとリレー形式で対談を行っていきます。

今回のゲストは、元カヤックのエンジニア、そして学習型リモコン「IRKit」の作者として知られ、現在はベンチャー企業「Nature」のファウンダー兼 CTO を務めている大塚雅和 (@mash) 氏です。

カヤック時代に「wonderfl」や「ナカマップ(現 Lobi)」など、多くの著名なサービスの立ち上げに関わった大塚氏は、同社在籍時より手がけていた「IRKit」を完成させるために独立。ハード、ソフト両面での製作、工場の発注までを「1人スタートアップ」状態でやり遂げた人物として注目を集めました。現在では、Nature において、CEO の塩出晴海氏とともに、IRKit の次世代版とも言える「Nature Remo」の開発と普及に尽力しておられます。

ソフトウェアエンジニアとしてのキャリアを積む中で「IRKit」のようなハードウェアの開発にこだわった理由はなんだったのか。スタートアップで「Nature Remo」の開発に取り組むこととなったきっかけ、そして、将来的に目指す方向性などについて、お話しを聞かせていただきました。

今回のリレーインタビューは2部構成にてお届けします。

執筆:高橋美津



idesaku:
前回ご登場いただいた堤修一さんからのご紹介で、今回のリレーインタビューは Nature の大塚雅和さんにお話しを伺います。よろしくお願いします。

mash:
よろしくお願いします。

idesaku:
堤さんは、大塚さんについて「カヤック時代の先輩であり、自分に大きな影響を与えてくれた方」と話していらっしゃいました。「ソースコードの公開がまだコワイなら、技術ブログを始めたらどうか」と大塚さんに言われたことが、ブログを始めたきっかけだったということでしたね(※前回参照)。

mash:
へぇ、彼がブログを始めたのは、僕の影響だったんですね。知りませんでした。

idesaku:
あと、「プロダクトを作る際に、まず全体像をイメージしなければならないのに、自分がそれをサボってコードを書き始めているのを見た大塚さんから『実装に逃げるな』と怒られた」という話も…。

mash:
え? ホントに? 偉そうなヤツだなぁ(笑)。…いやぁ、もしかしたらそんなことも言ったかもしれないんですが、それらのエピソードには、多分に彼のバイアスがかかっている気もしますね。

idesaku:
そういった部分も含めて、堤さんは大塚さんからかなり大きな影響を受けたとおっしゃっていました。今回のインタビューでは、堤さんが「恐れ多くて直接聞くことができない」、大塚さんの人生観や開発者としての哲学について聞いて欲しいというリクエストをいただいています。

mash:
(笑)…彼がイメージとして僕を「上」に見ているようなふしがあるのは、カヤックに応募してきてくれたときに、あるタイミングで僕が面接をしたというのが大きいんじゃないかと思います。

彼はもともとエンジニアリングをやっていたのですが、1回目の応募のときには、プロデューサーやディレクション的な立場を希望していました。僕のほうは、当時エンジニアに対する評価軸しか持っていなかったので、「エンジニアとしてやっていきたいというのであれば、これまでのキャリアから何らかの評価ができると思うが、別の立場での仕事を希望しているのであれば、僕からの評価はニュートラル以下になってしまう」と話をした記憶があります。結局、1回目の応募では、彼は落ちてしまったんです。

その後、エンジニアとして再チャレンジしてきてくれて、結果的に採用に至りました。そのときのことが、強く印象に残っているのかもしれないですね。

idesaku:
たしかに、堤さんにとって、カヤックでのキャリアは「第二の人生」のスタートとも言えるような大変化だったでしょうからね。

mash:
今、彼は iOSエンジニアとして有名になりましたが、そもそもカヤックに入るまでは iOS もやっていませんでしたからね。入社までの経緯はともかく、今、彼が第一線を走っていられるのは、ほかの誰でもない、彼自身が相当に頑張ったからだと思います。

idesaku:
ちなみに、堤さんがカヤックに入られてから、一緒のプロジェクトでお仕事をされたことはなかったのですか。

mash:
そういうのはほとんどなかったんじゃないかな。当時のカヤックは「ゲーム」のチームと「それ以外」のチームに分かれていて、彼は「ゲーム」で、自分は「それ以外」をやっていましたから。

ソフトウェア開発に感じはじめていた「限界」とは

idesaku:
大塚さんは今、Nature で「Nature Remo」を作っていらっしゃるわけですが、世間的には「IRKit」の人として認知している人も多いのではないかと思います。

mash:
そうですね。

idesaku:
「IRKit」の開発については、カヤックに在籍していた頃からスタートされたと伺っているんですが、率直に言って「カヤックは、よくそれをやらせていたな」と思うんです。同社って、基本的にソフトウェアを作る会社ですよね。一方、「IRKit」はソフトウェアも重要ですが、むしろハードウェアがなければ成立しないプロダクトです。当時のカヤックには、ほかにもそうした形でハードウェアに関われている方がいたのでしょうか。

mash:
いないですね。勤務時間内に基板いじるようなことをやっていたのは自分くらいでした。

idesaku:
そうした、前例のないことに事業として着手するには、やはり経営に対して事業計画書を出して承認をもらって…というような一般的な手続きが必要だったのですよね。

mash:
ええまぁ。当時のカヤックではそれほど形式張った手続きは必要なかったのですが、公認された研究開発の一部としてやっていました。

僕はカヤックに入社してから3~4年ほどの間、通称「ぶっこみチーム」と呼ばれていた新規事業の研究開発チームに所属していたんです。いわゆる「0から1をつくる」ことがミッションのチームで、僕はそこで、とにかく新しいサービスを次々と大量に作っていました。いくつか実績も生まれ、経営からの信頼も得られてきている中で、わりと自由に新しいことをやらせてもらえる環境だったんですね。「IRKit」も最初はそうした中で手がけていました。

idesaku:
ちなみに、「ぶっこみチーム」で立ち上げたプロジェクトというのは、どのように育てる体制になっていたのですか。

mash:
最初は、とにかく「ユーザーが集まる」ことを目標として、ビジネスモデルなどはあまり綿密に作りませんでした。この段階でダメになるものも多いのですが、しばらく回してみて「芽がありそうだ」という段階に入ると、ビジネスメイキングができる人、デザイナー、エンジニアと、少しずつ関わる人を増やしていき、最終的にうまくまわりそうなめどがついたら、「ぶっこみ」の人間は後を任せて次の事業作りにとりかかる…といった感じでしたね。

idesaku:
そこで築いた実績があったからこそ、ハードウェアが関わってくるような未知の領域にも取り組むことができていたんですね。大塚さんは、もともとハード方面への興味や関心はあったのですか。

mash:
そうですね。カヤックの中でソフトを作り続ける中で感じ始めていた限界を超える力を「ハード」に感じていたというのはあると思います。

idesaku:
「限界」ですか。どういった意味での限界なのでしょう。

mash:
僕が新しい企画を生み出すときのヒントとして、「新しい技術」を使うことで、これまでにない「面白いサービス」が作れるという発想があるのですが、長くソフトだけを作っていると、だんだんと「技術力」よりも「企画力」のほうが重要になっていると感じられるようになったんですね。Web でできることというのはおおかた決まっていますし、iOSアプリでも Apple が出す新しい API を使うことで「新しいアプリ」は作れるものの、それを飛び越えたものは作れないですよね。

idesaku:
あくまでも、Apple が決めたルールの上でやっていく必要があるという意味では、たしかにそうですね。

mash:
自分としては「新しい技術の力」と「企画の力」の双方がそろった結果として「面白いサービス」ができあがるというのが「自分らしい企画」だと思っているのですが、だんだんとソフト的に新しい「技術力」が重要な場面というのは減ってきて、既にある技術をどのように使うかという「企画力」のほうがより強く求められているように感じ始めていたんです。

僕がカヤックを辞めたのは2013年の年末でしたが、だいぶ前からそういうことを考えていて、「IRKit」には退社の半年前くらいから着手していました。

idesaku:
カヤックがこれまでに立ち上げてきたサービスの一覧を見ると、大塚さんの名前を多く目にします。これらについては、初期の企画、開発から携わられたのですよね。

mash:
そうですね。

idesaku:
これだけ多くの立ち上げをやってきた実績を考えると、時代の流れで「企画力」重視の傾向が強くなっているとしても、十分にやっていけるような気がします。それでも、やはり「技術力」を前面に出せる分野でやっていきたかったということなのでしょうか。

mash:
もちろん、新しいプロダクトを作るときには「こういう人に、こういう風に使ってもらいたい」ということを思い描きながら「企画」をします。でも、僕にとっては、企画した内容を、自分で手を動かして作っていく過程が一番楽しいんです。

「IRKit」を例に取れば、「家電がコントロールできて、開発者に近い人たちが内部をハックできるような製品を作りたい」という思いで企画しますよね。それを事業化していくにあたり、チームにハードのエンジニアを入れて、ソフトの開発者を入れてという形でメンバーを増やしていくと、自分は「それ以外」のことをやっていくことになるんですが、実際のところ「それ以外」が、僕、全部苦手なんですよ。得意、不得意の落差が激しいというか。

idesaku:
組織の中で、事業の芽を作って育てていくという過程の中に極端に苦手なフェーズがあるということなんですかね。

mash:
いわゆる「マネジメント」と呼ばれるようなことですね。

idesaku:
でも現在、Nature でファウンダー兼 CTO として活動されていることを考えると、特別、人と関わることが苦手というわけでもなさそうなのですが。

mash:
うーん…たぶん苦手ですね。

idesaku:
苦手なんですか(笑)。

mash:
話しかけられて、それに答えるというのは別に苦ではないのですが、自分から話しかけていくようなことが得意ではなくて。なんて言えばいいのか…「集団としての人間」に対する関心はあるんですが、「個人」に対する興味が薄いのだろうと思います。そんな感じなので「チームを率いて何かやっていく」というのが、ツラいんです。

idesaku:
「個人」ではなく「集団としての人間」ですか。ある属性を共通に持っている人たちを抽象的に捉えている…といった感じなのですかね。ちょっと難しいですね。すると、Flashクリエイターのコミュニティとして一斉を風靡した「wonderfl」なども、大部分を1人で作られていたのでしょうか。

mash:
あれについては、非常に気心が知れていて、信頼できる少人数のチームでやっていました。あまり細かいことを指示しなくても、希望さえ伝えておけば期待以上の結果を出してくるようなメンバーばかりでした。そういう人たちと、意見を交換したり、一緒に考えたりしながら仕事をするのは好きですし、楽しいです。

idesaku:
とても「職人的」なチームでの作業だったのですね。

mash:
自分には、大きな集団を動かして、大きな成果を出していくようなことよりも、そういうチームの1人として仕事をするほうが、きっと性に合っているのだと思いますね。

会社を辞めてでも「IRKit」を完成させたかった理由

idesaku:
とても興味があるのは、「会社の中で新しいものづくりをしていく」ことの一環として、「IRKit」のようなものを手がけてみるというのは分かるのですが、最終的に社内で商品化することが厳しいと分かったときに、それを買い上げてまで「個人」でやっていこうとされたことなんです。

ハードも含めたものづくりは、それまで手がけてこられたソフト開発とは違ったフィールドで、そこで長くやってきた競合もいると思います。さらにそれを個人の立場で資金を工面しつつやっていくというのには、大げさではなく「人生賭ける」くらいの覚悟が必要だったんじゃないかと思うんですよ。それでも「やろう」と思った動機は何だったのでしょう。また、その決断に「恐れ」のようなものはなかったですか。

mash:
それはいい質問ですね。自分でも「よくやったな」とは思います(笑)。実際「ハードウェアスタートアップ」みたいなところって、現状でも数はあまり多くないんですよ。

idesaku:
コンピュータとネットさえあれば何とかなるソフト系と比べて、ハード分野は参入することだけでも大変なイメージがあります。

mash:
「何でやったのか」と問われれば、当時の自分に「IRKit」を作りたい理由がたくさんあって、かつそれがとても強かったからだと思います。

作りたい理由を挙げていくと、ひとつは、先ほどお話しした「ソフトを作る中で感じていた限界」を超えるために、ハードを含めたより自由な発想でものづくりを続けたかったということ。

もうひとつは、自分自身が世の中にある「リモコン」というものに対して、さまざまな不満を感じていたということ。それは、機器ごとのリモコンに電池が必要だったり、すぐにどこに置いたか分からなくなってしまったり、そもそもデザインがよくなかったりといったことで、それを解消したいと考えていました。

さらに大きな理由は、IRKit を通じて「作る人を増やす」ことで、世の中を少しでも良くしていくことができると信じていたことですね。

idesaku:
「作る人を増やす」ことで世の中を良くしていくというのは、カヤックの経営理念でもありますよね。

mash:
自分はカヤックを辞めた後も、「作る人を増やす」という同社の理念には共感を続けています。これは、世の中を良いものにしていくにあたって、より具体的に自分の力を使いやすい方向性だと思っているんです。

実際、カヤックでサービスをいくつも立ち上げる中で、「これを作ったことで世界は少しだけ良くなったんじゃないか」と感じられる瞬間が何度もあったんですよ。

先ほど名前が出てきた「wonderfl」は、ActionScript をオンラインでビルドして、Flash ベースのアプリケーションを共有できるサービスでしたが、例えば、利用者が公開されているゲームを遊んでみて「どうやって作っているんだろう?」と感じれば、その場でソースを見て、改変して、再び共有するということができるようになっていました。難易度が高いゲームのソースを別の人がいじって、よりバランスが良いものにすることで、さらに拡散していくというようなことが自然に起こっていたんです。

こういった形で少しでも「ものを作る」ことに関わる経験をした人は、その後、完成した「ゲーム」や、そのゲームを「作っている人」に対してリスペクトや関心を持つようになると思うんです。wonderfl が持っていたそうした力は、ゲームに限らず「人間が抱えている課題」を解決していくために役立つだろうと思っていました。

idesaku:
実際、ソフトウェア開発の世界には、そうしたエコシステムが存在しますよね。

mash:
そうですね。開発のためのソフトウェアやミドルウェアとしては、現在 OSS が広く使われています。それを使う中で、何か疑問や問題が生まれた場合には、ググってみたり、ソースコードにあたってみることで、自分で変更を加えたり、Issue を作って修正を促したりできます。そうしたことを日常的にやっている開発者であれば、そのプロダクトや、それによって生まれたサービスに関心を持つし、制作者に対してリスペクトを感じると思うんです。

idesaku:
たしかに、その感覚は理解できます。

mash:
一方で、ハードウェアの分野では、まだまだそうした仕組みが十分に機能しているとは言えないと思うんですよ。特に「家電」のような世界だと、不具合があったり、故障したりした場合に「回路図と部品を取り寄せて、自分でいじったら直せた」なんてことは普通ないじゃないですか。

idesaku:
まぁ、「勝手にいじったらメーカー保証はなくなります」という注意書きで、内部をいじらせないようにしているのが普通ですよね。

mash:
そういう意味で、ハードの世界では、ユーザーとプロダクト、ユーザーと制作者との距離が遠いと感じていた部分があるんです。ソフト開発の世界で普通に行われているような、何かあれば自分で細部の情報にアクセスできて、修正して使っていけるような仕組みをハードの世界にも広げられると面白いだろうと思っていました。

「IRKit」は、一応「完成品」として売られていて、本体とアプリを入手すれば普通に使うことができますが、中身が気になるエンジニアは、いつでもソースコードにアクセスして自分でいじることもできるような環境を同時に作り上げていきました。

そうして開発を進める中で、面白い人との出会いもあり「こういう人たちと一緒にものを作れると楽しそう」などと考えているうちに抜けられなくなったというのが「IRKit に人生賭ける」ことになったいきさつですね(笑)。

idesaku:
私も「IRKit」は既に持っていまして、「便利だなぁ」と思いながらいろいろ試してはいるのですが、ではこれをベースに何か改善をしてみるかとなると、やはりまだ敷居は高いような気がします。

mash:
基本的にはそういうものだと思います。ただ、利用者が不具合を直したいと思ったり、より便利にしたいと思ったりした時に、まずは、そのソースにアクセスできる環境があるということが、より健全な状態だと思うんですよ。

実際、App Storeにも「IRKit」に対応したアプリというものがいくつか出てきています。市販のハードウェアに対して、そういうものが出てくるというケースはこれまであまりなかったと思うので、その点で非常に面白いコミュニティが形成されつつあると感じています。

また、これまでに「IRKit」を実際に使ったり、ハックしたりしてくださっている人によるライトニングトークなども見せていただく機会がありました。そういう反響を目にすると「良いものを作ったなぁ」と実感できますね。

idesaku:
開発者として「面白い」と感じられた IRKit の具体的な活用事例はありますか。

mash:
IRKit と別の何かを連携させて家電を操作するという例が多いですね。たとえば「音声認識」や「Slackボット」と連携させるような使い方は面白いと思いました。

idesaku:
「Slackボット」と連携して、どんなことをやっているのでしょう?

mash:
僕が見たのは職場にあるクーラーを、IRKit を通じて Slack ベースで操作するというものです。職場の空調って、机の場所や個人の温度に対する感じ方でいろいろ問題になるじゃないですか。その操作権を Slack で取り合うようなものでした(笑)。

idesaku:
それは面白いですね。ユーザーとしてちょっと思ったのですが、IRKit って、個人ベースで利用事例や開発事例を共有できるような特定の場がないですよね。IRKit 開発者向けのコミュニティとして、そうした場を作ることは考えておられないのですか。

mash:
実際にリリースしてからの状況を見てみると、IRKit で何かを作るという場合には、先ほどの例のように、別の何かと連携させるという使い方が多い気がします。それらを統一的に見られる軸というのが「IRKit」しかないんですね。そうしたニッチなコミュニティをあえて固定的に立ち上げるということには、昔ほどのメリットはないようにも思います。作るとしたら、IRKit にまつわるトラブルシューティングや Tips を共有するフォーラムのようなものはあってもいいだろうとは考えていますが。

後編へ続く

次回、大塚さんがリレー相手としてご指名するエンジニアは…?



Forkwell では、ITエンジニアが自身のアウトプットを簡単に連携・管理し、スキルを可視化することができる「Forkwell Portfolio」を運営しています。

GitHub アカウントの連携により、登録されたリポジトリのコミットログを解析。普段書いているプログラミング言語や、コードの変更量をグラフ化します。

過去のリレーインタビュー

forkwell.hatenadiary.jp

forkwell.hatenadiary.jp