見出し画像

フルリモートの社内ハッカソンがうまくいった話

CyberZ CTO 中村 (@tomotaken) です。

CyberZでは2020年末に、社内のエンジニアを対象に社内ハッカソン「Tech x Match (テクマッチ) 2020」を開催いたしました。このイベントが比較的うまくいったので、今回はその話を書きたいと思います。

今回のイベントの目的

社内ハッカソンは当社でも過去何度か開催してきたことがありました。概ね、社内ハッカソンを開催する目的としては、社内のエンジニアに対して業務とは違う競争環境を作ることで、技術力の育成であったり、最新技術のキャッチアップであったり、通常業務では見えなかった優秀なエンジニアの発掘などが挙げられるかと思います。普段の職場とは違う会場を押さえ、一時的に業務を離れることでエンジニアのリフレッシュを図るということもあるでしょう。

当然、今回も開催にあたりそれらも目的として考慮されましたが、なんと言ってもこのコロナ禍です。今回の最大の目的は「社内エンジニア同士のコミュニケーション」とすることとしました。

コロナ禍における社内コミュニケーション

この話はエンジニアだけに限ったものではないと思いますが、コロナ禍においてリモートワークが続くことの影響がじわじわと現れていると感じています。開発における生産性という点でいえば、リモートワークだから業務効率が下がったということは感じられず、通勤や会議における効率化の結果生産性が上がっている側面もあり、2020年4月頃の緊急事態宣言によるフルリモートへの移行においても特段大きな影響を感じていませんでした。

また、夏のコロナ感染症の第二波が訪れる前後においては、一部リモートワークが継続されつつ出社も緩和されたこともあり、このまま新様式に慣れていくものだろうと思われていました。
しかし、2020年年末における第三波と、それまで以上の感染者数の増加に伴い、当社でも積極的リモートという形で、ほとんどのエンジニアがリモートワークを行っています。

リモートワーク下において、以前と比べて減ってしまったのが、チームや組織をまたいだ業務外のコミュニケーションです。リモートワークでは、必要な時に必要な人数で効率的にオンライン会議ができる一方で、特に明確な用事のない会話というのが行いにくくなっています。以前であればちょっとした息抜きやすれ違い時に声をかけたり、ランチや飲みに誘ったり、といったことがあったのですが、リモートワークではそうした機会が失われています。業務を少し離れた情報交換や最近の動向の共有などといったことが希薄になりつつあります。

そのため、今回は、チームをまたいだコミュニケーションをどう活性化させるか、という点を主眼にして企画を行いました。

Tech x Match (テクマッチ) とは

画像1

CyberZで行っている社内ハッカソンの名称です。

「マッチ」という言葉には試合という意味があり各々の技術力を競い合って欲しいという側面と、一方で「マッチする」と使われるようにふさわしいものや人を引き合わせるという意味もあり、エンジニア同士の競い合いとコミュニケーションの場となるよう命名されました。

イベント企画にあたって考えたこと

企画にあたっては、CTO室メンバーで何度も議論を重ねました。その中で、大きく次のことについて検討しました。

・リモートワーク環境下でどのようにチームをまたいだコミュニケーションを活性化させるか
・その中で参加者同士が盛り上がってもらうにはどうするか

今回はコミュニケーションを主目的とするところから、チーム戦になるだろうということは早い段階から決まりました。以前は個人で性能改善を競い合うことをテーマに実施したことがありますが、個人戦での性能目標は指標はシンプルで勝ち負けがわかりやすいのですが、参加者同士のコミュニケーションを生みやすくはありませんでした。

チームをまたいだコミュニケーション活性化

まず、ハッカソンという競争環境の中、参加チームをまたいだ参加者同士でのコミュニケーションを取ってもらうにはどうしようかということが課題となりました。出てきた一つのアイディアとしては、ハッカソンにおける共通のテーマや目標があり、それに対して参加チーム同士で議論するような環境を作れないかというものがありました。しかしながら、競い合いという側面もあるハッカソンでは、果たしてどこまでチーム間の協力が発生するのかということが未知数で、中々結論が出ませんでした。

次に生まれたアイディアが、「ハッカソンで有利に事を運ぶために、事前にチーム間で協調して準備しておかなければいけない」という環境を作ろう、ということでした。やはり、ハッカソン当日は各自実装に集中することとなり、積極的なコミュニケーションというのは難しいだろうということで、コミュニケーション自体は開催日前に取ってもらおうというわけです。それを実現する方法について議論を重ねた結果、「社内の実プロダクトに対する機能追加」をテーマにすることに決まりました。

今回は、CyberZ内でも主要プロダクトである動画配信プラットフォーム「OPENREC.tv」に対しての機能追加とすることにしました。実プロダクトをベースにすることで、事前の環境準備や既存実装について、それに詳しい人が事前に説明を行ったり、場合によっては勉強会を開催するという形でコミュニケーションが行われるだろうと考えました。

次の検討事項は、何の機能追加を題材とするかです。始めは、実装する機能を運営で決め、その実装レベルを競い合う形式を考えましたが、最終的には何を作るかも各チームで決めてもらう、ということにしました。

一方、ハッカソンの企画自体が事前準備を良しとすることになり、懸念もありました。これは度がすぎると、ハッカソン前の業務時間も圧迫していくことになり、本来の業務を疎かにしている人ほどハッカソンで有利になるという、会社から見れば諸刃の剣でもあります。

そのため、「事前準備については節度と良識の範囲内でお願いします」ということをルールとして周知しました。曖昧なルールではありますが、そこは社内向けということもありこの言葉でうまく汲み取ってもらえ、「環境の説明もするのでよければランチしながらZoomしませんか」のような形で業務とバランス取りながら、チームの垣根を超えた会話が活発化しました。

チーム編成について

これは迷うことなく事業部や所属関係なく混ぜこぜにしたいということは企画メンバー全員の意見でした。今回の主目的である、組織をまたいだ社内エンジニア同士のコミュニケーションを達成する上では、他に選択肢はないと考えられました。

チーム戦とすることで、少なくとも同じチーム内の人同志での会話が活性化することは期待できます。しかし、一方でチーム戦の社内ハッカソンにおいては、参加する人たちのスキルセット、技術力や年次がまちまちになってしまうという課題が生まれます。かといって、それぞれのエンジニアを全チーム均等に配分するとなっても、不公平を完全に避けることは難しいでしょう。

そこで、事前にアンケートを取ることとしました。アンケートの主目的はハッカソン参加の可否でしたが、次に以下の質問を行いました。

・今担当している技術領域は何ですか?
・他に担当できる技術領域は何ですか?
・チャンスがあれば担当しても良い技術領域は何ですか?

表向きはチーム編成の参考のための質問でしたが、運営が本質的に聞きたかったのは実は3つ目の質問です。スキルセットにない技術を担当する人が多いほど、チーム内のスキルセットの編成に困らなくなり、また、環境構築や実装における会話が促進されることが期待できます。

アンケートを取った結果、大半の人が3つ目の質問まで合わせれば多くの技術領域を選んでくれました。例えば、iOSエンジニアが担当しても良いまで含めればAndroidやWebフロントを選んでいたり、バックエンドエンジニアがフロントエンドを選んでいたり、という具合でした。エンジニアながらUI/UXデザインを選んでいる人も多くいました。

そのため、チーム編成は最終的には、「ランダムで選んだリーダーに、名前を伏せた状態でメンバーをドラフトしてもらう」、という形で行いました。そのドラフト会をハッカソン開催の約三週間前にZoomで実施しましたが、それ自体も一つのコンテンツとして盛り上げることができました。

また、結局各自が得意な技術だけで勝負することになっては、事前コミュニケーションという目的を達成することができません。そこでハッカソンのルールに「担当外の技術にチャレンジしている人が多いチームほど評点が高い」ということを付け加えました。結果として、ほぼ全てのチームに新しい技術領域を担当している人がいる状態となり、こちらも期待した通りとなりました。

ハッカソン当日

ハッカソンは2日間の実施で行いました。2日というのは、1日だとチームで何か実装するには時間が足りず消化不良になる恐れがあるのと、3日だと業務影響が大きくなりフル参加できない人が増えてくるかもしれない、という間を取った日数でした。

フルリモートのため、それぞれのチームが当日どんな模様でハッカソンに臨んでいるのか目に見えて把握することができません。そのため、1日目の夕方に、私がインタビュアーとして各チーム15分くらいずつ時間をもらいインタビューを行いました。質問としては1日経ってみての感想、実装状況、進捗具合などをフランクな形で聞いていきました。そして、その内容をサマリーし、2日目の午前中に参加者全員に共有するということを行いました。

ハッカソン結果

2日目の夕方に各チームに実装したものをプレゼンしてもらったのですが、結果的には、各チーム凌ぎを削り合い、非常にレベルの高い機能実装が行われました。

また、今回は実装された機能の実装レベルという指標化しにくいお題だったため、参加者全員にもそれぞれがベストと思うチームに対して投票を行ってもらったのですが、見事に投票結果が割れるくらいどのチームもレベルが高く、ハッカソンとしては成功に終わることができました。

最後に

今回のハッカソンは、企画で議論したことについては非常にうまくいったものの、いくつかの課題や反省もありました。

・担当外の技術チャレンジの評点が高いということについて、基準が曖昧だったので、人によっては納得性に課題があった可能性があった
・2日間という短い期間の中で自由テーマの機能実装だと、デザイナーは始まる前までにある程度UIデザインを終えておかないと開発に入れなくなる
・実プロダクトベースのお題は、公平性という点の課題があり、うまくいく場合と難しい場合もありそう

次回の記事では、参加者の参加後のインタビューをCTO室のメンバーが行ってくれているため、そのインタビュー内容から参加者の生の声をお届けしたいと思います。

この記事が気に入ったらサポートをしてみませんか?