Contents
ハッカソンとは
ハッカソンとはエンジニアやデザイナーが複数人でチームを組み、1日から1週間程度の短期間で制作物を作って優劣を競い合うイベントです。
「ハック」と「マラソン」を掛け合わせた造語で、数年前に日本のIT業界に根付きました。
ハッカソンはチーム開発を通して様々な技術や経験を得られます。またチーム内での役割や考え方を深く見られることからIT企業が選考の一部という位置付けで行うことも多いです。
サマーインターンでハッカソンを行う企業もかなりあります。
参加するだけでも色々得るものはありますが、どうせ参加するなら入賞したり、本選考に繋げたいですよね。
今回はハッカソンに複数回参加する中で得られた知見とハッカソンの勝つ方法、コツを紹介していきたいと思います。
企画段階のコツ
チームビルディングはしっかりと
エンジニアは比較的温厚な人が多く、変にマウントを取ったりする人が少ないので比較的クリアしやすい所だと思います。顔を合わせたタイミングでコミュニケーションが取れればハッカソンでも大きな問題はありません。
そこからもう一歩踏み込んで、開発の時にお互いがわからない所を聞きやすい状態に持っていくことが必要です。
- 15分考えてわからなかったら聞く
- お互いをあだ名で呼び合う
- 1時間ごとに進捗を把握する
などのルールを決めておき、開発時間の短縮を計りましょう。
コンセプトとペルソナが命
どのようなコンセプトでどのようなターゲットに向けたアプリを作るかも審査では重要な要素となります。
この2つを具体的にプレゼンの最初に言うだけで、こいつら考えてるな感が出せます。
ペルソナ(具体的なターゲット像)は単に年齢と性別とならないようにしましょう。
コンセプトと乖離しないように、習慣、性格、移住地、年収、趣味などを細かく想定したチームは、企画に関して良いフィードバックをもらっていた印象があります。
何が評価されるのかを中間発表で把握する
アイデアの方向性が間違っていないかを確かめるため、企画が出るくらいの段階で中間発表をするケースも少なくありません。
あるハッカソンでは中間発表で評価が良かったのに実装でボコボコにされて、優勝を逃しました。その時は他のチームにコアなアイデアをパクられてフラッシュアップされていました。
中間発表の時、評価の良いチームがどのような点が評価されているかを構造的に分析して、さらにフラッシュアップさせて自分のものにするのは有効です。
そのため、他のチームのフィードバックも他人事と思わずに真剣に聞きましょう。
実装のコツ
Gitを無理に使わない
チーム開発に慣れていない状態でGitを使うのは非常に大変です。プロのエンジニアの方には怒られそうですが、学生のハッカソンレベルでGitは必要不可欠ではないと思います。
自分もプライベートでGithubは使っていましたが、ブランチを切ったりマージしたりすることに慣れておらず、かなり苦労しました。
情報系の学生でもチーム開発の経験がないケースが多く、ブランチやマージなどの概念を初心者に一から説明するのは大変です。
ファイルごとに役割を分担して、Slackに貼り付けて、各自がコピペして繋ぎ合わせていくののが最も効率的でした。
Slackなら投稿を編集できるのミスに気づいてもすぐに修正ができるのが利点です。
チームの過半数がチーム開発に慣れているならGitを使う方が効率的です。
必ずコアな機能から作る
サービスにとって一番核となり、「この機能さえあれば最悪デモが成立する」という機能から実装していくのがハッカソンの鉄則です。
コアな機能は「メイン画面上で最も目立つ機能」とは必ずしも一致しないことに注意しましょう。
頭ではわかっていてもついつい作りやすそうな機能から作ってしまいがちです。ですが簡単そうな機能でも案外詰まるのがハッカソンです。
コアな機能のエラーは遅かれ早かれ解決することになるので、最初に解決してしまい、精神の安定を保ちましょう。
当然ログインログアウトや設定画面は後回しになります。ハッカソンで一番最初にログインログアウトでハマって、身動きが取れなくなったことがあります。
良いサービスのデザインをパクる
デザインは最低限の基本原則を押さえておくだけで、ある程度の差別化が可能です。特に配色に関してはフィーリングになりがちなので、さらっと事前に学んでおくことをお勧めします。
それが面倒な人は他のサービスの良いデザインを参考にするか真似してみましょう。サマーインターンのハッカソンで、Githubのデザインをそのままパクったチームがあったのは結構びっくりしましたが、入賞していました。
ネイティブアプリエンジニアがいたらかなり心強い
iOSかAndroidのアプリ開発経験があるメンバーがチームにいたらかなり心強いです。
Webに比べると決まったデザインを描画するのが簡単ですし、アニメーションも付けやすいのでデモ受けのいいUIが作れます。ある程度デザインの型が決まっていて他のアプリをパクりやすいの利点です。
スキル次第ですが、フロントは一人に任せて他のメンバーはサーバーサイドに専念することも可能です。
使える無料のサービスは使ってしまおう
ハッカソンで結構使えるサービスやツールを知っておくだけで、差をつけることができます。
Firebaseでサーバーサイドの手間を減らしたり、Draw.ioで画像をゼロからサクッと作ったりしていました。
ロゴを自動で作るサービスや質のいいフリー画像を提供するサービスも沢山あるので、必要に応じてググってください.
iPhoneなら、
「設定→コントロールセンター→コントロールをカスタマイズ→画面収録」
を選択すると、スマホの操作を動画で録画できるので、万が一発表でデモが動かなくても途中経過の動画を見せることができて便利です。
発表のコツ
審査員と発表形式をしっかりと確認する
ハッカソンの発表の形式と審査員をあらかじめ確認しておきましょう。単にデモを見せるだけでいいのか、審査員にサービスを触ってもらうのかで力の入れどころは変わってきます。
学生票が入るのか、複数の社員の総合点形式なのか、責任者の独断と偏見なのかも開発の指針の一つになります。
発表順は最初か最後が有利
発表順は意外と大事です。心理学的にも経験則的にも最初と最後が圧倒的に記憶に残るので投票では有利になります。ジャンケンで決める場合は最初か最後をとりましょう。
ちなみ今まで参加したハッカソンでは全ての回で最初か最後に発表したチームが勝っていました。(なお参加チーム数はそこまで多くない)
特に参加者票が大きい場合はその傾向が強くなります。
その他 ハッカソンを本選考へ繋げるために
寝ろ
発表の前日、全然実装が間に合わずに徹夜するチームもあることでしょう。
しかし、睡眠は大事です。眠いときに1時間かかっても解決できないことが、翌朝スッキリして5分で解決することもあります。
自分がパフォーマンスを出せるギリギリの睡眠時間を把握しておき睡眠をとるよう心がけることが勝利に繋がります。
事前準備はとても肝心
当然ですが、ハッカソンのお題があらかじめ決まっている場合は、作れそうなアイデアを用意しておきましょう。
確率的にWebアプリを作る可能性が高いので、JavaScriptを事前に触っておくことをお勧めします。
余裕があればjQueryのプラグインやSemantic UIを触っておくと、なんか凄そう感の溢れるフロントを作ることができます。
積極性をアピールするには
サマーインターンでハッカソンをする場合は選考の一部になっていることは間違いありません。
チームビルディング、企画、実装、プレゼンなど社会人にとって基本的な事をこなせるかチェックできるわけです。
もし行きたい企業であればメンターを通して、面接ではわからない部分が企業側にチェックいるという意識で臨みましょう。
口頭の積極的な発言をすることはもちろんですが、Slackの発言も意識しましょう。
インターンの前に企業側が用意したSlackに招待されることも多いはずです。その発言は文字情報としてはっきり残り、チーム内での役割がはっきりとわかります。
普段の発言が少なくても、定期的に話し合った事を整理してまとめて投稿したり、口で言ったことを「大事なことだからSlackに貼るね」と言って投稿するなど、やれることは沢山あります。
以上のようなコツを踏まえた上で、ハッカソンが実りあるものとなることを願います。