BIGLOBEの「はたらく人」と「トガッた技術」

「ひとり言」がチームワークを活性化?新入社員研修でオンラインハッカソンをやって分かった成功のための6つのコツ

f:id:biglobe-editor2:20200821100644j:plain:w300

開発部門(基盤本部)でエンジニア育成を担当している高玉です。

新入社員研修の締めくくりとして、オンラインのハッカソンを5月末に開催しました。ハッカソンとは1~2日でアプリを作り上げる、企画から開発、デモまで全部入りのトガったイベントです。オンラインでのハッカソンは初めての取り組みでしたが、過去の経験を活かした事前準備と、新入社員の素晴らしいチームワークで大いに盛り上がる結果となりました。この記事では、ハッカソンの魅力とオンラインで開催するコツ、特にぶつぶつと「ひとり言」をつぶやくことの大切さについて、私たちが学んだことをご紹介します。

ハッカソンとは?

ハッカソン(Hackathon)とは、コンピューターに対して様々な操作を試みる意味のハック(Hack)と、それを長時間続けるマラソン(Marathon)から作られた造語です。エンジニアが楽しむお祭りとして、チーム対抗のコンテスト形式で開催されるのが一般的です。与えられたテーマに対して動作するデモをチームに分かれて開発し、最後に審査員が順位を決めます。

新入社員研修は人事部が担当していますが、ソフトウェアエンジニアだった人事部長からの推薦でハッカソンを新入社員研修に組み込むことになり、基盤本部が企画・運営を担当しました。

ハッカソンで達成したいことは、主催者によって様々です。達成したいことに応じて、ハッカソンのテーマも、使う技術も変わってきます。今回は、次のように狙いを定めました:

  • 目的
    • 新入社員研修で学んだデザイン思考・チームワークを実践する場を提供し、学びを定着させる。
  • テーマ
    • 社内の課題を解決する。社内の行動指針(ビッグローブマインド)を身近に感じるゲームを作り、社内のベクトルを合わせることに貢献する。
  • 使う技術、実施概要
    • ソフトウェア(HTML、JavaScript)で動作するデモを作る。
    • 利用するJavaScriptゲームエンジンの講義と演習(半日)、アイデア出し(半日)、ソフトウェア開発+デモ発表(1日)。
    • 先輩社員がデモを審査し、順位をつける。

ハッカソンのメリット

ハッカソンには様々なメリットがあります。

(1) 誰でも参加できる

ハッカソンで大事なのは、動作するソフトウェアを開発することもさることながら、最後のデモを成功させることです。

やらなければならないことは山ほどあります。そもそものアイデア出し、有効なアイデアかどうかの現地ヒアリング、ソフトウェアの動作テスト、プレゼン資料作りなどなど、猫の手も借りたいほどです。理系・文系問わず誰でも貢献できます。

(2) チームメンバーが仲良くなる

短期間で一緒のゴールに向かって全力で走り切るので、強い連帯感が生まれます。

書籍「サイロ・エフェクト 高度専門化社会の罠」によると、Facebook 社では膨大な費用をかけて定期的にハッカソンを開催し、人的交流を促進しているそうです。

(3) 今の自分の実力が分かる

ハッカソンを通じてソフトウェア開発にまつわるライフサイクルを全て体験できます。

限られた時間の中、今の自分が持つスキルで勝負するしかありません。実力が分かることで、強みをさらに伸ばすことも、補うべき弱みに気がつくこともできます。

ハッカソンのデメリット

その一方、デメリットもあります。いずれも「ハッカソンに期待すること」が関係者の間でズレているときに起きる悲劇です。

(1) 世の中を変えるすごいアウトプットはそうそう出てこない

主催者が過度な期待をした結果、せっかく作った作品が評価されず、そのハッカソンが失敗とみなされてしまうことがあります。

「素晴らしいアイデアが生まれる確率」も「アイデアをデモとして表現できる確率」も決して高くはありません。すごいものが生まれればラッキー!という気持ちで、ハッカソン自体を楽しむのがオススメです。

(2) 技術力の勝負になりにくい

審査基準に依りますが、技術力の高さよりも、デモの上手さが評価されることがほとんどです。

ソースコードがきれいに書けていて、バグが一切なかったとしても、審査員はデモで評価します。そのため、コンセプトが分かりやすく、面白くてインパクトのあるプレゼン(デモ)が高く評価されます。

技術力で競い合うなら、プログラミング作成能力を競い合う競技プログラミング、システムの防御力を競い合うハードニング (Hardening)、セキュリティ知識を競い合うCTF(Capture the flag)といった別の形式のイベントがオススメです。

オンラインハッカソンを成功させるには?

ハッカソンのメリット・デメリットを紹介しましたが、どう感じられたでしょうか? 「私の考えるハッカソンとは違う」と感じられた方もいらっしゃるかもしれません。 「ハッカソンに期待すること」が主催者、参加者、運営者、審査員でズレていると、どこかに必ずしこりが残ります。ハッカソンを成功させるために最も大事なことは、関係者間の期待値を合わせることです。

またオンラインで開催する場合の怖いところは、チームメンバーの様子が分からないことです。リアルであれば自然と分かることも、オンラインでは意識して行動しないと伝わりません。

これらを踏まえて、オンラインハッカソンを成功させるコツを、以下の6つにまとめました。

  • ハッカソンを成功させるには?
    • (1) 目的と評価基準をはっきりさせる
    • (2) 「ハッカソンあるある」を共有する
  • オンラインハッカソンを成功させるには?
    • (3) 強制的に休憩する時間を作る
    • (4) 当日「絶対に迷子にさせない」準備をする
    • (5) チームメンバーがお互いの状況を知る手段を提供する
    • (6) これからやること・やった結果をぶつぶつとつぶやく

(1) 目的と評価基準をはっきりさせる

なぜこのハッカソンをやるのか?というWhyや、期待されるアウトプットであるWhatを明らかにし、評価基準(審査基準)をきちんと言語化しました。関係者への事前レクチャーも欠かせません。

今回のハッカソンで定めた目的は次の3つです:

  • プログラミングを題材にして、学び方を学ぶ。
  • デモ作りを題材にして、チームワークを発揮。
  • プレゼンテーション評価を通じて、切磋琢磨。

期待するアウトプットは「ビッグローブマインドを身近に感じるゲーム」にしました。

評価基準は次の3点です:

  • 企画構想の魅力度(5点)
    • もし実現したら面白い!と思える企画か?
  • プレゼンテーションの魅力度(5点)
    • 理解しやすく楽しいプレゼンか?
  • プログラムの完成度(5点)
    • デモとして開発したプログラムが完成したか?

今回は企画とプレゼンを高く評価することで、開発スキルがなくてもチームに貢献できることが参加者に伝わるように工夫しました。

適度な制約は、創造性を発揮させるスパイスにもなります。競い合う土俵が整っていると審査も盛り上がります。

(2) 「ハッカソンあるある」を共有する

ハッカソンに一度でも参加した人なら良く分かる、落とし穴を共有しました。 結局は経験してみないと分からない落とし穴ですが、先に知っておくことで幾分かダメージを減らすことができます。

f:id:biglobe-editor2:20200821100655p:plain

(3) 強制的に休憩する時間を作る

ここからはオンラインで実施する際のコツになります。

オンラインでの作業は、思った以上にストレスがかかります。本人が気がつかないうちにストレスが蓄積していることもあります。またチーム作業が盛り上がってくると、自分から「休憩しよう」と声をかけるのが難しくなります。

今回は50分作業、10分休憩、でカリキュラムを設計しました。休憩時間になると、全員が気がつけるようチャットで連絡しました。

(4) 当日「絶対に迷子にさせない」準備をする

リアルのハッカソンなら会場にたどり着きさえすればたいていは何とかなるのですが、オンラインでは一度迷子になって帰ってこれなくなることがありえます。

参加者のインターネット環境はバラバラで、突然のトラブルでネットにつなげなくなることもあるため、インターネット以外の連絡手段も用意しておくべきです。

新入社員はすでに在宅勤務に慣れていたのですが、念のため以下の情報を事前に共有しておきました。

  • 緊急連絡先(電話番号)
  • 連絡用チャットルーム(Chatwork)
  • お題と評価基準のスライド(Google Slides)
  • スケジュールと、利用するWeb会議のURL(Google Spreadsheet)
  • チーム作業用のタスクボード(Google Jamboard)

上記の情報は、分かりやすい一カ所(チャットルームの概要欄)にまとめて記述し、もし迷子になっても困らないようにしました。

(5) チームメンバーがお互いの状況を知る手段を提供する

新入社員はオンライン飲み会などで十分仲良くなっていたので、アイスブレイクは省略しました。

ただ、たとえお互いを良く知っていたとしても、オンラインではお互いの状況がすぐに分からなくなってしまいます。暗闇の中でもがき苦しむような感覚に陥ることすらあります。

それを軽減するために、チームごとにタスクボードを準備しました。チームメンバーがどんな作業をしているのかを可視化するためのツールです。

f:id:biglobe-editor2:20200821100704p:plain

Google Jamboard上で、TODO、DOING、DONEの3つの領域を作り、チームでやることをタスクとしてふせんに書き出しTODOにためていきます。タスクを開始したらふせんをDOINGへ移動し、完了したらDONEへ移動します。 締め切り時間が迫ってくると、状況が分からないことへのいらだちが募ります。迷ったら一度タスクボードに戻り、落ち着いて議論するきっかけにしてもらいました。

(6) これからやること・やった結果をぶつぶつとつぶやく

もしもあなたの隣で仕事をしている同僚が、ぶつぶつとひとり言をつぶやいていたらどう感じられますか? 「ちょっと気持ち悪い」 「気になって自分の仕事に集中できない」 ...そんな意見が出てくるのではないでしょうか。 しかし、この「ひとり言」こそが、今回のオンラインハッカソンを成功させる大事な所作になっていました。

ここまでに述べた1~5の準備をし、当日は余裕をもって運営にあたることができました。各チームをフォローするため会話の様子を聞いていたのですが、最もクリエイティブだったチームは、最後まで会話量が減りませんでした。特に際立っていたのが、プログラミングを主導するメンバーの「ひとり言」です。

「ええと、今から新しいキャラクターを表示しようと思います。キャラクターを表示させる方法は、あのページに書いてあったはずなのでまずはそこを見てみますね」

「ふむふむ。このページによると、キャラクターを表示するにはスプライトっていう機能を使うといいみたいです。ソースコードも載ってるんで、それをそのままコピペして動くかどうか試してみますね。」

「うまくいった!」とつぶやけば、プログラミングが詳しくない他のメンバーも一緒に喜びます。たとえそれが小さな一歩であったとしても、チームの空気が軽くなり、盛り上がる様子が伝わってきます。

逆に、うまくいかなかった時にも、多くのひとり言が聞こえてきます。

「あれ?Aになると思ってたのに、Bになっちゃったなー。もしかして、これがダメったかな?それなら、X案とY案があるんで、ちょっと試してみるか。まずはX案いきますね」

うまくいかなかった原因と、それを解消する仮説が聞こえてきます。うまくいっていないようでも、停滞せずとにかく前進しようとしていることが伝わるので、プログラミングが得意ではない他のメンバーも安心できた様子です。

安心できると提案もしやすいようです。他のメンバーが得意なことはデザインや時間管理などバラバラなのですが、それぞれができることを上手に提案しあって、クリエイティブな成果物を生み出していました。

どのチームから出てきた成果物も素晴らしく、審査は難航しました。そして優勝を勝ち取ったのは、ひとり言を駆使し、最後まで会話が途切れなかったチームでした。

f:id:biglobe-editor2:20200821101716p:plain
優勝作品の画面。料理ゲームをモチーフに、お客様の「かなえたい想い」に対して「インターネットサービス」を提供するゲームに仕立てました。

オフラインでは「見れば分かる」ことが、オンラインでは見えなくなります。その状況を見えるようにするのが「ひとり言」だと気がつけたのは、運営者としてとても有益でした。

とはいえ、いざひとり言を言おうとしても、なかなか口に出てきません。次回のオンラインハッカソンでは参加者同士でひとり言を言い合う練習を組み込んでみようと思います。

インターネットは、すごい!

実は、今回利用したJavaScriptゲームエンジンは関連ドキュメントが不十分で、プログラミングに慣れていない参加者には敷居が高いものでした。しかし、新入社員は、時に「ひとり言」という武器も駆使しながら、期待以上のチームワークを発揮してデモを作り上げてくれました。デモを審査した先輩社員たちも、期待していた以上の成果物に驚き、大きな刺激を受けたと興奮気味に語っていました。

緊急事態宣言下ではありましたが、インターネットがあるおかげで新入社員は継続した学びに挑戦でき、大きく成長することができました。「インターネットは、すごい!」とあらためて感じています。そして、そのインターネットをお客様に提供できることは、私たちの誇りです。私たちと一緒にインターネットで社会を支えていきたい方を大募集していますので、もしよろしければ採用情報をご覧になっていってください。

hrmos.co