『呪術廻戦 ファントムパレード』運営開発チーム内での業務効率化を目的とした1DAYハッカソン実施事例

はじめに

サイバーエージェントに2014年新卒入社した、サーバーサイドエンジニアの岩上です。

先日、『呪術廻戦ファントムパレード(以下、ファンパレ)』のサーバーサイドを開発しているサーバーチームで、1dayハッカソン「Heartbeat Hackathon ~ Servers in Love ~」を実施しました。これまでやったことのないイベントを提案・実施してみたので不安でしたが、結果としてたくさんの素晴らしい機能が実装されました。

本記事では、ハッカソンをどんな目的で実施したのか、実際にどのような成果が出たのか等を紹介したいと思います。

ハッカソン発案までの流れ

今回実施したハッカソンは、ファンパレがリリースしてから数ヶ月が経過し、チームの動きも運用も安定してきたタイミングで発案しました。

これまでの経験から、スマホゲームの運用中のエンジニアはどうしても同じような作業の繰り返しになりがちでした。
チーム内でより新しい挑戦や改善をできるようにしたいという思いがあり、以下のようなことを狙って1dayハッカソンを提案・実施することにしました。

  • 業務効率化を加速させること
  • サーバーチームの活性化
  • チーム内コミュニケーションの加速
  • お祭り感を出して、みんなリフレッシュ

加えて、このハッカソンはメンバー1人1人が他職種のメンバーの事を考えて改善する機会になる事を目指しました。
サムザップのエンジニアビジョンの要素である「自分たちの組織は自分たちで作る」を実現する機会を創出することで、より一層メンバーの改善意識が向上することを狙いました。

なお、ハッカソンの名前は、生成AIにイベント名の候補を出してもらい、その中から良さそうなものを選びました。
バレンタインデーに開催することにちなんで、「Heartbeat Hackathon ~ Servers in Love ~」としました。

ハッカソンの詳細

ハッカソンのテーマは「管理画面 or デバコマ*1で要望されてないすごい機能を実装する」としました。

開催日は、サーバーチーム全員で一日中MTGルームに籠って、ハッカソンを行います。
リモートで作業されている方とはZoomをつなぐことで、オンラインからも参加できるようにしました。

その他のレギュレーションは以下の通りとしました。

  • コードは汚くても良い
  • テストコードは実装しなくて良い
  • 見た目もこだわる必要はない
  • 成果物はいくつ出しても良い
  • 半年以内にプロジェクトにジョインした人のみ、アイデアだけで提出して良い

とりあえず便利な機能が他職種の方が触っても伝わる状態で十分、見た目やリファクタリングや詳細を実装するのは導入すると決まってからやればいい、そのような考えでした。

また、ハッカソンなので、成果物を審査して表彰を行うことにしました。

  • 成果物のジャンルに応じて、QAチーム、CXチーム、プランナーチームのいずれかのメンバーが審査を行う
  • 中でも、「これは凄い!これはありがたい!」と思うものトップ3を選定して、表彰する

表彰があるとやる気がより出ますよね。

当日までの準備

プロジェクトへの周知

当時10人のサーバーメンバーが集中してハッカソンへ取り組むために、事前のプロジェクトへの周知も重要でした。
チームのキーマンや各分掌のリーダー陣に告知して協力してもらいつつ、メンバー全員に対して朝会やSlackにて当日の動きについて連絡し、円滑にハッカソンが進められるように準備をしました。

お楽しみ要素の準備

イベントを盛り上げるため、いくつかお楽しみ要素を準備しました。準備したものは以下の通りです。

  • ランチ用のお弁当の準備
  • 社内カフェの飲み物を提供
  • お菓子も提供
  • 表彰者への豪華ランチ

個人的に、ハッカソンといえば、ランチもセットだろう!と思い、ランチも用意してもらいました。また、社内にはカフェがあり、またカフェラテが好きなので、ハッカソン中は飲み放題としました。(カフェラテをたくさん飲みました。)

その他

その他、準備したことは以下の通りです。

  • 審査員への声がけと事前説明
  • 成果物を記載するNotionページ・DBの準備
  • 実装を行う環境と、実装を行うブランチ名等のレギュレーション策定
  • MTGルームの予約

ハッカソン当日

予定通りバレンタインデーにイベントを開催しました。
11:00~18:00の7時間、サーバーサイドエンジニアがハッカソンに集中することができました。

無事イベントは終了し、結果として20ほどの機能・アイデアが提案されました。

ハッカソンの感想

イベント中は、いつも以上にメンバー同士が仲良く盛り上がった印象です。
また、なかなかアイデアが出てこない方もいましたが、それでも頑張って考えてもらえました。このようなサーバーメンバー全員が他職種の作業を考える機会というものはなかなかないと思うので、個人的にはとても良い機会を作れたかなと思います。
加えて、普段あまり話さない組み合わせでの会話も生まれた印象がありました。チーム内のコミュニケーションも促進できて、良かったと思います。

参加者からも、「楽しかった」「ゲームの開発、仕様が決まって作業することが多いので、自分で仕様を考えるのが良かった」というような感想を頂きました。

審査員の方からの感想もご紹介します。

  • 普段お願いしてやっているけど、エンジニア視点で考えてくれるし、できたものも欲しい機能になっていたので、もっとやって欲しい
  • 要件を考えるのも工数かかるし大変なのに、エンジニア側で考えて実装してくれるので楽だしすごいありがたい
  • 今回のようにエンジニアから提案してくれて作ってもらえるのはとてもありがたい
  • このイベントを通して、審査員側(CXチーム、QAチーム、運用チーム)のこういう機能があったらいいなみたいな視点とエンジニアがこういう機能があったほうがいいのかなという視点のすり合わせができて良い機会。これからがより良いアウトプットが期待できそう
  • またこのイベントをやって欲しい!

結果として、参加者側からも審査員側からも好評で、プロジェクトに対しても良い貢献ができたイベントになったかと思います。

ハッカソンを通して提案された機能の紹介

ここからは、ハッカソンで提案された機能を紹介させていただきます。

お知らせ内容チェッカー

生成AIにお知らせ本文をチェックさせる機能が提案されました。 以下のようなレギュレーションをあらかじめ設定しておくことで、お知らせ本文に表記の問題が無いかを生成AIが確認してくれます。

|致します|いたします|
|頂き|いただき|
|有難う、有り難う|ありがとう|
|経験値|EXP|

ハッカソンのサンプルでは社外のAIツールを使用しているため、セキュリティの都合上まだプロジェクトへの導入には至っていません。 しかしながら、プロジェクトに生成AI活用の可能性を伝えることのできた提案となったと思います。

マップイベントの進捗をグラフで見れる機能

マップイベント*2の進捗を管理画面上で簡単に見れる機能が提案されました。

画像のようにグラフで表示され、ユーザーがどのマスをクリアしていて、どのマスに今挑戦可能なのかを見ることが出来ます。 お問合せを頂いた際の調査が楽になるとのことで、CXチームに大変好評な機能でした。

ログを一覧で表示する機能

管理画面上で、特定のユーザーによってサーバーに出力されたログを種類問わず全て纏めて確認できる機能が提案されました。

今までは、アイテム数の増減ログや、強化ログなどそれぞれの画面で確認する必要があったものが、一括で確認できる機能になります。 主に開発中機能の不具合調査で便利そう、と評価されました。

おわりに

サーバーチームで開催した1dayハッカソンを紹介させていただきました。

サーバーメンバーは楽しむことができ、プロジェクトにも貢献できて、とても良いイベントになったと思います。
また、このイベントをきっかけに、普段の業務からチーム全体を意識して広い視野で働ける人が一人でも多くなるといいな、と思っています。

リフレッシュも兼ねて皆さんのチームでも開催されてはいかがでしょうか。


©芥見下々/集英社・呪術廻戦製作委員会 ©Sumzap, Inc./TOHO CO., LTD.


岩上 裕樹

株式会社サイバーエージェント サーバーサイドエンジニア
2014年新卒でサイバーエージェント入社
『呪術廻戦 ファントムパレード』にて開発に従事


守田 一喜

2022年新卒入社 サーバーサイドエンジニア
『呪術廻戦 ファントムパレード』にてバックエンドのテックリードとして開発に従事
(本記事の共同執筆者)

*1:デバッグコマンドの略で、開発中の機能をデバッグするために開発されたツールのこと

*2:マップイベントは、広大なマップを探索しながら強敵の討伐に挑戦するイベントです。スタートマスから開始し、順番にマスを攻略していくイベントになります。