TRUNKハッカソン2019に参加してきました!
今年のテーマは
「関西の『食』をテクノロジーで楽しくしよう!」でした。




僕たちのチームは
「絶対に失敗できない、けど面倒くさいお店選びを簡単に!
画像を見てスワイプするだけ
『あなたの好みを学習したAI』で、
より楽しく、直感的にすることでお店選びのストレスを解決した
完全あなた専用に扱える飲食店用レコメンドアプリokonomy」



を開発し、17チームの中から優勝することができました!
本当にチームのみんなには感謝しかありません…!
ありがとうございました!
こちらがプレゼンの資料です!
今回は、ハッカソンで優勝をするために必要なことをお話していきます!
ハッカソンで優勝するためには??
テーマ・ルール(採点基準)を確認
これは当たり前といったら当たり前になりますが、
まずは、
テーマとルール(採点基準)== 自分が戦う土俵
を確認します。
今年のテーマは
「関西の『食』をテクノロジーで楽しくしよう!」でした。




そして、採点基準は



- プロダクトの完成度(技術力)60点
- テーマ(関西での『食』をテクノロジーで楽しく)20点
- プロダクトの新規性 20点
という内訳でした。
ここから分ることは、
プロダクトにどれだけ技術を入れることができるか
そして、いかに上手く伝えることができるか
という2点です。
ですが、優勝を狙うのであれば、もちろんそれだけではいけませんよね。
他のテーマ性・新規性も十分に配点がなされるということを意識してアイデア出しを行っていきます。
そして、今回は技術点が高いということを考慮して、今流行である「AI・ブロックチェーン・AR」のどれかの技術を入れたいという話になりました。
チームの得意スキル的にAIが強かったので最終的にAIに落ち着きました。
まずは、ハッカソンの分析をします!
自分が戦っている土俵に基づいた戦い方をしなければ、どれだけ自分にとって良いものを作ったとしても、自己満足に終わり、せっかく作っても良さが評価されません。
そのため、優勝がしたければ相手(主催者)の意図に沿ったモノを作るのです。
この考え方はビジネスにおいても重要になってきます。
十分なリサーチをかけずに自分勝手に「この商品なら絶対に世の中に必要とされる!」と思い込んでセールスをかけたとして売れることは天才的な直感を持っていない限り無いでしょう。
相手の常識に自分たちが歩み寄りその常識の中で自分たちができる相手にとって最高のパフォーマンスを発揮する
過去、この点を理解していなかったため、惨敗するという苦い経験があります。
相手の土俵で戦わさせてもらっていることは常に念頭に入れておきましょう。



余談になりますが、学生で強いエンジニアになればなるほど、サービスを売る・お客様が使うという面に興味を持つ方が少なく、技術中心思考にあるように思えます。もちろん職人的エンジニアの技術力は本当に凄いです。
ですが、エンジニアの中にもビジネス面に興味を持って、使う人がどう考えるのか、どうしたらお客様の問題解決ができるのか、取り扱っている問題は本当に問題なのかを重点的に考える人がいても良いのかなと思います。
僕はそんな中で良い感じに、ビジネスと技術をパイプできるポジションを取れたらと思っております。
一番大切な行程は何?
さて、テーマが発表され、採点基準も把握した後にするべきことは何でしょうか?
まずは、スケジュールを把握することですよね。



今回のハッカソンですと、
初日の10:40にテーマ発表が行われ
二日目の15:00まで開発ができることになっておりました。(写真から若干修正されました。)
なので、この時間制限を意識しながら各工程を進めて行くことになります。
さて、では本題に入ります。
正解は、アイデア出しです!
正直、アイデア勝負と言っても過言ではありません。
これは僕のチームにいた過去に別のハッカソンで優勝経験のある子が
アイデアが決まってからは、コミュニケーションも円滑に進んで、例えエラーで上手くいかなかったとしてもモチベーションが保てるし、発表するときにも審査員にインパクトを残せるからアイデアって本当に大切。
と話しておりました。
僕自身全く同じように思っていたので、僕たちのチームはかなりの時間をアイデアを出すために使うことになりました。
ちょうど15時まではアイデアを出すとチームで決めました。
他のチームが続々とアイデアを固めて制作へと進んで行く中、まだ具体的な案も構想も固まっておらず焦りました。
そして、約束の15時が残り10分と迫る中、『これだ!!』という勝利案が出ず、ありきたりなアイデアで煮詰まるそんな状態に陥りました。
そこで、現状のものの中から暫定でどんなものにするか多数決で決めようという雰囲気になっていたところ、優勝経験者から
もしそうならこの案だと優勝はできないと思います。
なので、まだアイデアの時間を1時間延長しませんか?
と提案されました。この判断が優勝への大きな決断だったと思います。
ここからは、もう一度話し合いが加速して、暫定的にまとまっていた二種類の案が上手に結合され最終的な状態に落ち着きました。
そして、みんなのモチベーションも急上昇して、文字通り不眠不休で開発を行っていきました。笑
アイデアが出てからは、正直、ノリと勢いとテンションでやりきったという感じでした。笑
ですが、アイデアがとても面白く純粋に「これ作りたい!」と思えるので、開発がとても楽しい時間になります!
アイデアを妥協しないこと!
役割分担ってどうやるの?
僕たちのチーム構成は
デザイナー2人、フロントエンド1人、バックエンド3人
という合計6人体制でした。
このメンバーはハッカソン応募の時点でデザイナー、フロント、バックがちょうど4~6人になるように声をかけていきました。
最初の時点でバランスの取れたチームで挑むことは作業過程で大きく影響がでます。
個々の特性を考慮したチームメイク・もしくは事前のスキル補強をしましょう。
では、どのようにチームとして時間を使っていくのかを見ていきましょう。
ハッカソンにおいて時間配分は極めて重要になります。
なので、それぞれの分野の仕事にどれくらい時間がかかり、誰の作業が誰の作業に影響がでるのかをあらかじめ把握しておくことがチームとして効率よく作業を進めていく上で必須です。
アイデアが出てからは大まかな流れをチーム全体で確認をして
「誰の○○の作業が終わったら○○を△△に任せるね!」
というように、一番最初の時点で各自に役割分担をしていきました。
一番最初にチームとして見通しが立っていると全体の士気が上がり、自分のタスクを完了させるべき時間の具体的な目安がわかります。
初めてハッカソンに参加をする子にとっては、どういう流れで作業が進んで行くのか掴めないこともあります。
そういった子のフォローもかねて、一番最初の確認はとても大切です。
時間との戦いであるハッカソンでは、
どんなスキルレベルだとしても、必ず各自に仕事があります。
なので、経験者にとってこの確認は「当たり前・無駄な時間」に思えてしまうかも知れませんが、チーム全体として考えたとき、全体の流れを見える化してあげることがチームのためになるのです。
チームで各自の仕事を明確化して効率的に時間を扱えるようにします!
反省
アイデアを妥協することなく、経験者が中心となり、どのように開発を進めていくのかをチームで共有をしながらやっていくことができた点
この点はかなり良かったと思います。
AIの部分の精度にこだわった結果、完成したAIをアプリと結合する際の時間が足りなくなり最後に詰まってしまった点
そのため、次回以降はこの反省を活かし、もちろん満足の行く精度のものを作るのが大前提ですが、
それに加えて、今後はチーム内でプロジェクトマネージャの様に
「開発状況、精度、残りの制限時間を加味していったん次の行程に強制的に進ませる」
という決断ができる人作りをしていく必要があると思いました。
AIに関しては正直、どこまで精度を高めればよいという定性的な指標がないので余計に判断が難しいです。
ですが、限られた時間の勝負においては決断ができる人材は必須です。
そして、AIを扱う人間として、なぜこの数値で次の行程に進んだのかなどを、「チームメイト・審査員・ユーザー」に対してそれぞれに対して論理的に分かりやすく説明できるレベルにならなければならないと痛感しました。
今後はこの点を改善できるように目標意識を持って開発を続けていきます。
まとめ
ハッカソンで優勝するために大切なこと
- バランスの取れたチームビルド・事前のスキル補強!
- テーマ・ルール確認をしてハッカソンを分析!
- アイデアを妥協しない!
- チームで各自の仕事を明確化して効率的に時間を扱う!
- プロジェクトマネージャーを決める!
以上を意識して、ハッカソン優勝を狙っていきましょう!
タイピングもままならない完全にプログラミング初心者から
たった二ヶ月で
応用も簡単にできる…!!
という状態になるまで、一気に成長させてくれたオススメのプログラミングスクールをご紹介します!


