スーパーハッカソン2013に参加しました

5/11 大阪グランフロント内の イノベーションハブ で行われた スーパーハッカソン2013 に参加しました。
参加しましたというか、5/18まで参加していました。

スーパーハッカソン 2013
http://super-hackathon.net/2013/
pitto 行き場を無くした動物たちの問題を解決する1画面のサービス「pitto」

今回のスーパーハッカソンで完成したみなさんの作品の一覧は、非常に良いまとめ記事があることもあり、この記事ではその一週間の参戦記ということでまとめてみました。

ハッカソンとはなんぞ?

ハッカソンという言葉を説明すると、

ある決められた一定期間の間、個人・あるいはチームを組み、プロダクトを完成させるというもの。

ハッカソンを行う期間は1大体日〜3日という場合が多いのですが、スーパーハッカソンでは前回同様一週間という形式になっています。
(内々ではスッパソンと呼ばれていました)

チーム制とパーティ

このハッカソンでは、チーム参加が必須となっていてそのチームも最大5人までというルールとなっています。

1人で参加しても必ず誰かとチームを組む必要があります。
当日までのチームの組み方としては、ドラクエのパーティととある酒場的なものをイメージすると伝わるかと。

しかし、前回同様、開会日よりも前に仲間を見つける会があったのですが、参加者が本当に少なかった。(私も含め5人しかいなかった)
前回は仲間を探す会では20人前後はいたように思ったのですが、今回はしっかりチームを組んでからの参加を決めるというパターンが多かったようですね。

このあたりは各チームいろんな考えがあるので個人的な取り組みとなるのですが、自分個人のルールとして、前回組んだ人とは(なるべく)一緒に組まない。ということにしています。

なぜなら、知人でも普段のその仕事の内容を知らない人と組んで、良くも悪くもその仕事の進め方を見たいというのが一番の理由です。

なので、私が参加するチームが決まったのは開催日前日のことでした。

最終的に
・デザイン + プレゼン
・デザイン + コーディング
・コーディング
・プログラマ
・私(プログラマ)

という構成です。

はじまり

今年のお題は「〇〇の問題を解決する1画面のサービス/製品」というもの。
完成形の着地点として以下の条件から選択する必要がありました。

  • Twilio API
  • Windowsストア アプリ
  • スマートフォンアプリ(タブレット含む)

第一日目となる 5/11には、開会式とアイデアソンが行われました。
その日のうちにアイデアソンでまとめた内容を主催者に報告し、その後の一週間かけて開発を行います。
ただ、そこで提出した内容で発表することは必須ではなく、変更することも可能でした。

私たちのチームも一旦提出するも、アイデアソン完了後も近くで食事を取りながら再構成することにしました。
それでも当日には決まらず、最初に目指す方向が決まったのは月曜日ぐらいだったと思います。

最終的にTwilioという 電話やSMSを扱えるAPIサービス を利用して、問題を解決するサービスをつくりあげていくという事になりました。

濃い一週間

この一週間という長さは本当に長くもなく短くもなく、仕様などを設計するには本当に絶妙な長さだなと私としては思っています。

なぜなら一週間の中で、必要な機能、捨てる機能、どうしても実現したい機能、実装するための時間との兼ね合いの中で取捨選択の判断を時間単位で迫られます。

なので、ハッカソンはいつもの業務以上にディレクション大事だなと思ってたりします。

しかし、参加者の中には会社員の方もいらっしゃいますので、当然仕事のあとにプロダクトを完成させて行くことになります。

この期間がかなりスキルをアップさせることになります。。

私は今回、バックエンドでTwilioのAPIを使って電話やSMSをコントロールするという役割になりました。

発表までの一週間、あーでもないこーでもないと開発を進めていました。
ほぼ、毎晩Skypeで話しながら仕様の打ち合わせをしてました。

開発を進めていく中、APIを使うという構成上実現できることが非常に見えにくく、やむなく仕様を変更すること幾たび。

最終的に、仕組みとして完成したのは発表の朝11:30ぐらいでした。

その直後には、プレゼンで話す内容の最終的な詰めの手伝いをしようということで、会場に向かうことに。

しかしこの時、思いもしない事態が起こっていました。

緊急事態 そして迫る発表

会場につくまで完成させたサービスの動きを見ておこうと改めて眺めていると、位置情報から取得した情報が表示されていません。 慌ててチームに連絡を取り状況を確認。 なんとか、発表前の事前提出タイム直前に修正が完了。

会場に到着後、いつものクオリティの高い映像を見た後いよいよ発表がスタート。
自チームの発表は全12チームの11番目となりました。

しかし全体発表が始まった直後、今度は作ったサービスの電話とSMSが全くつながらない状態に。
Twilio経由で電話の転送もできず、画面内でSMSを送るとむなしくエラーメッセージを表示するのみ。

これはまずいとサーバ側で確認すると、

「Permission Denied」

http://www.twilio.com/docs/errors/20003

そう、突然の Permission Denied...

Twilio にログインすると、残金1300円分ぐらい残っているにもかかわらず残高不足の文字。
クレジットカードで追加したらいいのかと番号入力するも再びエラー。

twilioエラー画面

これはまいった...

主催の藤井さん(@lebe_fujii)に事情を説明、アカウントを変えてTwilioの再登録し、コードの修正を行う許可をもらい修正にかかりました。
修正が終わったのは10番目の発表ももうまもなく終わる時間。

このトラブルで最後のプレゼン以外、ほぼすべての発表が見れなくてほんとうに残念でした。
あんなに高レベルの完成品とそのプレゼンが見れずで、そこだけが心残りでしょうがないです。

とはいえ、もう発表できないかと思っていたので、発表する直前に修正できてなんとか無事発表できてよかったです。

プレゼンが終わった時はもう完全に燃え尽きてました。。。

(おそらく一部の参加者の方の中にはあのチーム騒がしいなと思われた方がいらっしゃるかもしれないですが、この場を借りてお詫びさせて頂きます。。。)

いろいろ考えすぎた今回

結果は12チーム中9位、参加者評価5位タイ。

今回は前回にもまして勝ちたいという想いが大きく、それが結構自分の中では空回りしていた感がありました。
そこは反省点だなと思っています。

あとデモをまったく説明できない形でおわってしまって、参加者の方々にうまく伝えられず申し訳ない気持ちになってしまいました。
ほんと、プレゼン大事。

バックエンドの話も少し。
VPS上のCentOSに、Node.js とそのフレームワーク Sails.js を使って開発を行いました。

あと、当日少し話した SMS 機能は、Twilioの電話番号アカウントをUS で一つ取り、そこからSMSを送っていました。

ハッカソンの面白さ

やはり楽しいし充実感がものすごいですね。 体力的にも今回が一番ハードでした。

前回、非常にレベルが高かったのですが、今回も本当に高レベル。

参加することに意義があるとは言いますが、やはり負けて悔しいという部分が自分のなかでほとんど占めています。本当に悔しい。

とはいえ、参加しなければよかったとは一度も思ったことはないですし、次回も勝つために参加する予定です。

次回、スーパーハッカソンは夏に開催する(予定)ということです。

最後に

審査員のみなさま、参加者のみなさん そして主催者のみなさん、本当にお疲れ様でした。

また次回参加したいと思います。ありがとうございました。