12/13-12/21の9日間で行われたP2HACKS2025 Post-PBL部門で最優秀賞を受賞しました!
P2HACKSとは
P2HACKSは、2019年から始まった、はこだて未来大学の学内ハッカソンです。
その歴史については、2023年まで運営をされていたゆひさんの記事をご覧ください。
弊学では、学部3年次に、1年間(5月から1月の実質9ヶ月間)を通してチーム開発を行う、PBL型の必修科目プロジェクト学習があります。
単にチーム開発を行うのみではなく、プロジェクトをうまく進めていくための手法を学びます。
P2HACKSは、(ここ3年ほどは)9日間に渡って開催されるそこそこ長めなハッカソンです。
そんなハッカソンで、プロジェクト学習を経験している人とそうでない人とでは、ハッカソン前・期間中の過ごし方、成果物に至るまでのプロセス、成果物のクオリティが全く違います。
そのため、P2HACKSでは、2つの部門に分かれています。
- Pre-PBL部門: プロジェクト学習を経験していない学部1-2年向け
- Post-PBL部門: プロジェクト学習を履修中あるいは経験した学部3年以上向け
2つの部門の一番大きな違いは、賞です。
Pre-PBL部門では、最優秀賞、優秀賞、スポンサー企業による企業賞が用意されています。
一方、Post-PBL部門で用意されているのは、最優秀賞のみです。
P2HACKSと私
学部2年だった2022年から修士1年になった今年まで、毎年参加しています。
2022年は、賞が豊富なPre-PBL部門に参加できる、最後の年でした。
が、なんと、最優秀賞と2つの企業賞を受賞しました。
当時は、iOSアプリ開発を始めてまもなく、知識も経験も乏しい中、非常に優秀なデザイナーのおかげで最優秀賞と2つの企業賞を受賞することができました。
ということで、今年ついに、筆者個人で見れば、Pre-PBL部門とPost-PBL部門の2冠を達成したことになります。(すみません、ただの自慢です)
ただ、Post-PBL部門での最優秀賞受賞は、そう簡単ではありませんでした。
2023年と2024年は、Post-PBL部門に出場し、負け続けました。
自分が最も信頼するデザイナーと出場し、自分たちのプロダクトに自信を持っていただけに、エンジニアとしての悔しさと、自分たちがどの程度評価されているのかがわからないもどかしさと、あの時の気持ちは忘れられませんでした。
そこから1年間、Open Hack U 2025 Tokyo、JPHACKS 2025などのハッカソンや、高度ICT演習で行われているプロジェクトを通して、様々な準備を重ねてきました。
- 最も正しくてシンプルで汎用的な技術構成
- 効率的に効果的な発表資料を作成するプロセス
- チームメンバー間のコミュニケーション、スキルチェック、スキル向上
言語化すると、非常にシンプルになってしまいますが、目に見えない準備や経験をたくさん積んできました。
アイディアを固めるまでのプロセスは、何度やっても慣れませんが...
また、P2HACKSに特化した準備として、昨年までの実績から今年も求められそうな成果物(アピールシートなど)をどのように運用し作成するか、という議論も行いました。
このように、昨年の敗北から、今年こそは絶対に勝つという確固たる決意から、隙のない成果物とチーム運営を目指し、さまざまな準備を行ってきました。
昨年の敗北を経験し、1年間一緒に準備をし、都度とことん議論してくれたまさやさんには、心から感謝しています。(彼も相当悔しかったはずです)
ハッカソン期間中の過ごし方と開発プロセス
胃腸炎
一応、このあと記述する内容の前提知識として、筆者は、ハッカソン開始前から7日目まで胃腸炎で家から出られませんでした。
その間、Google Meetでコミュニケーションをとりながら、ベッドに横たわりながら開発していました。
前半は割と意識が朦朧としていたので、記憶違いもありそうですが、ご容赦ください。
期間中最大のIssueがアサインされていました。
1日目
さて、ここからが本題です。
1日目は、オープニングでテーマが決定されます。
テーマはキラキラ。相変わらず難しい。
テーマが決まってからは、アイディアを発散させる時間に。
キラキラから連想されるキーワードを列挙してみました。
が、びっくりするくらい、そこから何も思い浮かばず。
翌日までに、各メンバーがアイディアを持ち寄り、さらに議論を深めることに。
2日目
キラキラといえばキラキラカードだよね、キラキラといえばキラキラエンジニアだよね、から、GitHubのProfileをキラキラカードにして、集められるアプリを作ろうということに。
普段なら、そのアイディアに至る過程をもっと厳密に議論するところですが、厳密すぎるのが逆に良くないのでは、ということになり、一旦突き進んでみます。
ざっくり仕様を決め、デザイナーはFigmaでプロトタイプ作成、エンジニアはデータモデリングとTypeSpecでAPIの仕様を決めていきます。
ここもざっくり決まれば、開発スタート。
このざっくり加減とスピード感は、変更を恐れない気持ちと仕組み、メンバー間で形成される共通認識によるものなのでは、と思います。
3-7日目
この期間は、平日で授業や本選考の面接などを受けながら開発を進めていきます。
取り組むタスクはIssueを起票し、ざっくり仕様を書きます。
Issueごとに実装され、PRを作成・マージしていきます。
モバイル・バックエンドどちらかが仕様変更を要求した場合、TypeSpecを変更し、柔軟に変更していきます。
クリーンなレイヤードアーキテクチャを採用していたモバイル視点で見ると、APIの仕様が変更された時、OpenAPI GeneratorによりAPIのモデルは自動生成され、ドメインモデルに変換するRepository層のみの変更にとどめることができます。
そして、任意のタイミングでドメインモデルを変更し、機能を実装・変更していくことができます。
これら繰り返しで、7日目には、TestFlightの内部テストを配布できていたと記憶しています。
8日目
ようやく胃腸炎から解放され、現場に復帰。
やっぱり、対面のコミュニケーションは素晴らしいです。
逆に体調が回復していく気さえしました。

発表でみんなに使って欲しいということになり、TestFlightの外部テスト審査に提出。間に合うのか...
コードフリーズはこの日の24:00でしたが、21:00くらいには、全てのIssueがCloseされ、発表資料の準備を始めていました。(27:00まで...)
こんなに(コードフリーズ直前に)余裕のあるハッカソンは初めてです。
22:00頃には、TestFlightの外部テスト審査が通っていました。よかった...
9日目
発表当日。
Post-PBL部門の発表が最初に行われ、発表順は10チーム中5番目。
発表は早めに終わり、残りはPre-PBL部門の発表を見たり、のんびり過ごしたり...
疲労困憊でした。
今年は、クロージング前に懇親会が開催され、他の参加者やスポンサー企業と交流する機会がありました。
懇親会どころではなく、結果のことで頭がいっぱい。
さて、結果発表。
Post-PBL部門の最優秀賞は...
The Avengers !!

この後、予定があったため、バタバタして、余韻に浸る暇もなく終わってしまったのが少し残念ですが...

昨年のリベンジも果たせました!やったよ、なのさん!!

次の日
Pre-PBL部門に出場していた後輩から、「最優秀賞おめでとうございます!」とかわいいお菓子をいただきました。
なんて良い子たちなんだ...ありがとう!!

最後に
昨年までの悔しさと今年1年間の経験が実を結んだ結果となり、言うまでもなく、とても嬉しいです。
正直、筆者やメンバーの開発スタイル的に、ハッカソンに向いていないのではないかと思っているので、来年もP2HACKSに出るかは分かりませんが、今後もいいプロダクトづくりに励んでいこうと思います。
