このエントリは、SmartHR Advent Calendar 2024 シリーズ1の22日目の記事です。
この記事は何?
SmartHRに10月にJoinして約3ヶ月、チーム開発でモブプログラミング(以下モブプロ)、スウォーミングを体験してきたので、感じたこと・工夫したことなどをまとめます。
この記事で取り扱わないこと
- モブプロ、スウォーミングを導入する方法
- すでにチームで文化として成立していたため
- モブプロ、スウォーミングのやり方
- 詳しい記事は他に沢山あるので、そちらに譲ります
個人背景
- ペアプロでの開発経験は少しだけあるが、基本的にはソロプログラミングでやってきた
- モブプロに興味はあったが実践する機会はなし
- スウォーミングという言葉はこのチームに入ってから知った
- プログラミングはじっくり考えて、ひらめきがあったときに喜びを感じるタイプ
チーム背景
- チームメンバーは5人(内エンジニア4人)、フルリモートでスクラムでの開発を実施
- 10月にJoinした直後はちょうど忙しい時期で、各々開発をしていた
- 10月半ばにモブプロを開始
- 11月頃から、ベロシティを上げるための施策としてスウォーミングを実施
モブプロについての感想
どのように実施していたか
- 1つのタスクを全員で実施
- 20分交代で1人がドライバー、残りがナビゲーターとして作業
- ナビゲーターが画面を共有して作業をする
メリット
- チームに参画してすぐ、右も左もわからない状態において、ドライバーをやることはキャッチアップをするためにはとても良かった
- 複雑なタスクについて相談しながら進めることができたので、一人で詰まることがなかった
- ↑と合わせて、複雑な仕様をその場で全員に共有できる
- 全員が実装を把握しているため、PRオープンからアプルーブまでのサイクルタイムは短い
- 他の人の作業環境が見られるので、便利機能やTipsを共有することができた
- オフラインで仕事しているときはこういうのよくあったよなと思い出した
デメリット
- 全員の時間を使うので、簡単なタスクをモブプロでやると時間がもったいない
- 全員の時間を使うので、ドライバーをやるときにとても緊張する
- 右も左もわからない状態だと、ナビゲーターで価値をあまり発揮できない
- 他の人が会議などで抜けて1人になったとき、「どうしよう?」となることがあった
- 個人タスクを別で持っておくとか、一人で進めてOKとか決めておくことで対応できる
- じっくり考える時間はあまり取れない
スウォーミングについての感想
どのように実施していたか
- 各個人がタスクをそれぞれ持つ
- ミュートで通話を繋いだ状態でそれぞれ作業する
- 相談したいとき、レビューして欲しいときなど声を掛けて、モブプロに移行する
メリット
- じっくり考えつつ、困ったときにはパッと相談できる
- それぞれタスクを進めるので、タスクの消化が早くなった
- 困ったらすぐ相談できるという安心感
デメリット
- 相談したいけど、今集中してたりしないかな?とか気にしがち
- お互い様なので気にせず声をかけよう、とチームで合意したことにより解消
全体を通しての感想
- 現在はモブプロとスウォーミングのいいとこ取りで実施しています
- 基本はスウォーミングだが、複雑なタスクはモブプロ
- 常時通話繋いで相談できるのはチームの文化があってこそだと思うので、チームに感謝
- 基本ミュートにしているので、いっぱい話したのにミュートだったというのはよくある
- ミュートし忘れて配信事故になるのはまだやっていない
- 手元でミュートできるUSBマイクを購入したが、入力ソースが違うものになっていたということはよくあるので、ミュートのショートカットは把握しておくといい
- 普段はMacのMisson Controlを多用してるけど、画面共有される側からすると画面の切り替わりで酔いそうな気がするので、なるべく使わない/使うときはゆっくり切り替えるを意識している