🐔

チームに技術雑談の時間を毎日いれたら良いことがあった

2024/12/21に公開

はじめに

この記事は株式会社ビットキー Advent Calendar 2024 21日目の記事です。
ビットキーでworkhubAppというオフィスワーカー向けのiOSアプリ開発を担当しているあらさん/arasan01です。

この記事ではチームビルディングの一環として毎日、技術雑談の時間を作ってみた結果を取り上げます。

解決したい課題

私たちのチームではメンバー間の開発スキルの差に課題があり、PRレビューの段階で大きな手戻りや指摘が発生することが多くありました。これは単純なフレームワークに対する知識の差や基礎的なコンピュータの仕組みに基づく知識の差によって発生していると考えています。

一例として非同期処理に関係する設計やSwiftでは必須の知識となっているSendable要件の実装方法などはPRレビューで根本的な変更を要求する指摘をする場合があります。

チームとしての成果出力を考えると、根本的な指摘により大きな手戻りが発生することは避けたいため、個々人のスキルの引き上げをすることは必要なことでした。

やったこと

そこで私たちのチームでは、開発者個人の基礎力を高めるために毎日12:00~13:00の1時間『モブレビュー&TechTalk』という取り組みをしています。モブレビューではチームのPRをレビューするよくある取り組みです。TechTalkとは適当なトピックを取り上げて雑談するという立て付けになっています。

この取り組みは2024/10月の終わりから始まり、継続して続いています。全ての取り組みは動画になっており、トピックを後で見返すこともできます。

image.png

進め方として案出しテンプレートを用意しています、チームメンバーが話したいことを適当に記載することで毎日開催を支えるためのネタを大量に用意できるようにしています。

開催の目的は会話をすることであるため、基本的に資料は参照するドキュメントや動画だけを記載します。準備に時間がかかっては毎日開催はできません。

これまでに開催したトピックは以下のようなものがあります、基礎的な内容から発展的な内容、思考を飛ばしてより良い体験を作るためにはどうしたらいいなどを話しています。

1. 空間インデックス勉強会
2. 楽に話すためのトリック
3. build, run, debug, more LLDB
4. ちいかわで学ぶ体験設計
5. SwiftUI, UIKit, CoreAnimation, MetalのUIフレームワークを眺める会
6. Navigation理解
7. RN脱却だけがゴールじゃない!!workhubAppのコード構成未来予想図
8. LLMと仲良くなる
9. Swift Concurrencyおさらい
10. CIおじさん量産化計画
11. AsyncStreamの使い方
12. Protocol, Extension, Generics使い方
13. 仕事効率化のために工夫していることってなんかある?
14. ファームウェア探求会
15. Actor, Classの使い分け
16. TCAを話そう
17. チームメンバーのこれまでの開発に関わってきた内容の深堀り

例えばLLDBに関するトピックは以下のような内容になっています。基本的な取り組みとしては動画に行った内容が残るため、ノートはそんなに多くありません。資料も雑談で取り上げたいもののみを貼り付けています。

# build, run, debug, more LLDB

タグ: TechTalk, チーム開催
Speaker: arasan01
ステータス: Done
ユーザー: /* masked */
日付: 2024年11月27日 → 2024年12月2日
開催動画: 複数あるので内部記載

## テーマ

もっとデバッグを効率的におこなえるようにする

## 開発にどんな影響があるか

基礎力向上

## 開催動画

2024/11/27

/* 開催動画 */

2024/11/28

/* 開催動画 */

2024/11/29

/* 開催動画 */

2024/12/2

/* 開催動画 */

---

## はじめに、資料など

**WWDC24 実行、ブレーク、検証:LLDBでの効果的なデバッグ方法**

[https://developer.apple.com/jp/videos/play/wwdc2024/10198/](https://developer.apple.com/videos/play/wwdc2024/10198/)

現時点で一番新しいLLDBによるデバッグ手法のまとめ

**WWDC19 LLDB: Beyond "po"**

[https://developer.apple.com/videos/play/wwdc2019/429](https://developer.apple.com/videos/play/wwdc2019/429)

v, p, poのコマンドがどうやって動くのかを知る

基礎の基礎であるLLDBがコマンドの実行方法をする方法を知る

**WWDC18 Advanced Debugging with Xcode and LLDB**

[https://developer.apple.com/videos/play/wwdc2018/412](https://developer.apple.com/videos/play/wwdc2018/412)

一度も再ビルドすることなく実行時に動作を書き換え続けてアプリのデバッグをする手法の説明

LLDBを扱う内容でインタラクティブにアプリの動作を書き換える内容で面白い

**(Hard) WWDC21 シンボリケーション: 基礎を超えて**

[https://developer.apple.com/jp/videos/play/wwdc2021/10211/](https://developer.apple.com/jp/videos/play/wwdc2021/10211/)

dSYMをもとにLLDBなどがシンボルを特定する方法を解説、扱っている内容がそこそこ難しいので理解できなかったら時間をおいて再挑戦しよう

**Debugger Update**

[https://www.swift.org/blog/whats-new-swift-debugging-5.9/](https://www.swift.org/blog/whats-new-swift-debugging-5.9/)

## 話したこと

開催動画みてくれ

得られた成果

この取り組みをしたことで得られた成果は多くありました。

別個のタスクをそれぞれチームメンバーに割り当てた場合にはチーム間のコミュニケーションは希薄になります。そのため当初の課題となっていたPRのお互いが求める出力に差異が生まれる問題があります。
これが毎日のモブレビュー&TechTalkでのコミュニケーションによりチームが求める水準のPRを振り返る時間として機能するため、PRレビュー段階における手戻りが少しづつ減らすことができています。

また、チームメンバー各個人がそれぞれ得意な領域を毎日話すことでプロダクトの機能設計をするときに、その発言の背景を考えることができるため、お互いを信頼できるようになります。

別の成果として、開催は全て動画となっているため新しく入ってきたメンバーもチームのコミュニケーションの雰囲気を振り返ってみることができます。チームの雰囲気という表現しにくい内容も過去開催の動画をみることで解決します。

具体的なやり方

1. ドキュメントに雑談テンプレートを作成する

私たちのチームではNotionを利用しています。Notionのデータベースとドキュメントのテンプレートを利用することで案出しを簡単にしています。初期テンプレートとして利用できる内容は以下のスニペットを参考にしてみてください。

## テーマ

<#ここに書く#>

## 開発にどんな影響があるか

<#ここに書く#>

---

## はじめに、資料など

<#どういうノリのトークか、資料があればここに書く#>

## 話したこと

<#話して出た内容、コードのスニペット、スクショなど貼る#>

## 参加者の感想

<#参加者がこれに参加してどう思ったか#>

2. 開催動画は全部とる仕組みをつくる、Meetであれば自動録画を有効にする

録画は必ずしましょう、過去の開催動画を積み重ねることでチームの雰囲気の移り変わりを知ることができます。また過去と同じトピックを再度取り上げた時に自分たちの成長を感じることができます。

3. 『モブレビュー&TechTalk』で毎日続ける

モブレビューとTechTalkを同じ時間の枠にすることをお勧めします。レビューがない日や少ない日は雑談時間が伸びます。この雑談時間は楽しい時間として設計することでPRの質やPRの作り方も変わります(PRの対応時間を短くするインセンティブが働きます)。また、毎日固定の1時間の枠をコミュニケーションとして使うことで日々のコミュニケーションの密度を一定以上に保つことができます。このコミュニケーションの密度の下限が設定できる効用は侮れません、チームメンバーとの信頼関係は日々の積み重ねで生まれます。

おわりに

お互いの求める標準を擦り合わせるために開催している『モブレビュー&TechTalk』という取り組みはとても良いものになっていると感じています。雑談という時間は会を重ねるごとに話題が尽きてしまうため、これを補うための雑談候補をテンプレート化することが重要です。また、技術雑談によってお互いの強みの理解や知識の提供によって日々の楽しさと信頼関係の醸成にも役立ちます。

ぜひ読んでいる人もやってみてください。

Bitkey Developers

Discussion