毎月1回を1年間続けてきたタレンティオのTechDay運用

こんにちは、管野です。

タレンティオでは月に1回TechDayを開催しています。この日は普段の業務をお休みし、各自が好きなことを学びます。
そして1日の終わりにクロージング(発表)を行い、それぞれの成果を共有します。

2022年3月に始めて1年が過ぎました。そこで今回はTechDayの運用について振り返ってみます。

【目次】

  1. どうしてTechDayをするのか
  2. どうやってTechDayを運用しているのか
  3. TechDayを1年間やってみてどうだったか

1. どうしてTechDayをするのか

アウトプットに関する学習促進の機会を設けるため

発案当初の意図は、会社として学習促進の機会を整えることでした。Techメンバーはそれぞれ色々なインプットを行っていますが、その学びを全て今の業務に活用できるとは限りません。
活用できるかどうかは、本人が着手しているタスクや現在のアーキテクチャに影響されます。

そこでTechDayとして「各自が自由に作業できる日」を設けることになりました。
お試しで始まりましたが、今では後述する他の理由もあって継続しています。

インプットに関する学習促進の機会を設けるため

TechDayはインプットの機会としても有効です。
例えば新機能に関する技術調査や、既存のアーキテクチャで理解が弱い部分を調べることが出来ます。

後述するようにTechDayの終わりにはクロージングとして、ドキュメントにまとめて発表します。
人に伝えることを意識しながら学ぶため、情報を整理したり取捨選択することになり、インプットの質が上がります。

技術的なコミュニケーションの機会を設けるため

タレンティオでは現在フルリモートワークです。
オフィスに出勤していた頃とは違い、気軽に話せるタイミングは減っています。

みんなで集まって話し合うオンラインMTGはいくつかありますが、技術的な関心をテーマに話す場はほぼありません。
そんな中、TechDayのクロージングは各メンバーの関心事や得意分野を知れる機会になっています。

2. どうやってTechDayを運用しているのか

開催頻度は月1にしている

毎月の最終水曜日をTechDayとしています。メイン業務の開発速度を落とさないことが大前提です。
頻度を高くすると普段の業務に支障が出ますし、逆に低くするとTechDayに求める効果が薄れます。今のところ月1が丁度良いと感じています。

曜日はいつでも構わないのですが、今のチームメンバーにとって一番都合が良い水曜日にしています。

何をテーマにするかは各自の自由

GitHub DiscussionsにTechDayのトピックを一つ作り、月ごとにスレッドを立てています。 最初はGitHub Issuesを使っていましたが、業務でもDiscussionsを使うようになってからはそちらに移行しました。

メンバーは前日に「今回何をやるか」をコメントします。記載したテーマを必ずしも守る必要はなく、ここでのコメントはただの周知です。私はテーマがかぶらないようにしたいので、メンバーのコメントを見てテーマを変えたりしたこともあります。

TechDayで何をするか予定を書く

またテーマに厳密なルールはありませんが、なるべく業務に活かせるものを選ぶ傾向にあります。1日という時間制限のため調査や検証系が多くなりますが、「作ってみる」というテーマに取り組むこともあります。

当日は学習に専念して最後にチームでクロージングを行う

当日は始業から18:00までTechDayに専念しています。
もちろんサポート対応や障害など急ぎの時はそちらを優先しますが、基本的に普段の業務は進めません。そのため例えばコードレビューを依頼されることもありません。この日のSlackはとても静かです。

18:00になるとZoom上でクロージング(発表会)が始まります。
この時までにそれぞれ学んだことをKibelaに投稿します。このKibelaをもとに1人10分ほどの発表を行います。

3. TechDayを1年間やってみてどうだったか

TechDayの成果物

ここ半年のTechDayで取り組んだタイトルの一覧を、この記事の最後に載せておきます。そちらを見ると調査系が多いものの、作ってみたりチーム改善に貢献しているのもあるのが分かります。

例えば以下のような成果が生まれました。

CIや単体テストの改善

  • CI上の単体テスト(RSpec)を高速化するため並列実行を導入、12分 -> 3分に短縮した
  • (上記とは別の開催日で)遅い単体テストのコードを見直して、1~2分短縮した

開発環境の改善

  • Pull Requestに出してるブランチをステージング環境に構築できるが、その手順を簡略化した
  • タレンティオの状況に併せたER図ビューワーを作った

チームメンバーの感想

良い点

  • 普段まとまった勉強時間を取るのが難しいこともあるので、業務時間内に学習機会があるのは助かる
  • CIの高速化とか、普段の開発体験につながる成果が出てるのは良いこと
  • クロージングでの共有を前提に調べるため、いつもより情報を整理しようとして理解度が増す
  • クロージングで他の人の話を聞くだけでも、普段行っているWebでの軽い情報収集より理解が深まる
  • 取り組むテーマが限定されていないこと。幅広いテーマの話を聞けるのは興味深いし、楽しい

改善点

  • 現状でも不満ないが、強いてあげるなら1日以上あると嬉しい
    • 1日以内に終わるネタに限るので、何か作ってみるとか大きなことはしにくい
    • 毎回は難しくても半年とか年に1回だけでも、1日以上の開催があると嬉しい
  • クロージングで発表できるテーマに絞ってしまう
    • まとめ方が見えないテーマに関して「とりあえず触ってみる」ということが出来ない

おわりに

TechDayはとても良い取り組みです。個人のスキルアップだけでなく、チームの生産性や、お客様への価値提供に繋がる可能性があります。運用方法はチームの状況によって調整しつつ、引き続き継続していきます。

参考: 直近半年のTechDay記事タイトル一覧

- Amazon Comprehend の調査
- Zigについて調べてみた
- Rails7 主要な新機能の検証
- Bundle Sizeの調べ方
- タレンティオ用ER図Viewerを作ってみた
- 開発環境へのビルド・デプロイプロセスの改善
- 書籍『Webブラウザセキュリティ』を読んだ
- Rails7 のフロントエンド
- WASIについて調べてみた
- Notion APIを調べた
- 開閉アニメーションについて
- Techブログを書いてみた
- Sentry Session Replay機能の検証
- ハッシュ関数と暗号化/復号について
- SendGrid APIの活用
- Source Map
- ワンタイムパスワードを調べた
- 遅い単体テストを改善して少しだけ早くした
- 機械学習にトライ
- zustand を調べてみた
- Sentry Session Replayに関するブログを書きました
- intercomのお問い合わせをスプシに集計する
- Zodの調査
- 「React でのドラッグ&ドロップライブラリを比較してみた」というブログ記事を書いた(ている)
- ChatGPT and Whisper APIsの活用
- 仕事ではじめる機械学習を読む
- Remix を調べた