技術部 SRE グループの奥村 (@hfm) です。クックパッドでは Hackarade というエンジニアの技術力の底上げを目的とした社内ハッカソンを不定期に開催しています。テーマは毎回異なり、2022 年 8 月 3 日に開催された Hackarade では AWS GameDay を題材としました。本記事ではそのイベントをレポートします。
AWS GameDay と開催経緯
AWS GameDay は ISUCONのようにスコア計測があるトレーニングプログラムで、テーマに沿って自分で考えながらシステムを構築しつつ、時に障害に対処したり、スキルアップを図る実践的な内容になっています。AWS re:Invent などで開催されるものに任意参加するのが一般的ですが、今回は社内向けに開催してもらいました。GameDay という名の通り、AWS に関するクイズだけにとどまらないゲーム要素もあり、全くの AWS 初心者でもルールの範囲内である程度戦いようがあるように設計されています。
クックパッドは AWS をフル活用しており、SRE グループは社内でもとりわけ使い込んでいます。一方他の部署では、Solution Architect の Associate や Professional の資格を持っているエンジニアも何人かいますし、AWS に馴染みのあるエンジニアもいる一方で、例えば「なんとなく S3 などを使ってはいるけど、マニュアルやドキュメントをちゃんと読んで機能を把握した上で使いこなせているわけではない」といった人たちもいます。仕事の関係上、AWS に触れる機会が少ないエンジニアの方々にも AWS への理解を深めてもらうことで、クラウドを使い倒すスキルを向上に貢献したいという思いが開催の一番大きな理由でした。
AWS GameDay はチーム戦となっており、今回は合計 65 名 15 チームで競い合いました。チーム編成は参加者に任せて、適当に用意したリポジトリの Issue でそれぞれメンバーを募ってもらいました。チームごとのスキル差があまりに激しいようであれば手を入れようかと思っていましたが、特に何もせずともそれなりにバラけていました。
AWS GameDay の仕様的には個人参加も可能みたいでしたが、チームで相談しつつ取り組んでほしかったこともあって 3〜4 人のチームを組んでもらうことにしました。
また、AWS GameDay 自体が初めての人も多かったので、事前にもらっていた AWS GameDay のシナリオ(簡単なゲームルールだったり、求められる AWS サービスの知識が書かれたスライド)の予習会を開きました。シナリオ中に登場した AWS サービスのドキュメントを読みにいったり、またクックパッドには AWS サービスを自由に試せる本番用は別の開発用 AWS アカウントがあるのですが、そこでサービスを試しに使ってみたりしたエンジニアもいました。
当日の形式や様子
スケジュールは 13 時から 18 時までの 5 時間で、シナリオについての説明が行われたあと競技が始まり、競技後は表彰を行うといった流れになります。今回は Unicorn Polo League (UPL)*1というシナリオでした。あまり中身に触れることは出来ないのですが、シナリオごとに異なる世界観があり、UPL ではユニコーンレンタル市場という架空の市場におけるスタートアップ企業として、経営課題を解決するために競技に挑むという形式になっています。競技では英語で出題される複数のクエストを解きつつ、ユニコーンを他チームと戦わせるといったゲーム的な要素もありました。
SRE グループに対する特別ルール
AWS GameDay を社内開催するにあたって SRE グループのメンバーをどうするかに小さな課題がありました。というのも、SRE は通常業務でもっとも AWS に触れているグループであり、他のチームに混ざるとチームごとの戦力差が出すぎてしまわないかを懸念していました。
そこで、SRE は SRE だけでチームを組むことにし、さらに特別ルールとしてイベント中にいつでも他チームからの質問を受け付けるという、環境デバフというかバランス調整を行ってみました。他と比べてチーム人数がやや少ないこともあり (2 人 1 組、3 人 1 組の計 2 チーム)、人数差はそれなりにいいバランス調整になりましたが、結果的に他チームから一切質問が来なかったのでもう少し工夫の余地はあったかもしれません。
バーチャル会場
また、イベントを盛り上げるための工夫として Gatherを使ったバーチャル会場を用意しました。オフィスに集まって参加しているチームもいましたが、コロナ禍で全員がオフィスに集まることも難しく、しかし多くのエンジニアが参加するイベントでワイワイ感を少しでも演出するために Gather を試してみました。Gather を利用するのが初めての人も多数いましたが、マップを移動出来れば十分なのでそこまでバーチャル会場特有の困難は無かったように思います。
また、AWS の人にも Gather スペースに常駐してもらい、AWS GameDay で分からないことがあったときに質問しにいくことが出来るようにブースを設けました。実際競技中に何度か質問に向かっている人たちもいるようでした。
こうした社内イベントに Gather を利用するのは初めてでしたが、最低限の空間(チームごとに集まれるエリアや質問ブース、全体アナウンス用の集合場所など)を用意しつつ、あとは参加者全員に Builder 権限というマップの編集権限を渡してみたところ、みんなが良い感じにマップを改変してくれました。
競技効率を考えればチームごとに Slack チャンネルと Zoom を用意する方が集中しやすくていいと思うのですが、画面上のキャラクターによって他者の存在を感じやすい点はお祭りイベントと相性がいいように思います。
終わりに
ゲーム後の社内アンケートでは、歯ごたえのあるゲームルールのおかげでチームごとの戦略の違いによる差が出て面白かった点や、今まで触れたことのない AWS のサービスや機能に触れる機会が生まれた点、普段業務で AWS を触っている人にとっても既視感のあるシチュエーションを模した問題があって楽しめた点などが好評でした。
冒頭にも書いたとおり、今回の AWS GameDay は Hackarade という社内の枠組みの中で開催しました。Hackarade はエンジニアの技術力を底上げするための取り組みで、チームで競い合う以外にも様々なやり方があり、たとえばクックパッドのデータを使ったワークショップみたいな企画も今後やっていきたいと考えています。また、過去には段階グランプリという名前で、より ISUCON に近い形式の社内イベントも開催してきましたが、この手の競技性のあるゲームはまたいずれやりたいと思っています。