Techtouch Developers Blog

テックタッチ株式会社の開発チームによるテックブログです

社内ハッカソンを開催して”技術”を楽しんでみた

f:id:techtouch:20220310212753p:plain

みなさん、こんにちは。エンジニアリングマネージャーの Kobaan です。

最近、急に腕時計が欲しくなったのですが、腕時計(スマートウォッチ含)はしょっちゅう紛失する前科があるため、高級ではないけどしっかりして、かと言って安っぽくない腕時計を探したのですが、結果として CASIO の Databank で満足しきりの今日このごろです。

なぜこの記事を書いたか

先日社内ハッカソン(通称 HackTouch )を実施したのですが、内容的にも面白かったので、実際にどのように準備し、どんな案件をやっていったのか?を振り返りも兼ねて雰囲気がわかるようにご紹介していきたいと思います。

きっかけ

特に誰かに言われたわけでもなく自然にインスピレーションで・・・、というわけでなく日々エンジニアと 1 on 1  をしていたら下記のような意見を頂きました。

  • なんらかの新しい技術を使って、業務に活かしたい
  • プロダクト開発に直接的に役立たないけど、困っていることを解決するツールを作りたい
  • ただ、業務もそこそこ忙しくまとまった時間が取りにくいため食指が動かない

何をやるべきか?エンジニアリングマネージャー・スクラムマスターとしての悩み

時間はとってあげたい、けどベロシティは下げたくない。
うまく調整してほしい、でも個人の調整だけだとなかなか進まないのは事実。
やらないを選択するのは容易い。けど、エンジニアのモメンタムと学びの機会を逃したくない。
結構悩んだ結果「ハッカソン」で解決しようと。

  • ベロシティは下げたくない
    • →自由すぎるテーマはやめて、業務効率化に効くものにしよう。そうすれば将来的に効果が出るはず。
  • 個人の調整だけだと進まない
    • →ハッカソン Day を計画的に作ることで、業務的な計画にも穴を開けずに実行できるはず。

社内ハッカソンの計画を立てて準備をする

スケジュールを立てる系は割と得意領域なのですが、エンジニアが気持ちよくハッカソンをやるためにはエンジニアの協力は不可欠です。
(私だけでやるとグダるのは確定だと思ったので笑)
そこで社内エンジニアの @tsune @misu に手伝って頂きました!めちゃくちゃ協力的で、ふたりとも即答でいい返事を返してくれたのを覚えています。
バリューでもある「挑み続けろ、援護があるから」を地で行く反応で嬉しかったです。

また当日のアジェンダづくりには結構気を配りました。
当初オフラインで実施予定だったのですが、感染状況を鑑みてオンラインに。
どうしてもそうなるとみんなが何をシているかがわかりにくくなることが懸念でした。
勿論もくもくとやっていくのもいいと思うのですが、途中途中で情報交換することで「お、あのチームめっちゃ進んでるな」とか「へー面白いことやってるね」といった相互リアクションを引き出さないと、盛り上がりに欠けるだろうなと思っていたからです。
なので当日アジェンダは下記の様に単に時間確保するだけでなく、お昼ごはんやコーヒーブレイクを挟むことで、コミュニケーションの場を半強制的に作り出しました。
(賛否両論ありましたが、結果としてよかったのではと考えています)

f:id:techtouch:20220307125102p:plain

社内ハッカソン当日のアジェンダ

また、エンジニアが気持ちよく入れる環境作りのため、下記を行いました。

  • 事前にテーマ収集をしておく
  • 募集したテーマに賛同できるような人を募ってチーム化する
  • 事前準備の時間を設けることで、当日は設計・実装から入ることができる

社内ハッカソンだからできるポイントでもあるかなと思います。
また、サーバー環境や Github のリポジトリルールを決めて置くのも大事だったと思います。

当日のようす

みんな楽しんでたと思います。百聞は一見にしかず。

f:id:techtouch:20220309162625p:plain

f:id:techtouch:20220307134507p:plain

f:id:techtouch:20220309162629p:plain

f:id:techtouch:20220307134519p:plain

f:id:techtouch:20220309162631p:plain

f:id:techtouch:20220309162934p:plain

たまたま出社してたので一緒にやってた二人
(撮影時以外はマスクを着用していました)f:id:techtouch:20220307134523j:plain

どうでしたか?楽しそうでした?

ハッカソンテーマと発表

ここからは各チームの発表内容とそのチームアウトプットの紹介文を共有したいとおもいます。

(すべてのチームで写真が取れておらず申し訳ありません><)

チーム A 社内用語を管理してくれる君( slackbot )

 

社内には、社外の人には到底理解できない謎のことばなどがあります。

会話の中でそういった言葉が出てくると、聞き覚えの無い人は「これきいてもいいのかな」「話の腰を折ってしまうからあとできいてみようかな」などと考えてしまい、コミュニケーションの質やスピードを下げているのではないか、そして、このことが組織にとって損失となっているのではないか、という仮説を立てました。

今回のハッカソンでは、この課題に着目したメンバーが、Slack Bot によってこれを解消しようと試みました。

この Slack Bot「ものしりテッくん」によって、「兼六園」「クリンチ」「夜道気を付けてくださいね?」といった、謎のことばに、誰も困惑せず、スムーズにコミュニケーションが図られるのではないか、と期待しています。

なおインフラは AWS Lambda、データベースは Notion の Table を使用しています。

f:id:techtouch:20220307134528p:plain

 

チームB good and new bot

 

チームでのアイスブレイクで朝5分くらい話すGood And New の当番を教えてくれる slack slash command を作りました。

順番の変更や休日・祝日skipをいれて極力commandに話しかけなくていいようにしています。

当番通知時にnotionのリンクを貼って話したネタを任意で貯めておけるようにし、チーム外でも話したネタをみれるようにしました。

f:id:techtouch:20220307134532p:plain

チームBの発表の様子

 

チームC 個人の直近の業務内容や What’s new の投稿を促すボット

 

開発をスケールさせるためにチームが増えており周辺の様子が見えづらくなりえる。

自分のチーム外の雰囲気だけでもわかりやすくするためにある週のチョーシをスタンプで収集し、全体のサマリ・コメントをレポートする Slackbot を作った。

 

チームD 工数管理の効率化ツール

 

Google カレンダーに登録された会議やタスク情報を Google App Script で自動で取得+工数計算し、スプレッドシートへ記載するアプリケーションを作成。

アプリケーションはスプレッドシートのメニューより呼び出せるようにしました

f:id:techtouch:20220307134536p:plain

チームDの発表の様子

 

チームE BFF 作成

 

フロントエンドからの複数サービスを跨ぐ複雑なリクエストを集約して柔軟に捌きたい、かつリクエスト数を減らしたいという課題があり、Apollo-Server を使ってテックタッチの API リクエストをまとめ GraphQL クエリで取得できるように対応した。

実際にテックタッチのプレイヤーを表示するまでを 6 → 3 リクエストにまとめ、一つのエンドポイントでクエリを記述するだけで視覚的に分かりやすくデータを取得できるようになった。

 

チームF google カレンダーから即座に notion に議事録作る君

 

オンラインミーティングの議事録にすぐにアクセスできないので、議事録を書くもしくは参照する心理的なハードルがある、という課題がありました。

課題を解決するために、Google カレンダー上の予定詳細画面からその会議の議事録を簡単に notiion に作成して共有できる Google Workspace の拡張を作成しました。

ミーティングの効率化やドキュメントを残す文化の推進に役立つことを期待しています。

f:id:techtouch:20220307134542p:plain

 

チームG シャッフルランチの組み合わせを自動で作るツール作成

 

リモート環境化のコミュ二ケーション施策としてシャッフルランチを実施していますが、シャッフルランチのチーム分けを人手で行っており手間に感じていることや、ランチ日より前にチーム分けを行う都合で欠席者を考慮した開催ができていない状況でした。

これを Slack Workflow + google spreadsheet を利用したワークフロー作成により、bot ライクに参加、不参加のアンケートを記録し、spreadsheet から当日参加する人を抽出してグループ分け、アナウンスする機能を作成しました

f:id:techtouch:20220307134546p:plain

 

チームH ニックネームで Google カレンダー検索できる

 

TT ではニックネーム文化が浸透している一方で、各メールアドレスなどは本名で登録されているため、ニックネームで検索しても出てこず、不便な状況が続いていました。

それを解消すべく作成したのがこちらの Google カレンダー用の Chrome 拡張です。 ゲスト欄に入力された文字を読み取り、もしそれが社内で使われているあだ名だった場合にカレンダーが認識できるアカウントの文字列に置き換えるためのリンク(ボタン)が表示されます。  

CTOコメント

今回のハッカソンについて、CTO の @jun からコメントをいただきましたので、以下で紹介します。

テックタッチのメンバーは、モノづくり・技術が好きな人が集まっているため参加率も高く、当日は想像以上の盛り上がりでした。
テーマもちょうど良い自由度があり創造力を働かせられましたし、普段一緒に仕事をしないメンバー同士の交流が進み、とても良い時間が過ごせたと思います。

また、最優秀賞に選ばれた「ニックネームでカレンダー検索できる君?」は、テックタッチのニックネームカルチャーがもたらす小さな不便に着目した良いソリューションで、社内で実運用していくこととなっています。
僕も次は最優秀賞をもらえるよう、今からアイデアをストックしておこうと思います。

 

やってよかったと言えるように

主催者として、「開催するからには気楽な気持ちだけではなく、しっかり成果を出せる環境づくり」を心がけた結果として、アンケート回答者全員から「次回の開催を希望する」とご意見をいただけたのは嬉しかったです。
実際にこんなつぶやきをしてくれる参加者もいてくれたので嬉しかったですね。

ただ、諸手を上げてではなく、修正してほしい改善ポイントもあったので、次回以降の満足度がより上がっていくような仕掛けを考えていければと思っています。
参加者の皆様も、それを支えた皆様も業務で忙しい中ありがとうございました!
なおCTOとも会話してテックタッチでは今後も社内ハッカソンを継続して行っていく予定ですので、もし興味のある方はぜひカジュアル面談からでもご応募お待ちしています!