こちらは、MIXI DEVELOPERS Advent Calendar 2025 シリーズ2 の24日目の記事になります
※この記事は技術的な解説はありません。
ハッカソンでの体験やチームづくりの話が中心なので、気楽に読んでもらえれば嬉しいです。
はじめに
私はエンジニアとしてこの業界で働いて、もう10年以上になります。
そんな私ですが、これまで一度もハッカソンというものに参加したことがありませんでした。
ですが今年、思い切って初めてハッカソンに参加してきました。
本記事では、その場で自分がチャレンジしたことや、意識していたこと、そして実際に感じたことを振り返ってみたいと思います。
ハッカソンを避け続けてきた理由
なぜいままでハッカソンへ参加しなかったのか?理由は至極単純です。
- 仲良くできなかったらどうしよう(意外と人見知り)
- 役に立てなかったらどうしよう
- 足を引っ張ってしまったらどうしよう
こんな単純な理由で、ずっと敬遠してきました。
ハッカソンは知らない人同士で集まって、短期間でものづくりをするイベントなので、上記の不安要素が大いに効いてくるのです。
とはいえ、「楽しそうだな」「一度は経験してみたい」という気持ちはずっとありました。
参加を決意したきっかけ
毎年、仲の良い同僚たちが参加している「石巻ハッカソン」というイベントがあります。
彼らが楽しそうに話すのを毎年聞きながら、「いつかは行くぞ!」と思いつつも勇気が出ず、3年ほど断り続けていました(笑)
しかし今年は、いろいろと条件が揃い、ついに参加を決意しました!
同僚がいるので安心感がありましたし、学生やエンジニア未経験の方も多いと聞いていたこと、そして今はAIもあるので「そこまで足は引っ張らないだろう」という思いもあり、覚悟を決めました。
……とはいえ、初対面の人たちと仲良くできるかどうかは最後まで不安でしたけどね(笑)
参加直前まで悩んでいたこと
石巻ハッカソンでは、毎年事前に発表されたお題に沿って何かを作ります。
アイデアがある人がリーダーに立候補し、そのリーダーに共感する人たちがチームを選ぶシステムです。
私は普段、エンジニアというよりマネジメント寄りの仕事が多いので、
- エンジニアとして開発に専念するか
- リーダーとしてマネジメント力を試すか
を最後の最後まで悩んでいました。
知らない人たちが集まって一つの目標に向かってものづくりをする環境で、自分がどこまでチームビルディングできるのか、それを試してみたい気持ちもあったのです。
学生も多いと聞いていたので、息子と年齢の近い学生をフォローしながら物づくりするのも面白いかも、と思っていました。
とはいえ、人見知りのくせに初参加でリーダーをするには相当な覚悟が必要です(笑)
そのため、リーダーとしてマネジメントするか、エンジニアとしてどこかのチームに入るか……当日のギリギリまで迷っていました。
ついにハッカソン開始。高まる緊張
めちゃくちゃ緊張しました(笑)
周りは同僚を含め、以前から参加している方が多い印象で、みんな慣れた雰囲気のオーラを出しているように見えます。
「本当に馴染めるのだろうか……」と不安を抱えたまま、ハッカソンが始まりました。
いきなりリーダーに?同僚に背中を押された瞬間
オープニング後、「それではリーダー希望の方は前で発表をお願いします!」という流れに。
ぞろぞろと立候補者が前に集まっていきます。
「え?!こんな感じなの?話す内容なんて何も準備してないんだけど?!」
アイデア自体は用意していたものの、発表内容はまったく考えていませんでした。
「もうエンジニアとして参加するしかないか……」と諦めかけたそのとき、同僚たちからの後押しが。
「リーダーやらなくて良いんですか?」
「やりましょうよ!」
「今を逃したらリーダーできないですよ!」
その言葉でハッとし、「ここでヒヨって後悔するくらいなら、やってやる!」と奮起。
勢いで立候補することを決意しました。
単純ですが、後押しがなければ間違いなく立候補していませんでした。
最初の壁
立候補はしたものの、常連っぽい人たちがずらっと並び、順番に面白おかしくアイデアを発表しています。
「みんなテンション高っw」
みんなギャグなどを織り交ぜつつ、想像以上に高いテンションで発表していきます。
私は緊張がどんどん増し、「あ〜立候補しなきゃよかった……」と後悔ばかりしていました。
もはや、前の人の話なんて全然頭に入ってきません。
あまりにもヒヨってしまい、後ろの人に「先どうぞ」と譲ろうとしましたが優しく断られました(笑)
そうこうしているうちに自分の番に。
頭は真っ白。
もうアドリブでいくしかありません。
そして登壇!
何を話したのかは覚えていませんが、後で同僚が撮ってくれた動画を見たら、意外とちゃんと話せていました。
話した内容の要点はこんな感じ:
- 今回はリーダーシップを発揮したいという思いがあること
- ガンプラが好きなので、「ガチャン」というテーマに合わせてロボットが合体するゲームを作りたいこと
- 学生と一緒に開発してみたいこと
しっかり伝えられていて、しかも笑いも取れていました(笑)
「おお、やればできるじゃん」と思えた瞬間でした。
こうして、最初の壁はなんとか突破しました。
あとは、興味を持ってチームに来てくれる人がどれくらいいるか——です。
チームが集まり、いよいよ開発スタート
登壇後、参加者は気になったリーダーのもとへ集まり、チームが編成されます。
最初は同僚が1人来てくれたものの、その後は誰も来ず……。
「もう他のチームに混ざろうかな」と話していたところ、遅れて1人、また1人と来てくれました。
結果、希望していた学生たちも来てくれ、最終的には私を含めて10人の大所帯に!
めちゃくちゃ嬉しかったですね。
エンジニア経験者と未経験者が半々ほどの、多様性に富んだチーム。
これはマネジメントしがいがあります。
ここからはリーダーである私が取りまとめながら開発を進めていくことになります。
初めてのハッカソンなので、限られた時間でどうマネジメントするかは手探りです。
さて、どうするか……。
3日間で何を作る? ゴール設定と方向性決め
開発期間は初日を含めて3日間。
当日と最終日はほとんど開発時間がないと聞いていたので、いかに早く役割分担をして、各担当者に作業を委ねられるかが重要だと考えていました。
まずはメンバー全員で自己紹介をしたあと、私のアイデアをベースに「どんなゲームを作るのか」を話し合いながら、ゴールを決めていきました。
今回は当日になってから「裏テーマ」も発表され、それも絡める必要があったため、アイデアの再構築が必要でした。
- テーマ:「ガチャン」
- 裏テーマ:「冒険」
私はもともと、「ガチャン」から連想して、ロボットの四肢を選択して戦う2D格闘ゲームを構想していました。
しかし、そこに「冒険」要素も載せる必要があります。
そこで、元のアイデアをベースにどう改変するかをディスカッションしました。
「ここで話がまとまらなければ時間のロスになるな……」と内心ヒヤヒヤしていたのですが、思いのほか積極的に意見を出してもらえたおかげで、スムーズに目標が決まりました。
話し合いの結果、決まったのは以下です。
- 「冒険」からの連想で、ゲームジャンルを横スクロールシューティングに変更する
- ロボットの四肢すべてを選ぶのは大変なので、まずは「上半身」「下半身」のみ選択式にする
- ステージはまず1つに絞り、完成度を高めることに集中する
- 時間が余れば、優先度の高い部分から拡張する
- フレームワークはゲーム開発向けの pygame を使う
まとめると、「pygameを使って、2Dの横スクロールシューティングの1ステージを完成させる」 というのがゴールです。
裏テーマを聞いた瞬間は「どうしよう……」と思いましたが、すぐにゴールが決まったのは本当にありがたかったです。
このあたりから、緊張もほぐれてきて、だんだんワクワクが勝ってきました。
多様なメンバーで役割分担
ゴールが決まったら、次に重要なのは「みんなが自走できる状態をつくること」です。
各自が自分の役割を理解することで、自然とコミュニケーションが生まれ、より良いものを目指せると考えています。
それに、せっかく時間を使って参加してくれたからには、誰一人として手持ち無沙汰になってほしくない という強い思いもありました。
……あと正直なところ、初めての宮城だったので、自走できる状態にしつつ昼食時などは開発を抜けて同僚とご飯を堪能したいという邪な気持ちも少しだけありました(笑)
エンジニア経験者は役割がイメージしやすいのですが、未経験の方にどんな役割をお願いするかは工夫が必要です。
ゲームに必要な要素をタスク分解すると、大きく以下の役割に分けられました。
- プログラミング担当
- デザイナー(2Dイラスト・素材を作る)
- ゲームデザイン担当(ステージ構成・レベルデザインなど)
- BGM / SE 制作担当
自己紹介のときに聞いていた情報をベースに、「やってみたいこと」「得意そうなこと」を意識しながら担当を割り振っていきました。
このとき意識したのは、「できる・できない」よりも「本人のやりたいこと」を優先すること です。
基本的には立候補制にして、自主的に担当を持っていってもらいました。
ゲーム制作そのものが初めてという人が多かったこともあり、みんな「面白そう!」と前向きに役割を引き受けてくれました。(と、私は感じています。笑)
タスク分解で見えた“伝えることの難しさ”
ゴールと役割が決まったら、次はタスク分解です。
ゴールを決めた段階で大まかな仕様は決めていましたが、仕様書を作る時間もなく、サッと図解できるようなノートも持ってきていなかったため、細かい仕様はほぼ私の頭の中にある状態 でした。
ここで強く感じた課題が一つあります。
それは、「頭の中ではタスク分解できていても、それを他人に明確に伝えるのは難しい」 ということです。
同じ現場で長く働いているメンバーなら、多少言葉足らずでも意思疎通ができます。
しかし、今日初めて会ったメンバーにそれは通用しません。
大まかなイメージは共有できていても、細かい部分の想像は人それぞれです。
振り返ると、
初日は仕様書をみんなで作る時間をしっかり取る、という選択肢もあったなと思います。
今回は「こういう部品を作ってほしい」「最終的にはこういう画面になるイメージです」といった内容を口頭で伝えて回るスタイルにしてしまいました。
このやり方だと、ちゃんと伝わったかどうかは、完成品を見るまでは分かりません。
ただ、これは「マネジメントを試してみる」という目的もあった上での選択だったので、思ったものと違うものができたとしても、それもハッカソンの面白さの一つだと思うようにしました。
むしろ、そういった“ズレ”や“アクシデント”も含めて楽しむべきですよね。
もうひとつ意識していたのは、「何がいつまでに必要なのか」をしっかり共有することです。
- ゴールを達成するために必要な作業はどれくらいあるのか
- 限られた期間の中で、最低でもいつまでにどこまで終わっていれば良いのか
これをなるべく共通認識としてもてるようにしました。
ハッカソンでそこまでやるのは少し野暮かとも思いましたが、全体の進捗が見えると、今自分がどのあたりにいるのかが分かり、没頭しやすくなると考えたからです。
実際、最終日の追い込み時に「あと一つこの機能が入れば完成!」という状態が明確だったことで、チーム全体の集中力がグッと高まった感覚がありました。
これはやっておいて本当に良かったなと思います。
開発の本番!熱量あふれた2日目
ここまで長々と準備を書いてきましたが、このフェーズまで来てようやく「本格的な作業開始」です。
3日間のハッカソンのうち、まともに開発できるのは中日の2日目だけ。
初日はほとんど準備とディスカッションで終わってしまったため、2日目にどこまで作り込めるかが勝負になります。
「完成しないと判断したものは思い切って削る」という方針で臨んでいましたが、ありがたいことにチームに恵まれ、想定以上のスピードで進捗が出ていきました。
私はというと、ひたすらみんなの周りをウロウロしながら、
- 進捗を聞く
- 困っていないか確認する
- 雑談しながら場をほぐす
- 必要に応じてタスクの優先度を調整する
ということを繰り返していました。
人によっては「いや、お前も手動かせや」と思うかもしれませんが、マネジメントは信頼づくりが大切 だと考えているので、今回は「開発を通じたコミュニケーション」にほぼ全振りしました。
みんなが作ったものを自慢げに見せてくれて、「すごい!バッチリですよ!」「めっちゃいいですね!」なんて一緒に騒いでいる時間が最高に楽しかったですね。
とはいえ、私も細々とタスク化できていなかったブラッシュアップ(こういうエフェクト欲しいよね)的なところを作ったりはしていました。
この2日目は本当に最高で、
みんなで議論しながら、どんどん完成に近づいていく熱量がたまらなかったです。
学生も3人ほど参加してくれていたのですが、みんな本当に優秀で、当初イメージしていた「学生をサポートしながら開発する」という構図はまったく必要ありませんでした(笑)。
時には議論しながらも、自分で考えてどんどん進めてくれるので、驚かされるばかりでした。(本当に息子と同年代なのかと…笑)
当初は「19時までやって、そのあとは同僚と飲みにでも行くか〜」と軽く考えていたのですが、気づけば21時の閉館時間ギリギリまで追い込みで開発をしていました。
完全にハマっていましたね。
最終日:時間との戦いと、ギリギリの完成
そして迎えた最終日。
この時点での完成度は体感で 7割 ほど。
決してサボっていたわけではなく、みんな頑張っていたのですが、
- 思わぬ技術的なハマりポイント
- こまめに、pushしていなかったことによるコンフリクト
などもあり、思い通りには進みません。
最終日は、朝からお昼までの約3時間ほどが開発時間で、そのあとは発表用の屋台づくりの時間になります。
残りのタスクはほぼプログラム関連だったので、
- 屋台を作る組
- プログラムのラストスパートをする組
に分かれて作業を進めました。
そして、いよいよ発表の時間。
このときの完成度は 約9割。
- ボス戦までなんとか実装完了
- 残りは「ボス撃破後のクリア画面」のみ
というところまでこぎつけました。
発表形式は、他のチームのメンバーが屋台を回りながらお互いの作品を体験する、というスタイル。
私たちもゲームを紹介しつつ、裏側では最後のクリア画面の実装を進めるという、なんともハッカソンらしい状況でした。
チームでつくり上げた達成感
そして——
発表時間内に、ついにゲームが完成しました!
いやもう、本当に感動しました。
自分の拙いアイデア発表から始まり、見ず知らずの人たちが集まり、同じゴールに向かって走り抜けて、それがちゃんと「形」になる。
なんという達成感……!
閉会式もあっという間に終わり、他のチームはさらっと解散していきましたが、どうしても最後に感謝を伝えたくて、帰る前にチームメンバー全員に集まってもらいました。
そして、
「みなさんそれぞれの力を “ガチャン” したおかげで、無事ゲームを完成させることができました!」
と、テーマにかけた一言で締めくくりました(笑)
本当にチームのみんなには感謝しかありません。
最終日には、チームのみんなと別れるのが名残惜しくてたまらないくらいでした。
それくらい、良いチームができたと思っています。
振り返って
長々と書いてしまいましたが、この歳で初めてハッカソンに参加した感想はシンプルに一言、
「ハッカソンは楽しい」
です(笑)
「チームビルディング」と言うほど大げさなものではないかもしれませんが、
出会ったばかりの人たちと最高のチームを作るために、自分のマネジメント能力を試してみる というチャレンジは、個人的にはうまくいったと思っています。
- 10人という大所帯のチームで
- 1人も置いてきぼりにならず
- 最後まで全員が開発に参加し続け
- 議論し、熱中し、笑い合いながら作り切れた
という事実が、その根拠かなと。
結果的に、自分が目指していたチーム像に近い形になったのではないかと思います。
また、学生の子から「チーム開発が経験できて、すごく楽しかったです」と言ってもらえたのも、とても嬉しかったですね。
一方で、
- がっつりタスク管理したことで、ハッカソンの「自由さ」や「ゆるさ」を壊してしまっていないか
- もっとラフでもよかったんじゃないか
と、少し気になったりもしましたが、今回一緒に参加してくれたメンバーも、自分と同じくらい楽しんでくれていたらいいなと思います。
来年もぜひ参加して、そのときはまた新しいチャレンジをしてみたいです。
さいごに
技術記事でもないのに、ここまで長々と(もはや日記のような)記事を読んでいただき、ありがとうございます。
今日はクリスマスイブですね!
お子さんがいるみなさんはサンタになりきる準備は万全ですか?(笑)
我が家は準備万端ですが、また子どもに「サンタが来るまでは絶対寝ない!」と言われないか、今からちょっとだけ不安です(笑)
それではみなさん、素敵なクリスマスを!! 🎄✨