ハッカソンの楽しみ方

土曜日には、京都 GTUG主催の GAE ハッカソンに参加して参りました。スタッフの皆様、あの場を提供していただいた皆様、ありがとうございました。

さて、ハッカソンは オープンソーシャル に続き人生二度目の参加。今回は、HTML5 GeoLocation と AppEngine の組み合わせを Twitter 風に仕上げる、というテーマでチームで以下のようなサイトを作りました。

今の所、PC ブラウザでは位置をとれるのが Firefox3.5 だけみたいなので、お試しは FF3.5 で宜しくです。アプリ的には

  1. アクセスすると自分の近辺の地図が表示される (最初に位置情報送ってよいかきかれる)
  2. 自分の近辺にいる人のつぶやきがその地図上にランダムに表示される
  3. ログインすると自分もつぶやける

といった感じです。発表時のデモでは、皆京都 KRP にいるはずなのに、岡山の地図が表示されるという若干の誤差はあったものの、概ね動きとしては楽しんで頂けたようで、アプリ投票で 1 位を頂き、AppEngine の T シャツをもらって帰ってきました。チームの皆様に感謝!

と、前置き長くなりましたが、本題。二回ほどハッカソンに参加してみて、色々楽しむためのポイント。

ハッカソンの楽しみ方

最初にここでいう「楽しむ」のポイントは、

  • ある程度、アイディアが形となること
  • ここが勉強なったなー、とか、難しかったなー、とかを各々が体験出来る事

としています。

ハッカソンは、一日で何人かで一つのアプリを作れる範囲でゴリっと作ってしまおう、というマッチョなイベントです。実際、事前準備をしておかなければ、あっというまに時間過ぎます。なので、前日や一週前などにアイディアソンという形で、アイディア出しだけのプロセスを別の日に分けるのは、当日コーディングに集中するために行っている良い仕組みだと思ってます。実際今回の GAE のハッカソンも、次の Android のハッカソンも、

  1. 勉強会
  2. アイディアソン
  3. ハッカソン

というプロセスで進むよう予定が組まれてました。これらの進め方についてアイディアソン以降について思うポイントを幾つか。

アイディアソン

まず、アイディアソンへの事前準備。最低一個二個はネタ考えておくのが良いかとは思います。特にアプリネタでなくとも、技術要素 (例えば GAE だったら task queue とか) でも良しです。それを表明する事によって、自分の関心所をチームにはっきりさせる事できます。逆にいえば、少なくとも技術要素的に気になる所は一つ二つを知ってる位までには勉強しておいた方が良いでしょう。ちなみに、今回私が考えていたネタは Geo Location でした。

次に、皆でブレストするときのポイント。まず色々話してると、沢山アイディア出てくるので、「あー、それも面白い、これもいいね」っていう感じになると思います。特に初対面な人が多いと、中々他の人のアイディアを否定するような事はいいにくいです (^^; 。ただ、発散させすぎると、大体当日の時間の制約に負けがちなのかなー、というのが印象です。

なので、ブレスト後に必ず収束させる。「色々ネタあるけれども、一日じゃしんどいですよねー、どうしましょう、どの辺りに絞っていきます?!」みたいな感じで。ハッカソンネタ本体の内容は別として、それ以外で利用する技術要素は一つか多くても二つ位で出来るようなアプリネタに落とし込むのが、ラインとしては良いのかな、と今は思ってます。次に。。。

役割分担の仕方
  • 土台 (画面遷移とか、環境設定とか、開発環境とか)
  • 個々の技術要素部分 (各 API の使い方とか)

という感じでわけてみます。何だか普通の開発プロセスっぽくなってきました (笑。

画面遷移とか、そういう土台が事前に作られていれば、当日穴埋めしていけば良いですし、見通したてやすいので、かなり気分的に楽になります。また、この切り口でわけると、各々が調べ、準備しておく領域を小さくする事をしやすいというメリットもあります。

デメリットとしては、この土台部分の担当の人の負荷が必然的に高まります。チーム内に当日までにそこまでの準備が出来る人いないとちょっととりづらい戦略ですが、作りたいものによっては上手く分割出来るかもしれません。

いずれにせよ、アイディアソン時に役割分担を決めておけば、当日までに自分の明確な担当の事前調査、準備をする時間がとれるので、アイディアソン時にはここまでをチームで決めておくのが良いのでは、と思います。

ハッカソン

事前準備として、開発環境の構築、出来れば自分の手慣れたエディタで開発出来る状況を作っておくこと。後、アイディアソンの日に決めた役割分担に従った準備をしておけると尚良し。

当日は本当に自分の担当のコードの開発に集中し、またペアプロなどで他の人の書き方を勉強したり、と行った事を楽しみましょう。当日は基本的にコードに集中ですね!

      • -

と、つらつら書いてみると、事前準備しっかりしましょうね、といういかんともな内容になっていますが、折角書いたので、今日はこれをポストして寝ることにします。