Written on 2015, 01, 07

ハッカソンでプロダクトを作る時の個人的ポイント

エンジニアの松本です。

Atraeでは今週の金曜日(1/9)に社内ハッカソンを実施する予定です。
なので、今までにハッカソンに参加した時に自分が個人的に気を付けたポイント、参加してみてこれは失敗したなと思った事から学んだ教訓などを少しまとめてみたいと思います。

最低限"使える"レベルのものを作る(極限まで機能を絞る)

ハッカソンは大抵1日や2日など、短い時間の中で集中して一気に作り上げる事が多いので、欲しいと思う機能、あったら便利そうな機能まで作っているとだいたい時間が足りなくなり、中途半端な部分までしか実装できずにタイムアップを迎える事になります。
そのため、ハッカソンで作る時は、作ろうと思っているプロダクトのコアとなる最も重要な機能の1つか2つに開発する機能のターゲットを絞り、まずはその機能をキチンと動作させる、その機能を主軸としたユーザの操作フローを一通り実行出来るようにするところまでを実装する、という事を最優先にした方が良いと思います。

今回実施するハッカソンも1日(およそ10時間)で行う予定なので、ちゃんと機能を絞って開発を進めたいと思います。

設計は事前に終わらせる

これはハッカソンのレギュレーションにもよりますが、作るものや使う技術などをあらかじめ決めておいて良い場合は、ハッカソン当日までに機能設計、テーブル設計(モデル設計)、画面フローなどはある程度、事前に考えてしまって、当日は実際に手を動かす、コードを書き始めるところから始められるとスムーズに開発に入れると思います。

デザイナーとエンジニアが組んで開発する場合などは、デザイナー側の開発環境を事前にエンジニアがサポートして整えておくと、特にRailsなどでデザイナーがViewファイルに直接htmlやcssの組み込みを行う場合、ローカル環境で動作確認しながら進められるので、かなり当日の作業効率が上がると思います。

新しい技術に挑戦しない

ハッカソンというと、つい今までにやった事の無い事や使った事の無い技術を使ってみたりしたくなりますが、大抵時間を浪費して一通りの機能を実装し切れなくなったりするので、基本的には自分が普段使っている技術や今までにやった事のあるものを組み合わせて作り上げた方がハッカソンの時間内で作り上げる場合には良いと思います。

もし新しい技術をハッカソンで使う場合は事前に技術検証を済ませたり、一度使ってみて感触を確かめたりしておいた方が当日、余計な時間を使ったりせずに済むと思います。

Railsなどのバージョンアップのサイクルが速いフレームワークやライブラリを使う場合は、もし最新版を使った事が無ければ、無理に最新版を使わず普段使っているバージョンを使うというのも大事かも知れません。
使い慣れていないものを使うと、思わぬエラーに遭遇したり、エラーを解消する為に多くの時間を費やしてしまったりするので、言語、フレームワーク、ライブラリなどもなるべく普段使い慣れたものを選んだ方がプロダクト作りに集中できると思います。


自分がハッカソンで開発をする時に気を付けている点はこんなところでしょうか。

時間が無い中でプロダクトを作り上げるのは中々大変ですが、逆に使える時間が限られる事によって、より重要な部分にフォーカスしたり、プロダクト自体がシンプルになったりという効果もあるので、時間を有効に使って良いプロダクトに仕上げられると良いですね。