社内ハッカソンの実施と得られた知見

ゆめみの iOS アプリエンジニアの麻生です。
[ゆめみのアドベントカレンダー](https://qiita.com/advent-calendar/2018/yumemi)21日目の記事です。

## はじめに

ゆめみでは 11/28 にアイディアソン，11/30 に社内ハッカソンを実施しました。テーマは iOS と Firebase という是非キャッチアップしておきたい旬なテーマでした。
社外からメンターとして1名，司会者として1名，審査員として4名をお迎えして，とても盛り上がって有意義なイベントとなりました。

今回は社内ハッカソン実施で得られた知見，感想などを書いていきたいと思います。

## 主催は iOS 委員会・共催は技術推進委員会

ゆめみでは**技術推進委員会**という名前そのままの活動をしている委員会があり，その分科会としてまだ出来て間もないですが **iOS 委員会**があります。iOS アプリエンジニアの有志が集まり社内の Apple や iOS な部分の業務改善，情報のキャッチアップなどを行っています。

今回の諸費用は iOS 委員会と一部技術推進委員会の予算から捻出しました。

## 開催日と10%ルール

こうした社内イベントは通常土日など休日開催が多いと思いますが，今回の社内ハッカソンは金曜日の **10時〜19時**という業務時間内の時間帯で実施されました。
これはゆめみの **10%ルール**[^1]という制度を利用しています。

10%ルールとは業務時間の 10％(週4時間以内)であれば、どんなことでも自分の好きな研究に時間を費やすことができる制度です。業務が佳境だった場合などはなかなか時間取れなかったりしますがエンジニアにとっては新しい技術に挑戦できるとても嬉しい制度です。

個人的には2，3 ヶ月に1回，1週間くらい**「なんか動くもの作ってみましょうウィーク」**みたいな一気に取れる制度も欲しいなと感じていたりします。ずっと前にいた現場でこういう制度使って Apple TV 周りの実装に取り組んで，今ではサービス化されているといったこともありました。

## 準備と周知

だいたい積極的に動き始めたのは約 1 ヶ月前で周知も Slack のチャンネルと全社ミーティングの場で同じくらいに行いました。プロジェクト計画書作成や評価方法・審査員をお呼びする件に関しては委員長がやってくれました。

全社的に盛り上げるため，概要を書いたポスターをインターンの方に依頼して作ってもらい，みんながよく通るところや執務室のドアに掲示しました。委員会のミーティングで出た案ですがインターンの方に依頼出来たのはとても良かったと思います。とても好評でした。

![ha_00.JPG](https://qiita-image-store.s3.amazonaws.com/0/88266/06c3fe9e-0ad7-3b14-aaaa-989d6ffc40e7.jpeg)

ハッカソン当日の食事はお昼はお弁当，夜はケータリングを用意しました。食事，レッドブルやお茶などの飲み物の手配は品物だけ決めて総務に一括でお願いしました。食事周りの手配は社内勉強会などで一定のノウハウがありとてもスムーズ👍でした。(叙々苑のお弁当は早めに注文しないと売り切れ必至)

当日のスケジュール・会場設営などは実施週周辺で急ピッチで詰めました。
参加者の方は基本ほとんど作業なのでいいとして，社外の方が来られる時間をチェックして，待合室として会議室を確保したり(結局使わなかった)，弁当，ケータリングが届く時間を把握したり 19時からのプレゼンと質疑応答の時間調整も行いました。
会場設営は前日の業務後に行いました。場所は会議室のあるフロアにフリースペースがあり1日貸し切りました。社内の勉強会などもほぼ毎週水曜日にフリースペースで開催されています。

## アイディアソン

アイディアソンはハッカソン実施週の2日前の業務後に実施しました。

iOS 委員会の方でいくつかのワードを用意しておき，4人 1グループでそのワードから連想できるワードを 30秒で考えて紙をぐるぐる渡してどんどん書いていきます。
これを 20回繰り返す。実際に出たワードたちの一部が下記の画像のような感じです。
(左上が用意したワードです。横に進んでいき，右まで行くと再度次の行の左から)
なかなか自分では思いつかないようなものも多いです🤔

![ha_01.JPG](https://qiita-image-store.s3.amazonaws.com/0/88266/a4576fe7-a490-5df4-a8ec-1962e558d3e8.jpeg)

その後チームで書かれたワードの中から組み合わせる単語を話し合って(20分)，自分が作ってみたいアプリのイメージ図を紙に書き，それがどういうアプリなのかを 3行で説明して(25分)，最後に発案されたアプリをみんなで投票し合う(20分)という流れです。
実際のものが下記の画像です。相当数発案されたなという印象です。

![ha_02.jpg](https://qiita-image-store.s3.amazonaws.com/0/88266/28636ef3-5288-2543-31ff-c766d4e9f694.jpeg)

私は初参加だったのですが結構頭使うものでワード出し合う部分はシャトルランみたいな感じで結構きつかったです。1番難しかったのは連想されたワードを組み合わせる部分でこれらをどうアプリに繋げていくのか油と水みたいなワードばかりでなかなか・・・
なんとかひとつ組み合わせを見つけてアプリのイメージ図書いていきました。結構無の境地で邪念なく取り組めたかなと思っています。どちらかというとグループワークにしては思ってたより盛り上がっていて，こういうブレストもたまにはいいなぁと感じました。

## ハッカソン

ハッカソンは 10時に作業開始，コーディング(実装)及びスライド作成の締め切りが 19時までというスケジュールでした。19時からは会場設営のための時間があってすぐに成果発表という流れです。

チームでも個人でも参加可能で，iOSアプリエンジニアかどうかは不問。コーディング自体は事前に準備するのは禁止でアイデアや素材作りは許可されていました。iOS 縛りでしたが，Swift だけでなく，ReactNative でも PWA でも OK となっていました。 
ただ実際に成果物は 19時までに GitHub にソースコードを公開しないといけませんでした。

評価基準は下記の通りになりました。
審査員が 70点，観客からの投票で 30点の合計 100点満点。

* 審査員：70点
  - アイデア：15点
  - 実用性：15点
  - 完成度：15点
  - ソースコード：15点
  - プレゼン：10点

* 観客 30点
発表を聞いて 1チームに対して 1〜30 の範囲で点数をつけてもらい，
投票のあった全ての観客点数の最高点と最低点を除いた平均点を観客点数とする。

私は参加できなかったので同じ部屋で業務をしながら観察していました。
10時に始まり，ぼちぼち開始したようでした。メンターの方に質問・相談している方もいれば，黙々とひとりで作業するチーム，チームで相談しながら進めるチームなど色々ありました。今思えば時間が経つのが早かったように感じました。

どのチームも夕方以降は話しかけたら怒られそうなくらいかなり黙々と作業していました。司会者の方が到着し，審査員の方々も続々と到着されると発表に向けて緊張感が出てきました。

発表は 1チーム 5分，審査員の方々のコメント＋質疑応答が 5分でした。
各チームの発表はとても工夫されていて手が込んでいたように感じました。

審査員の方々のコメントで 5分は短すぎた感じで観客の質疑応答はできないこともありました。もう少し質疑応答の時間増やしたほうがいいかなと思いました。
さすが iOS 界のベテランの審査員の方々のコメントはとても的を得ていて，なるほどなーと思うことが多かったです。一部次項で紹介します。

観客の投票は発表中に発表スライドを映すプロジェクタとは別のプロジェクタで Google フォームへつながる QRコードを表示させて，アクセスしてもらうことで行いました。

発表後の懇親会もとても盛り上がってよかったです。

## いただいたフィードバック

たくさんいただいた中の一部ですが紹介します。

* アプリのアイデアはとても良かった
* いろいろな技術に着目するのはとてもいい
* ソフトウェアエンジニアとして問題設定と解決方法をしっかりして着地点を見つけることは大事
* コンセプトの明確さは大事
* やりきることが大事
* 時間が足りないは不可抗力
* ハッカソン全体の時間配分はしっかり考える
* ハッカソンでは動くものを見せるのが一番大事(評価の上でも)
* できないならできないなりにデザインを見せることも大事
* Firebase の導入部分で躓いていた印象(もっと聞いて欲しかった)
* Firebase(技術)のどこを活かしたのかのアピールをしっかり
* Firebase でできることいっぱいある
* ゆめみの会社愛というものをとても感じた(会社改善系のアプリが多かったためか)
* 辛口コメントを次回に活かせば良い

どう工夫すればビジネスとして成立するか，
女性の視点で考えることの重要性など
他にも多くのフィードバックをいただきました。

## 振り返り会

振り返り会が後日開催されました。

振り返りの方法として，**FDL(Fun-Done-Learn)法**[^2]を選択してみました。
**Fun** は楽しかった，**Done** は十分できた，**Learn** は学びがあったくらいで捉えました。
自身がやったことを付箋にそれぞれ記載し，Fun，Done，Learn のサークルのどこに該当するかを円の中に貼っていき，それぞれの項目ごとに議論していく感じでした。

![ha_04.jpg](https://qiita-image-store.s3.amazonaws.com/0/88266/779170a9-9143-8122-f9ff-d4ec116a2c4d.jpeg)

実際の結果が上記のようになりました。
とても楽しみ，学びが多くあったことがわかります。

会社としてこのようなハッカソンが開けたことはとても良かった。
お昼の焼肉弁当が美味しかった。
叙々苑のお弁当売り切れなのは残念。次回はアーリー・バードの特典に？

などが共通の認識でした。

## 私見

だいたい審査員の方々からのコメントと同じだったのですが，
Firebase をどこでどう使ったのかが発表からは弱い気がしました。
アプリエンジニアだけが参加するわけでないので
もう少し事前に導入や使い方などレクをしておいても良かったかなと。

時間を考えると実装できる画面数が少ないのは仕方ないとして
発表聞いていてイメージがわくようになっていれば良かったと思います。
動く or 動かなくてもイメージがわくモノを自信を持って発表すればいいかな。
イメージ・概念図とかあると聴衆にもっと伝わるんじゃないか。

私自身は iOS な世界に閉じこもっているので
他の技術分野の方々の視点，着眼点，発想などは
なかなか聞き応えがあり，アイディアソンも含め視野が広がりました。

私自身も参加できずでしたが，もっと参加者を増やしたいなぁ。
業務優先なのは仕方ないとはいえ・・・

フィードバックを活かしつつ次回に繋げられたらなと思いました。
他の分野でこのようなイベントがある場合は積極的に運営のお手伝いをしたいと思います。

## おわりに

今回は社内ハッカソン実施と得られた知見について書きました。こうした試みは初めてで色々至らぬところもありましたが，得るものも大きかったと感じています。次回以降良かった点は継続して，悪かったところは今回の知見を活かして改善していこうと考えています。

今回のハッカソンの関係者の皆さんお疲れさまでした。
また，お忙しい中参加していただいたメンター，司会者，審査員の方々にも
大変お世話になりました。ありがとうございました！
今回は運営側として携わりましたが，次回は **私が優勝** します！

ご覧いただきありがとうございました！
もし，少しでも自社でもやってみようと思っていただけたら嬉しいです。

[^1]: https://note.mu/raykataoka/n/n3d3bed7086a8
[^2]: https://qiita.com/yattom/items/90ac533d993d3a2d2d0f