エンジニアの鈴木(健)(@szk3)です。
re:Invent 2017の2日目のレポートになります。 前回予告したとおり、GameDayに参加してきました。
本記事は、その参加レポートになります。
GameDayとは
GameDayとは、危機的な状況にあるスタートアップのアプリケーションをAWSの知識を使っていい感じにするハッカソンです。 いい感じとは、サービスの安定化だったりCI/CDの構築だったり、実務でありがちなシチュエーションへ適切な対応を施すイメージを持ってもらえれば大体あっていると思います。
内容の詳細は、こちらのリンクから御覧ください。
GameDayまでの道のり
GameDayには弊社磯野も参加するため、すこし早めに一緒に部屋を出てベネチアンで朝食を取りました。
英語でのコミュニケーションに不安を感じる二人とは対照的なすっきりとした青空が印象的でした。 少し肌寒い感じでしたが、気持ちのいい朝日を浴びて会場に向かいます。
会場入り
会場に入場する際にSeat reservedを確認してもらい、受付へと促されました。 受付では、AWSやビッグデータなど複数の項目に対する経験について5段階評価で応えると、「君は28番テーブルだよ、これがバーコードね」みたいな感じで簡単に席が決まります。
バーコードは、会場テントの再入場に必要なようでした。
会場は結構人がいて、後から聞いた話だとざっくり60チームくらい参加してるという話でした。 1チーム4人なので、約240人が参加することになります。
ドキドキしながら自分のアサインされたテーブルに向いました。すると、チームメンバーの1人は日本人で某有名企業のビッグデータ周りを担当されている方でした。こんな日本人が少なそうなところで珍しいなと思っていたら、なんと磯野のチームは3/4が日本人だったそうです。
メンバーに日本人がいるからと行って、英語で会話しないわけがないのですが、母国語が話せるメンバーが身近にいるというのは安心感がありました。
そんな感じで、自分の配属されたテーブルはSten, Hiro, Matt, Ken(現場での呼び名、左上から時計回り)が揃いました。
アイスブレイク
お互い軽く自己紹介をし、自分のターンで弊社のことを質問されたので、「realestate search serviceを提供しているよ」と答えたらピンとこなかったらしく、「like zillow」と付け加えたらすぐに理解してもらえました。 グローバルな視点で競合するサービスを押さえておくと、意外なところで役に立ったりするものです。
お互いの自己紹介が終わった辺りで、英語を使ったコミュニケーションへの不安を払拭するため、「コミュニケーションツールどうする?Slackでいいかな?」と自分から提案してみました。
すると、「OK、おれが作るよ」といってMattが作ってくれました。じゃ、メアドこれだから招待よろしくって感じでサクッと環境が整っていきます。
なんか、始まってもないのにいい感じじゃないか!とイケそうなイメージが膨らんできました。
開始まで暇だねー、などと雑談しながら待っているとSlackでチームが立ち上がりました。 すかさず、HiroがThe Top Eight Tips for GameDay Successという記事を共有してくれました。利他すぎるではありませんか!
実はこの記事は自分も読んでおり、そこに書いてあるジョーク「Bring cookies for the support staff!」を真に受けて、クッキーを持ってきていました。なので、「クッキーもってきたよ!みんなで食おうぜ!」と、みんなにシェアできました。
GameDay
そうこうしてると、運営によるGameDayのブリーフィングが始まりました。
スタッフが回って来て、各テーブルにチームのハッシュキーが書かれた紙を置いていきます。 これを使ってGameDayのダッシュボードにログインするようです。
しかし、みんな一斉に会場のWi-Fiに乗ったせいか、ネットワークが異常に重くログインできない状態が続きました。 ネットワークへ繋がりにくい問題は後々まで会場全体を苦しめることになります。
運営からチーム名決めてというアナウンスがありました。
日本だと「どうするー?何にするー?」と忖度が始まり、ふわふわしがちなのですが、Stenが複数のチーム名候補をビシッと出してきました。この姿勢には刺激を受けました。
Slackで投票し、チーム名はRoute28に決定です。
ブリーフィングの中で印象的だったのは、「HOW TO GET BACK TO SUCCESS?」という成功へ回帰するため行動指針です。 5つの行動指針の頭文字を取ってSTACKと名付けていました。いい行動指針ですね。
ブリーフィングが終わった頃には、全員がログインできておりダッシュボードが確認できる状態になっていましたが、 新しい画面を開くたびにWi-Fiと繋がらない問題が多発し、ローディング画面で待たされることが続きました。
全員がGameDayのダッシュボードが開けるようになると、全員で最初の問題を確認する動き方になりました。 Mattが自分の端末で途中まで作業していたので、そこをサポートする形になりました。
ちなみに、ダッシュボードの画面構成は、現時点での自チームの得点と総合ランクや、チームに付与されたAWSアカウントのコンソールへのログインリンクなど、GameDayに必要なものがコンパクトにまとまっていました。
問題の形式は、GameDayの説明の一文「Can you support and evolve this application over time to achieve the most efficient architecture?」にあるように、時間の経過で増えていくメインの問題と、ミニゲーム的な問題に分かれていました。
メイン側の最初の問題を全員ですぐに解いた後で、MattとStenが「分業しようぜ。」って言ってくれたので、メインの問題に自分とMattが取り組み、ミニゲームが二問あったので、それぞれをStenとHiroが分業して取り掛かることになりました。
メインの問題は、MattのMacを使ってAWS Consoleを見ながらペアプロのような形で進めました。自分の役割はオブサーバです。 ふたりでやり始めた2問目は、比較的簡単な問題だったのですぐに完了しました。その上で、システム安定化の為に冗長化の対応をしていました。
それくらいのタイミングで10位になったのでコレは行ける!と思っていたのですが、
その後は徐々に順位を落とし、アップダウンを繰り返しながら最終的には23位でした。
わりと余裕があったのは最初の30分くらいで、あとの約6時間は作業履歴も残ってないくらい本当にあっという間でした。
個人的には、自分のスキルを活かしチームがハマっているポイントにアドバイスをして解決に導くことができたり、自分でもあまり触れたことの無いサービスを使って問題を解決したり、積極的に参加できてとても楽しい時間になりました。
当初不安だった英語でのコミュニケーションも終わってみればなんとかなったなという感じで、朝の気分は一体何だったんだと今になれば思えます。
まとめ
初対面の方と一緒に技術的な課題を解決することは自分にとってすごく刺激になりました。
残念ながら結果は残せませんでしたが、Mattに「It is pretty good!」と言われて気付いたことがあります。
このチームは全員がGameDayに初参加でした、そのような状況で上位 1/3 付近に食い込めたのはよかったじゃないかという考え方です。
年齢を重ねると、失敗に対する恐怖と不安で初動が遅れたり、動けなくなることが多々あります。 その要因のひとつとして、常に減点方式で考えがちになり動かなければ減点(失敗)もないと勘違いしてしまうからです。 (実際はゆるやかに退化していくだけです)
考え方を加点方式に変えるだけで、ずっとポジティブになり再チャレンジへの活力が湧いてきます。
結果に対するマサカリは否が応でも世間が投げてくれるので、事実は事実できちんと受け止めた上で、ポジティブに考えるのはとても大切ですね。
おじさんになるとできてあたりまえに見られるので褒められることが少なくなりますが、挑戦する行動を増やし人の成長を促すのは基本的にはポジティブ・フィードバックだと思っています。
Mattの何気ない一言から、普段なかなか意識しにくい大切なことに再び気づくことができたのが、今回の大きな収穫になりました。
チャレンジした結果の失敗は、新しいチャレンジを生むと考えています。 目的意識を明確に、新しいことにどんどんチャレンジしていきたいと思います。
次回は、いよいよ re:Inventの山場、Keynoteについてレポートします。