LIFULL Creators Blog

「株式会社LIFULL(ライフル)」の社員によるブログです。

AWS re:Invent 2017 参加レポート Day 4

エンジニアの鈴木(健)(@szk3)です。

Keynote の二日目では、Alexa for businessやlambdaのgo対応など興味津津なサービスがたくさん発表されました。

本来ならKeynoteのレポートがメインにくるのですが、今回は前回の予告どおり、 Alexaのハッカソンに参加してきましたので、その様子をレポートしたいと思います。

ハッカソンのお題は、「Hack Your Office: Build Alexa Skills that Help You at Work」という仕事で役立つAlexaのスキルの開発になります。メインテーマは生産性向上です。

会場までの道のり

昨日、急遽会場変更のお知らせメールが来ており、Mirageという会場になりました。 会場に向かう途中、これまでに蓄積してきた寝不足も相まって、だんだん不安になってきました。

朝食を食べて現場に行こうと思ったのですが、re:Inventのアプリで調べるとBootcamp attendees onlyの文字が。。。対象外っすね、自分。

まぁ、コーヒーさえ飲めればいいので、スタバでゲットしたコーヒー片手に会場のホテルに到着しました。 re:Inventでは、たいていの会場ホテルにカジノがあり、実際にセッションやハンズオンが行われる部屋までは結構な距離があります。

その為、カジノの中にはre:Invent関係者が立っていて、セッションが行われる場所まで誘導してくれます。

今日も、「真っすぐ行って左だよー」と声をかけてくれたので、サンキューと答えると「今朝の朝食は全員入れるよー」と教えてくれたので、ラッキーなことに戦いの前に朝食にありつくことができました。 f:id:LIFULL-suzukik:20171201195059j:plain

Alexaハッカソン

チームを組む

朝食を軽く済ませ、少し早いですが会場に向かうとそこにはすでに行列ができていました。 最後尾に並んで10分くらいしたら開場し、SWAGとしてAlexaのパーカーを頂きました。

f:id:LIFULL-suzukik:20171201195310j:plainf:id:LIFULL-suzukik:20171202113330j:plainf:id:LIFULL-suzukik:20171202113345j:plain

自由席っぽいのでふらふらしていると、日本人らしき2人組がいたので、こちらから話かけさせていただきました。 「日本人の方ですかー?」「これって個人戦なんですかね?」「二人はチームなんですか?」などと、今思えば少し質問しすぎだったと思います。

そんなこんなで色々話しているうちに、そのチームに混ぜていただけることになりました。正直、Alexaの経験は少なかったのでとても助かりました。

チーム数は、会場をざっとみわたすと約50チームくらい。1チーム 2-4名くらいのチームでした。 f:id:LIFULL-suzukik:20171202114341j:plain

ハッカソン スタート!

ハッカソンのスケジュールは、9時から実装スタート、作ったAlexaスキルが動くデモの提出締め切りが13時55分と結構タイトでした。

約5時間の間にアイデア出し、設計・実装、アイデアの説明(文言・画像)作成、デモ動画の作成とアップロード とやるべきことが多岐に渡ります

時間がないので分業が基本スタイルになるのですが、アイデアのブレストだけは分業できないので、そこはみんなで行います。 お互いに「いいアイデアありますか?」というふりになったので、前回のハッカソンでStenから学んだことを活かし、自分から積極的に考えやアイデアを伝えました

まず、すぐに思いつくようなアイデア(だれがどこにいるのかを教えてくれる、議事録を読み上げる、ミーティングのファシリテーターをやらせる等)は今回のようなハッカソンでは避けるべきという話をしました。インパクトがないわりに実装に時間がかかりそうというのが想像できるからです。

次に、日本から来ているということを活かしたいということ。差別化できるポイントは何か?と考えたときに、日本の文化を取り込むというのは、このハッカソンにおいて少数派になるであろうと思ったからです。

最後に、弊社のサンクスカードの簡易版のような「ありがとう」をAlexa経由で蓄積できる機能と、誰が一番サンクスフルなのかを教えてくれる機能の2つを実装するというアイデアを伝えました。

これは、Voice User Interfaceを使って「ありがとう」を可視化するというアイデアです。

  • 「ありがとう」はシンプルだし世界共通であるので誰にでもわかりやすい
  • 「ありがとう」と言われた人は自分が誰かの役に立ったことのフィードバックを得られるので、もっと良い行動が促進され、結果的に生産性があがること

ということを軸に訴求したい考えていました。

また、このアイデアの一番良い点は実装がシンプルにすむことで、ハッカソンが個人戦だったときにAlexa習熟度の低い自分が猛者と戦うためのひとつの戦略でもありました。

2人とも方向性は悪くないと言ってくれたのと、ブレストに時間がかかりすぎるのがもったいないので、早速実装に入ろうとなりました。

役割分担をする際に、お互いのスキルセットを確認し、メンバーのひとりがすでにAlexaスキルを2つもローンチしている経験者であることがわかりました。

当初は、Alexaスキルの根幹である「lambda側の実装」と、Alexa側のインテントやスロットなどの「モデルの実装」の2つに作業分担しようと思いましたが、この短い時間なら経験者がひとりでまるっと手を動かしてしまったほうが早いと考え、実装的な作業をその方にお願いして、残りの二人は 提出資料の整備しながら、設計・実装への指摘やエラー発生時のデバッグのサポートをするような形を取りました。

はじめに、自分が仮実装してきたAlexa側のモデルを共有し、実装メンバーは自身のアカウントでアイデアを実装していきました。 3人で行う変則的なペアプロミングみたいな感じです。

後から知ったのですが、その時の様子がre:Inventの公式Twitterアカウントにツイートされていました

その後は、ひたすら動くようにするまでトライしつづけました。

時間的な制限があるハッカソンでは何を捨てるかが重要になってくると思います。 今回は、トラブルシュートにかなり時間がかかってしまったので、実装をモックに切り替えるか否かの難しい判断が迫られるシーンが何度かありましたが、最終的にはみんなで知恵を出し合って動かせるところまで行きました。

その時点で残り5分。

そこから急いでデモ動画を取りYoutubeへアップロードし、スキルの紹介画像・ハッカソンと作ったものに対する文言・ソースコードをまとめあげました。

本当にギリギリだったのですが、きっかり締め切り時間に提出することができました。

その時のデモ動画がこちらです。

チーム全体でやりきった感が強く、良い疲労感がでていたと思います。

審査

そこから審査が始まりました。審査は各テーブルに各国のAlexa関連の技術者が2名づつやってきて、作品のデモ・ソースコード・どういう経緯で作ったのかなどをチェックされました。

その後は審査待ちになり、あとは発表を待つのみです。審査待ちの間は1時間を軽く超え難航しているようでしたが、その待ち時間にハッカソンを戦ったメンバーとセルフィーを撮ったり、賞金何に使おうかー(入賞するつもりだった)なとど楽しい時間を過ごしました。 f:id:LIFULL-suzukik:20171202110538j:plain

入賞者発表

ようやく入賞者の発表のタイミングがやってきました。

気になる結果は。。。

入賞ならず!

残念。

GameDayと違い順番も表示されないので、差がよくわかりませんが、とにかく6位以内には入ることができませんでした。

まとめ

GameDayのときも思いましたが、チーム戦のハッカソンでは個人の能力が問われます。

常日頃から自分の強みと弱みを的確に理解し、チーム戦において自分が最大限貢献できることは何なのか? そういったことを意識しておくことが大切だと感じました。

もうひとつ感じたのは、たった6時間程度でも同じ目的を持って一緒に作業すると、その日初めて会ったのに、昔からの友人のような感覚が芽生えるということです。

つまり、同じ目的に対する行動を、お互いが真摯に積み重ねるプロセスが心理的安全性を上げるということなんだと思います。

今回も、たくさんの気づきを得ることができました。

この機会をベースに、オフィスをもっともっと楽しく便利にしていけたらと思います。

次回は AWS re:Invent 2017 参加レポートの最終回になります!