海外のハッカソンで$2500のプライズをGetするまでにやったこと

Google I/Oの行われた週の週末2日間を使って行われたハッカソンに参加してきました。
なかなかできない経験なので、海外で初めてハッカソンに参加して、プライズを取るまで自分が考えたり感じたりしたことを、気持ちが熱いうちに記録に残しておこうと思います。当日や直後に書いたメモそのままなのでテンション高めですw

http://www.gtugsf.com/events/41290032/

はじめに

Google I/O参加予定の方々のFacebookグループがあり、そこでAfter I/O Hackathonの事を知った。当初は土曜だけの予定だった?ようで日本人が数名参加の予定だったが、日程が土日丸々二日間に渡り、日曜帰りの人の多くは参加を取りやめた。自分はたまたまもう少し長い期間滞在をする予定だったのでそのまま参加。自動的にI/O期間の平日夜に開催されるPitch Nightにも参加登録されていたので、こちらも参加することにした。

Pitch Night

週末のHackathonに登録した参加者は自動的にこの日のアイディアソンにも参加登録がされていた。ここでアイディアをある程度練って、週末ハッカソンをやるものかと思って参加したのだが、後から聞くと、このイベントは直接ハッカソンとは関係なく、運営者も参加者も違っていた。

アイディアソンには5,60人の参加者がいたかな、最初に興味のあるジャンルごとに別れ、その中でグループを作ってアイディアを練り最後にピッチをするという流れ。

正直に言ってこの日は何も出来なかった。何がどう行われるのか流れを把握できていなかったので、まずチーム選びを失敗した。たまたまちょっと話を聞いていた時に運営側がもう時間だからチームになってねみたいなことを言われてあるチームに組み込まれたのだが、全く意見がまとまらず、最後は仲間内で来ていた2,3人で無理やりピッチだけでっちあげた。
カテゴリ内の投票で上位になって、ジャッジの前でピッチできる12組には入ったのだけれど、嬉しいとかは全く感じなかった。

そして言葉の壁はいかんともし難いなと実感した。特にこの日のような短時間でのアイディアソンは言葉ですべてを伝えなければいけない。途中、話があちこちに飛ぶので図を描いてみたりはしたんだけど、その頃にはもう全体で意見をまとめるのは無理ゲーな雰囲気になっていて、手遅れだった。

他のチームのピッチは、やはり纏まらなくてでっちあげた感じのモノと、誰かがもともと練ったアイディアを持ってきていてそれを発表したチームの2種類にわかれていたように思う。後者の人は、多分それなりに実績のある投資家がジャッジにいたので、投資を受けるチャンスとして参加しているのだろう。

チームでの成果は個人的には全く楽しくなかったが、結果的にこの日の反省は次に生きたと思う。週末のハッカソンで自分がやるべきことがはっきりした。言葉の壁は大きいけど、ハッカソンは実装してなんぼなので技術でリードするということ。変なチームに入るくらいなら一人ででも実装してアウトプットで勝負しようという決意が生まれた。

ハッカソン一日目

午前中になんとなく集まったグループでどんなものを作るのかという話を始めた。始まった時点のアイディアはアイディアソンでやったのとネタもかぶってたし、どうかなと思ったたんだけど、以外と話がまとまって、すぐ手を動かそうみたいな話になった。この時点で、このチームなら話が通じるな、と思ってここで行く事に決めた。お互い理解し合えるチームなら一人でやるより当然いいものができる。

そうは言っても言葉の壁はあるので、実装ではリードすることを心がけた。うちのチームではAllJoynというライブラリを使うことになったんだけど、サンプルアプリがあるからそれ試して見るといいよと言われて、みんなで試した時に、最初に動作させてgithubにアップした。ドキュメントも本気で読んで、誰よりも先に理解した。それができたからその後は全体を見回しながら役割を振ったりサポートをしたり出来て結構うまく回ったと思う。
メンバーの中で、インド系アメリカ人のサシャバドが技術もいけるし話も通じるので二人でコアとなる部分の理解をして、UIとかを他のメンバーに振っていった。アイディアソンのこともあって、最初はどこまで出来るか不安だったんだけど、そんなことはあっという間に忘れて没頭していた。

夜になるころにはちょっと欲が出てきて、これプライズ取るにはスポンサーのAPIいっぱい使ったほうがいいんじゃない?みたいな話を振ったら、なんとAllJoynのプライズが一位$2500、2位$1000、3位AR.Droneで他と比べて圧倒的に大きかった。もしかしたら最初の段階でネタを出した人はそれ狙いだったのかもしれないけど、自分は全然気づいてなかった。ラッキー。

うちのチームはアメリカ人だというのに10時過ぎまで残ってやってたりしてかなりテンションが上がってきた。

ハッカソン二日目

ちょっと個人的に更に欲がでてきて、なんとしてもADKを絡めたくなってきた。朝は人も少なかったので、ADKをつなげる実装を始めた。ところがこれが思った以上に大変だった。一番痛かったのはadb tcpipを使うとADKを認識できなかったこと。馴染みのないコードを追うのにLogCat見れないのは痛い。
そんなわけで二日目は自分の作業にかなり時間を費やしてしまった。サシャバドが全体をだいぶケアしてくれた。自分は所々技術面で彼をサポートして、彼が全体をサポートする感じ。
本当はもう少し余裕を持って、バランスを取りつつよりわかりやすく魅力的な方向に持っていったほうが安全策だった。わかってはいたんだけどADKを途中で諦めるわけにもいかずそっちで行った。
途中で他のチームが作っているものをみたらかなり見栄えのいいゲームを作っていたりして、Hack時間が終わった段階ではちょっと微妙だなと思っていた。もし賞を逃してたら二日目に自分がとった選択にかなり後悔したかもしれないのでちょっと反省。

結果的にはAllJoynのスポンサープライズで1stプライズを獲得できた。

うちらのチームはだいぶTechよりで、プライズをもらえたのは、AllJoynの中の人にかなり長い時間技術的な話をして、夜遅くまでやってたので気に入ってもらえたというのが大きい。実際、AllJoynを使った別のチームが、スマホをコントローラにしてプレイできるボンバーマンみたいなゲームを作っていて、イベントの評価としては1st prizeだった。

海外のハッカソンでプライズ獲得するには

こんな自分の経験を通して、日本のプログラマーが海外のハッカソンでプライズを獲得するまでにやるべきことを考えてみる。

参加する
これがすべての始まり。まずはなんでもいいから参加する。
今回二日間という日程を見て参加を見送った人は多いと思う。じゃあ日曜帰りの人はチャンスがなかったのかというとそんなことはなく、実際一日しか参加できないけどいいかと問い合わせて参加した日本人もいた。
またPitch Nightもmeetup.com上では何名か日本人がいたはずだけど参加したのはこの二人くらいだった。

まず最初に知るべきことは、参加しなければチャンスはない、ということ。

短い滞在の中では他にもやりたいことがあるだろう。英語に自信がないとか、そこまで興味のあるテーマじゃないとか疲れたとか色々と参加しない理由はあったのかもしれない。でも、技術者としてはるばる西海岸まで来て、海外でハッカソンに参加できるチャンスというのは、もっと優先度を上げてもいいんじゃないだろうか。

イベントを選ぶ
海外に行ったらとりあえずいけるイベントにはどんどん参加したほうがいい。でもそれに慣れてきたら次はイベントを選ぶ。よくあるMeetupイベントは、おみやげもらえたりタダ飯食えたりして、興味のある技術の中の人と話したりできるので楽しいは楽しいんだけど、そこから何かが生まれることは多くない。それがわかるようになったら何かしらアウトプットを出すイベントに参加してみよう。
ただ、言葉の壁は大きいので言葉がメインのアイディアソンは辛い。ピッチイベントとかも発表は出来てもQA出来ないとなかなか評価されないと思う。ハッカソンでも時間が短いと難しいかもしれない。そう考えると丸一日以上やるハッカソンがいいんじゃないかと思う。

ジャッジを見る
向こうのハッカソンはジャッジの個性がすごい出る。日本だとたとえスポンサーがいても、「うちのプロダクト使ってくれたら嬉しいけど強制はしません」ってスタンスが多いと感じるんだけど、向こうだとスポンサー側もはっきりと売り込みに来ている。投資家的なジャッジがいる場合だとプレゼンの方向性とかだいぶ変わってくるので、どっちも狙いは難しい。技術者として参加するならTechスポンサーを狙うのがいいと思う。

技術でリードする
日本人同士のハッカソンなら技術以外の役割もあるけど、言葉の壁がある中でそういう役割をはたすのは難しい。技術は言葉の壁を超えるので、自分の得意な技術領域を選んで、そこで一番のアウトプットを出す。わざわざGoogle I/Oのためにサンフランシスコに行こうって思うくらいの人なら何かしら得意領域は持ってると思うのでそれを全面に出すのがいいと思う。

    • -

と、以上熱めのエントリでしたが、こういうことが出来るのってプログラマーならではだし、誰でも参加しようと思えば参加できるっていう環境がいつまでも続くとは限らないので、チャンスがあったらどんどん参加したらいいと思います。プライズは運だしおまけだけど、目標設定しておくのは悪くないと思います。

ちなみに、$2500はチームに対する賞金なので自分が全部もらえるわけじゃないです。ソースは以下ですが、やっつけ感は半端ないですw
https://github.com/itog/iohack

では。