見出し画像

【心得3箇条付】全員テレワーク環境でKaizenDay(ハッカソン)を開催してみたゾっ

※ 本記事は、Dentsu Digital Advent Calendar  7日目の記事となります。

こんにちは、電通デジタルでバックエンド開発をしている関本です。普段は技術寄りの話題が多い当ブログですが、今回は『オンラインハッカソンの開催を検討、運営を担当する方々』に向けて、

「完全リモート環境下でハッカソンすると、どうなってしまうのか?」

を主題として弊社開発部内の取り組みの様子とその結果についてお話させていただきます。

まずはじめに、業務で忙殺されている方に向けて心得3箇条からお伝えしていきます。

【オンラインハッカソン開催の心得3箇条】

1. ハッカソン期間中は外界との交流を完全シャットアウトすべし!
2. 運営の事前準備、お題策定には時間をかけるべし!
3. 当日の「霊圧問題」に対処すべし!

それではハッカソン開催に至った経緯、事前準備や当日の様子等の詳細について順を追って、お話していきます。少し長めの文章となりますが、お時間ある方は最後までお付き合いください。


1. 社内型の改善系ハッカソンに決定!

2020年某日、開発部内のとあるマネージャーの問題提起からハッカソンの開催が決定しました。

画像3

そうです。開発組織あるあるの話題かとは思いますが、弊部でも日々の改善系や、リファクタリングなどのタスクが後回しになる傾向があり、かねてからの課題になっていました。

また弊部は比較的若い組織なので、これまでハッカソンといったイベントを主催する機会がありませんでした。『今後ハッカソン等の開発系イベントや力を入れていければいいね』といった意見も前々から挙がっており、大枠での開催が決定しました。

画像13

ハッカソン形式でのイベントを開催するにあたり、まず初めに上図の3点を決めなければいけません。

画像4


1. 新型コロナウイルス感染症のため、弊社ももれなく完全リモートワーク体制
2. 弊部として開催する初めてのハッカソン

様々な議論がありましたが、上記2点の理由から、一旦は公開範囲を狭め、お試しとしての『社内型』で開催することが決まりました。

画像5

ハッカソンの種類には、『勉強会ハッカソン』や『新サービス創出系ハッカソン』といったものが一般的です。

しかし、内部で議論した結果、以下の理由で候補から外れることになりました。

1. 勉強系ハッカソン
過去、勉強会やモブプロをやっていた経験則から『ふぅ〜〜ん』で終わってしまうことが多かった。弊部では学習目的でのモブプロを週次で実施しており意図が被る。
2. 新サービス創出系ハッカソン
『改善タスク』が疎かになってしまっているといった意見から今回の開催が決定しているため、目的が異なる。弊部の開発サービスはほとんどが新しいため、新サービスは嬉しいが更なる開発に追われることとなる。

このような議論の末、かねてより課題として挙がっていた『改善系』をテーマとし、普段の業務で手をつけられていなかった改善タスクをチームごとに協力し合いこなしていくタイプのハッカソンを開催することに決定しました。

その上、今回は全員リモートワーク環境下での開催ということで、チャレンジングな要素も強かったため、お試し企画として期間は1Dayタイプとして開催しました。 

画像2


2. 運営側の事前準備

開催予定日まで1ヶ月、運営チームが事前準備として実施したことは以下の3点です。実際の時系列順にご紹介していきます。

1. 改善系タスクのアイディア出し
2. 当日のルールやスケジューリング、各フォーマット決め
3. 模擬ハッカソンの実施


画像8

上述しましたが今回の企画は、『日々の業務上で発生した課題を1日で解決していく企画』です。まず最初に運営チームは、各開発チームごとに日常業務から発生した課題を吸い上げる作業から開始しました。次に、吸い上げた課題が1Dayという短期間で実施が可能かを十分に考慮。再度、KaizenDayのタスクとして適切かどうかを参加予定者含めて何回かブレストを実施しました。参考のため、ぼやかしていますが実際のアイディア例を挙げておきます。

『GitHub Actionによる〇〇の自動リリース&自動Deploy』
『とあるアカウント管理用のUI構築』
『Reactコンポーネントの分割ガイドライン構築』...etc


画像8

我々運営チームは、ルール決めとスケジューリング、各種フォーマット決めから埋めていきました。


【まずは、イベント名】

名前がバシっと決まらないと、気合も入らないということでハッカソンの名前決めです。『名前って案外重要だよね〜』と議論もありつつも結構あっさり決まってしまい、今回は『KaizenDay』というイベント名になりました。


【当日のルール決め】

初めてのハッカソン、かつ完全リモートということで検討を重ね、運営チーム内で何度か議論を実施しました。この場でルールの全てをご紹介するのは難しいですが、いくつか重要なルールのみ掲載いたします。今後の参考にしていただければと思います。

複数プロジェクトを保持するメンバーは他から必ず差し込みが入る確率が多い。そのため部署外の人にハッカソンで連絡が取りづらい状態になっていることを知らせるという意味で、当日はカレンダーを完全ブロックし社内規定コミュニケーションツールは常時閉じたままにしておく。緊急メールは除き、もちろん返信の類は行わない。
KaizenDayのみで使用するコミュニケーションツールを準備する。(会社が複数のコミュニケーションツールを契約しているため、あまり利用者が多くなかったものを採用)
チーム人数は、手持ち無沙汰になってしまう可能性を考慮し原則2名までとする。オンラインという見えづらい状況という観点から1名チームは避ける。
△△に取り組んで、〇〇を改善しました、だけではなく他でも転用できるよう、必ず手順書を作成しておく。


ここで我々運営チームが今回の経験を通じて感じた、ルール作りに関わる重要な視点を2つをお伝えします。

ルール作成時の重要な2点

1つ目は、『オンライン開催ならではの、いかに集中させるか』という視点です。オンサイトでのハッカソンは、1日~数日間を物理的に閉鎖された空間で過ごすことが多いと思います。そのため他チームや周りのメンバーが発する緊迫感も合わさって、集中できる環境が準備されている一方で、完全リモート環境におけるオンライン開催でのハッカソンは、1人っきり、かつ自宅の1室で身支度もせずに参加することができます。そのためテレビを見ながら参加しようと思えば出来てしまいますし、家族やペット乱入もあり得ます。極論、寝ていてもバレないかもしれません(笑)。そういった状況をどうやって排除し、いかにハッカソン自体に集中させるかは運営チームの腕の見せ所でもありますし、強制力を持ったルールとして作ることによって環境を作ってあげることも大事だと考えます。

2つ目は、『横に展開できる仕組み作り』という視点です。実は事前のテーマ/アイディア出しのブレストの最中、「その機能、実現できたら何気に便利そう!「それ、やり方が簡単ならうちのチームの〇〇にも対応させたい」なんていう意見がハッカソン開催前にも関わらずチラホラ挙がりました。結果として、「△△に取り組んで、◯◯が完成しました。」のみならず、「どのチーム/プロジェクトでも簡単に取り入れられるよう、手順書まで作ってしまいナレッジとして貯めておこう!」ということになりました。日々の業務で漏れた改善タスクをこなすことも重要ですが、今後のスピード開発にも対応できる組織作りのため、こういった形でナレッジ化させることも重要なのではないでしょうか。


【フォーマット決め】

今回のKaizenDayの中でフォーマットの事前準備が必要だった項目をキーワードのみで羅列しておきます。参考にしていただければと思います。

『GitHubのリポジトリ作成』、『ファイル格納先』、『結果/作業発表用テンプレート』、『日程ブロックのためのカレンダー押さえ込み』、『ペアプロ環境準備(VSCodeのLive Share機能利用)』.... etc

コードやファイルの格納先については必要に応じてとなりますが、準備しておくべき項目だと思います。また、今回は1日のみの短期開催ということもあり、結果作業発表用テンプレートの準備やペアプロ環境準備など、細かいところも手厚く準備しておくことによって大きな混乱を招くことなく実施できました。

画像8

少しやりすぎかもしれませんが、実は上記のように1度ルール/フォーマット決めた後に、実際に数時間の模擬KaizenDayを数人で実施しました。たった数時間とはいえ、議論のみでは考慮しきれていなかった細かい点が浮き彫りとなりました。例として以下に記載しておきます。

『チーム内コミュニケーション用に、オンラインホワイトボード的なものは必要か?』、『専用のGitHubリポジトリあったほうが良いかもね...』、『ランチや休憩時間ってどうアナウンスします?』 、『仕事のメールがバシバシ飛んでくる...』、etc...

チーム内にハッカソン経験が豊富な人が多数存在する場合や、「こんなの当たり前じゃん(笑)」なんていう方にとっては必要ではないと思いますが、ハッカソン経験があまり豊富でない場合には、模擬ハッカソンを通して発見することも多いかと思います。

3. ハッカソン当日の様子

画像11

開始の儀では、改めて今回のイベントの趣旨やタイムスケジュールの共有、当日コミュニケーション用のURL共有といった内容を参加者にお伝えしています。

今回、特にお昼休憩などの指定は行わずに各チーム作業時間は自由に使っていただくこととしました。

先にも述べましたが、各チームの発表では大きく分けて「何に取り組んで、何が出来上がって、他プロジェクトで展開する場合の手順、やってみた感想」の4点について各チーム15分で発表しました。

終了の儀では他チームの発表を見聞きした後に改めて、「初のオンラインハッカソンを経験してみて」の感想や今後の課題などについて共有しました。

画像11

今回、我々運営チームが最も気にかけていたこと、他チームの「霊圧問題」です。

全員がその場に集まるオンサイトでのハッカソンは、周辺チームの進捗具合や気合いなどがヒシヒシ感じてくるかと思います。一方で、自宅勤務の中でのオンラインハッカソンは、同じチームの雰囲気が画面越しでしか伝わらないことがが事前に問題提起されていました。そのため「1時間ごとに全体チャットで進捗具合を確認する」、「GitHubへのCommitなどを確認し煽る」などを実施しましたが、結果として「霊圧問題」に効果的であったかというと、そうではありませんでした。この点に関しては、次の項でより詳細に後述したいと思います。


4. 感想や課題点、次に活かすべきこと

画像11

ハッカソン終了後、各チームから挙げられた「良かった点」と「課題点」を声が大きかった順に3つずつご紹介します。


【良かった点1】オンラインでも案外どうにかなる

我々運営チームの不安とは裏腹に、終了後の感想として「意外と楽しかった」、「普通に形になっていたね」、「2回目はいつにしますか?(笑)」などの声をいただきました。事前準備含めて完璧ではなかったといえども、オンライン開催でもどうにかなるとわかったことが大きな実りだと思います。


【良かった点2】集中してタスクに取り組める

「会社規定のコミュニケーションツールを閉じる」という横暴ですが非常に効果的なルールを導入することにより、作業に集中できたことが立証されました。一方で、兼務や複数プロジェクトの掛け持ちでコミュニケーションにも大きな時間を割いているという副次的な結果も判明しました。記事冒頭の心得3箇条でも挙げましたが、集中できる環境作りの徹底は運営チームとして必須事項だと考えます。


【良かった点3】通常業務で触れない領域の勉強になる

普段バックエンドが中心の開発者からの声で「フロントエンドの勉強になった」や、「なんとなくGitHub Actionを理解していたが、本を購入して予習」など、「別領域の勉強になった」という声が挙がりました。各チームの気合の入り方にもよりますが、テーマ決定時に普段から触れていない領域で決めてもらうなど運営チームの腕の見せ所かもしれません。


【課題点1】テーマタスクの分量見極めが重要

こちらは声が非常に大きかった課題点です。「前準備を徹底しすぎた (開始1時間で本質が終わった)」や「チーム内で事前準備しすぎると当日作業がほとんどない」と言った様に、手が余ってしまったという声が挙げられました。一方で「見通しが甘かった」、「実装完了まで到達できなかった」や「あと半日時間があれば...」といったように1Day開催だからこその「時間が足りない!」といった声も挙げられ、テーマ決めの重要性を痛感しました。また、大きいテーマに関しては課題に対する事前準備を適切に行う必要がありそうです。


【課題点2】他チームの様子が全くと言っていいほどわかりづらい

我々運営チームが事前準備から懸念していた「霊圧問題」ですが、やはり「もうすこしワイワイした感じを出したい」といった声が挙がりました。こちらは筆者が、今回のKaizenDayで最も課題だと感じた点です。実況するにしてもオンライン上だとどうしても見えづらい状況ですし、文字面でしか状況をお伝えすることができなかったりと課題山積みです。

また今回に限り、各チームが別々のお題に取り組んでいることも1つの要因だと考えられます。例えば各チームが同じ題材に取り組み、同じフォーマットで提出する必要がある場合には、他のチームの進捗が気になることも多いのではないでしょうか。ですが、別々の課題に取り組んでいることで「結果、自分たちとの戦い状態」になってしまったことが他チームへの興味が薄くなってしまったのかと感じました。


【課題点3】どうしても家族やペットの乱入が避けられない

主に家族持ちの方から多かった意見です。弊部、実は普段のミーティングの際も「パパ〜〜〜、だっこ〜〜〜」のような声が溢れんばかりに聞こえる様な部です。通常は「子ワーキング(子供とCo-workingの意)」であろうと全く問題ないものの、限られた時間の中で結果を出さなければいけないハッカソンでは、課題点として残りました。


5. 心得3箇条

画像12

最後になります。記事冒頭でもお伝えしましたが、KaizenDayを通して学んだ心得3箇条を再掲させていただきます。

1. ハッカソン期間中は外界との交流を完全シャットアウトすべし! 参加者が「ハッカソン」のみに集中できる環境作りに注力しましょう!
2. 運営の事前準備、お題策定には時間をかけるべし! 細かい点にも気配りしながら準備をしましょう。また、ハッカソンの期間を考慮しながらも、無理のなく、かつ時間も余らないレベルのお題策定に心がけましょう。
3. 当日の「霊圧問題」に対処すべし! 各チームの進捗状況を何かしらの形で共有し、オンサイトでのハッカソンと同じ雰囲気を目指そう!


長文の中、ここまで読んでいただきありがとうございました。この記事が皆様のお役に立てれば幸いです。



みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!