「WebRTCを使って復興支援アプリを作ろう〜WebRTCハッカソン」に参加しました。

2014年6月7日に東京にて開催された、「WebRTCを使って復興支援アプリを作ろう〜WebRTCハッカソン」というイベントに参加してきました。

先週のアイデアソンに引き続き参加。参加理由はアイデアソンの時と同じなので引用します。

参加理由は2つ。一つ目は「エンジニアとしてのスキルを何か社会の役に立てたかった」こと。最近(特に開発の)エネルギーを持て余し気味だったので、機会を探し求めていました。二つ目は「よく知らない人同士で構成されるチームの中で、うまくコミュニケーションできるようになりたかった」こと。こちら、最近の仕事での課題になります。

この記事では、ハッカソンのテーマや、自分が参加したチーム、その中での自分の役割などについて書いてみようと思います。つくったプロダクトについては、また別の機会に紹介します。

テーマ:WebRTC + タブレット + 浪江町の復興支援

今回のアイデアソンのテーマは以下のとおり。

  • 放射能の影響で全国46都道府県に散らばって避難している 浪江町民のみなさん
  • 1世帯あたり一台の タブレット を配る計画があるから
  • WebRTC を使って
  • バラバラになってしまった 地域の絆を再生 したい。

前回のアイデアソンで生まれた6つのアイデアを、実際に実装して形にするのが今回のハッカソンの主旨です。

参加者のうち、アイデアソンから参加していた人は僕も含めて全体の半分くらい。ハッカソンから参加した方向けに各アイデアの紹介が行われ、各自が取り組んでみたいアイデアに参画する、あるいは持ち込みアイデアに取り組む、という形で6つのチームができあがりました。

WebRTCとSkyWay

今回のテーマにもあった「WebRTC」という技術。これは、Webブラウザ同士でリアルタイムに映像や音声、ファイルなどをやりとりするためのものです。Webブラウザ上でSkypeみたいなことができる、と言えば少しわかりやすいんじゃないかと思います。

ただ、WebRTCを使ったプログラミングはかなり面倒。そんな面倒を軽減するプラットフォーム・API・ライブラリ群である「SkyWay」がNTT Communicationsさんから提供されており(無料!)、「これを使うと楽だよ!」と紹介されていました。使ってみると実際とてつもなく便利だったので、みなさんも試しに使ってみてください。

参加したチーム

僕が参加したチームは、企画2名、デザイナー1名、エンジニア3名(僕含む)、という構成。前回のアイデアソンからは、企画2名、エンジニア1名(僕)が引き続き参加で、残りの3名は今回からの参加でした。

今まで自分が参加したハッカソンを振り返ってみても、かなりバランスがとれたメンバー構成だったと思います。また、バランスだけでなく、みなさんとても高い専門性を持たれた方で、役割分担も自然と上手くいきました。ものすごい速さで、デザインやプロダクト、企画やプレゼンテーションができあがっていく感じが、一緒に作業していてとても爽快でした。すごく刺激を受けました。

僕の役割

そんなチームの中で、僕はエンジニアとして「コードを書く」ということをほとんどしませんでした。僕以外のエンジニア2人が優秀で、僕がエンジニアとしてやることはほとんどなかったのです。今回のハッカソンにはコードを書く気マンマンで参加したんですけどね。

でも、何もしないわけにはいかないので、開発ができるだけ円滑に進むようなサポートができないかと、開発途中から考え始めました。具体的に何をしたかというと、デザイナーさんとエンジニアチームのつなぎをしたり、コードを書くのに忙しいメンバーの代わりに調べ物をしたり、「かんばん」でタスクを管理したり、Illustratorで画像をスライスしまくったり、どこまで実装するかというスコープを調整したり、デモの流れを考えたり、といったことをやりました。

結果

プロダクトは割と早い段階で形になったのですが、デモの準備中にビデオチャット機能がブチブチ途切れるという問題が発生し、その対応に制限時間ギリギリまで取り組んでいました。

プレゼン本番直前になってもデモには不安が残る状態でしたが、本番では無事動作させることができ、心底ホッとしました。素晴らしい企画とプレゼンテーション、そしてちょっぴり不安定なデモを、限られた時間の中でチーム一丸となってしっかり仕上げる事ができました。

その結果、チームとして「浪江町賞」という賞をいただくことができました。個人的には一番欲しかった賞でした(チームとしても、そうだったんじゃないかと思います)。前述したとおり、賞を頂いたプロダクトについては後日改めて紹介させていただきます。

ハッカソンを振り返って

今回のハッカソンを振り返ってみて、個人的にすごく良かった思っているのが、チームのメンバー全員が制限時間内にプロダクトを「着地」させる、という目的を強く意識できていたことです。

プレゼンに望むために必要最低限の機能が何かを考えて、それを実現するための1時間ごとのマイルストンを、制限時間から逆算する形で、開発に着手する前に作りました。さらに、1時間ごとに「進捗どうですか?」と確認を入れてもらうことで、メンバー全員がプロダクトを着地させることに集中できたのではないかと思います。

また、アイデアソンが事前に開催されていたこともあり、メンバー間でプロダクトの目的やターゲットが上手く共有できていていました。一緒に作業していて、メンバー全員が何も言わずとも同じ方向を向いているような感覚がありました。

逆に反省するべきところは、デモが不安定だったということです。安定性を担保するために、同時接続数を減らしたりとデモのクオリティを泣く泣く落としたりしました。

もし、開発の初期段階からデモのシナリオをしっかり考えておけば、自然とそれを意識した実装になり、デモの準備も比較的にスムーズに進められるようになったのかもしれません。次回ハッカソンに参加することがあれば、改善したいポイントです。

おわりに

ハッカソンの醍醐味である「スピード感」を思う存分体感することができました。ほんと、チームメンバーのみなさんに感謝です。仕事でこういう「スピード感」を感じれないのはなんでだろう、という問題意識が自分の中に湧いたので、どうしてなのかしっかり考えてみようと思いました。

チームで作った企画とプロダクトは、今後も開発に関わっていきたいと思えるようなものです。こちらに関してはまたどこかで報告できるように引き続き頑張って取り組みたいです。

僕自身、コードはほとんど書きませんでしたが、少しはチームに貢献できたように思います。コードを書く以外にも自分にできることがあるってことに気付けて、ちょっぴり自信がわきました。貴重な経験をさせていただき、ほんとうに感謝しています。

それでは以上です。ありがとうございました。