🎖️

私が約100チーム参加した技育CAMPアドバンスで優勝出来た理由

2023/03/05に公開

要約

  • Google Calendarと連携し、スケジュールの入力を容易に行うことが出来るアプリMagi-Scheを開発しました。
  • チームでMagi-Scheというアプリを開発し、サポーターズさん主催の技育CAMPアドバンスVol1というハッカソンで優勝しました。予選から考えると100チーム近くの参加があったと思います。
  • この記事はハッカソンの感想のポエムだと思って下さい。
  • プレゼン資料はこちら
    です。アプリの仕様や背景等は綺麗にまとまっているのでこちらをご覧下さい。

アプリ案出し

私たちは即席チームだったので、今回のハッカソンで何を作るかから話し合いました。日程調整のアプリを作りたいというチームメンバーがいたので、日程調整のアプリを作るという流れになりました。ただ、普通の日程調整アプリだと勝てないので、私が前々から感じていた課題である、「スマホだと、カレンダーと日程調整用のアプリを同時に見れないため、何回も行き来しなければいけないのがめんどくさい」という課題を解決したい!という風に提案しました。アプリのコンセプトとしてはこれが始まりです。

(こんな感じで日常で思いついた作りたいアプリをメモしてます。)

開発中に考えていたこと

無駄な機能を開発しないように心掛けていました。私には師匠が何人かいるのですが、「みんなが使いやすいアプリは、誰からも使われない」という師匠の言葉を胸に開発を進めていました。○○というニーズがあるかもしれないから、こういう機能を追加しよう。というような架空のユーザの声をもとにアプリは機能が発散しがちです。アプリは開発者のエゴの塊であるべきで、こういうユーザの課題を「俺たちは」このように解決するんだ。という考えをユーザに押し付けるべきとすら私は思っています。今回は、Google Calendarと連携することで、カレンダー情報を見ながら日程調整が出来るというコンセプトが明確にあったので、その体験をユーザが感じることが出来る最小限の機能を最大限に実装することを個人として心掛けていました。しかし、このような考えを即席チームに、オンラインで理解してもらうのは大変難しいので、そのような流れになるようにMTG内でやんわり誘導していました。正直なところ、大分うまく行ったと思っていて、無駄な機能は一つもないと思っています。

自分の担当

自分はフロントエンド開発を担当しました。主にバックエンドとUIの繋ぎ込みのロジックを担当していました。素晴らしいUIを作れるチームメンバーがいたので、UIの部分は完全にお任せしました。バックエンドとの通信をgRPCで行ったのですが、ブラウザからgRPCを直接呼べないため、gRPC Webと、envoyを使い、ブラウザからのHTTP通信をプロキシを通してRPCのプロトコルに変換する必要がありました。初めての挑戦であったためかなり苦労しましたし、他のチームメンバーにも助けてもらいました。その他、よくよく考えるとバックエンドで行うべきであるAPIレスポンスを表示用に変換するロジックであったり、細かなUI修正をザクザク片付けてったりと、フロントエンドに関して幅広く開発しました。

優勝できた理由

私のチームは、予選では30チーム中7位(くらい)でした。つまり、ギリギリ本選に進めるぐらいの温度感であったと認識してください。そのチームが、本選で優勝できた理由を他チームと比較したり、スポンサーの企業様のフィードバックをもとに考えてみました。

採点する層の違い

前提知識から共有しておくと、

  • 予選では、参加者(学生)のみの投票をもとに運営が賞を決める
  • 本選では、スポンサー企業様からのポイントが大きい(学生の1票の10倍)

という違いがありました。優勝できた理由に関しては、ここが一番大きかったと思っています。
私たちは他のチームに比べて技術的に優れてはいませんでした。ただ、世の中の全ての事象は、技術的に優れているから素晴らしいわけではありません。音楽だって、技術が素晴らしくても必ず売れるわけではないし、絵や、研究もそうです。サービスも例外ではありません。特にビジネス面では、競合との勝負であったり、マネタイズのしやすさ、どのようなユーザのどのような課題をどのように解決するのか?が問われます。もちろん技術力があれば解決できる課題が増えますが、ただそれだけです。もちろん、技術力は解決できる課題を増やすために必ず必要だと考えています。
一般的には、このような視点を持っている学生は少ないと考えています。そのため、予選では良い賞を取れなかったのかもしれません。一方、本戦ではこのような世界で戦っている企業の方々の票が存在し、かつそれの重みが大きかったのが勝てた要因だと考えています。また、そのことを加味した上でプレゼンをしたかったので、プレゼンを作ってくださる方に以下のようなメッセージを送ったりもしました。

Prodution Readyであった

ギリギリProdution Readyな状態にまでもっていきました。多分。
ユーザがこのアプリのコンセプトを体験できるレベルには実装を全て終わらせた状態でデプロイまできちんと終わらせました。市場に出すとなると、考慮すべき点が実際はかなり増えます。このような点はそのような世界で戦っている方はよくわかると思います。「デプロイしてて偉い」という言葉をよく聞きますが、これは適当に褒めているわけではなく、「公開できるレベルまでアプリを完成してて偉い」というニュアンスを含んでいると思っています。
師匠たちには、「発表の時にデモがない・デプロイしていないのはゴミ」と口酸っぱく言われていたため、本選では絶対にデプロイしようと決めていました。

チームメンバー

とにかくチームメンバーが優秀でした。バックエンドは一人で開発してくれたし、UIの部分は全て任せれる人がいたし、Google Loginの部分も実装してくれた人がいて、自分が分からないインフラやプロキシの部分等も知見があるメンバーがいたので、本当に感謝を申し上げたいです。ありがとうございました。

ハッカソンで気付いたこと

  • 自分の知識のなさにびっくりしました。フロントエンドエンジニアになりたいと考えていましたが、バックエンドやインフラ、DB等の知識が無いと役に立たない人材だという事実を改めて実感しました。だって、自分が作ってるサービスがどのように動いているか分からないってことですよ?こんな怖いことありますかね。なので、もっと幅広く勉強しようとおもいました。
  • 自分のプロダクト思考が間違っていない事を再確認できました。特に、学生だけでなく企業に評価されたことから、他の学生たちと比べて秀でていると感じ、自分の強みを再確認できました。技術力に関してはかなり劣っていると感じたので、引き続き学んでいきたいです。

最後に

投票してくださった皆さんや、チームメンバー、そして素晴らしいイベントを主催してくださったサポーターズさんにはもう一度感謝を申し上げたいです。

Discussion