こんにちは。コラボフローの製品開発チームです☆
今回はコロナ禍でフルリモートになって確立した開発スタイルについて、お送りしていきたいと思います☆

※このブログの内容は、文体が一定ではありません。答えは最後に書いてあるので読んでね★★★

モブプロやってます!

コラボスタイルの開発チームでは2019年からモブプロを採用しており、現在もモブプロで開発を行っています。

モブプロとは?

各自で課題に対応する(プログラミングする)のではなく、3人以上のチームで課題に対応(プログラミング)する事です。
※モブ=群衆 (フラッシュモブのモブ)

モブプロを行う際はチーム内で以下の役割を決めます。

ナビゲーター
  • ドライバーに指示する人
  • 実装内容について都度相談や質問をしてドライバーが迷わないようにする
ドライバー
  • ナビゲーターの指示に従ってキーボードを打つ人
  • 指示内容や実装内容が不明な場合は質問して理解する
  • ナビゲートがなければ質問・相談する
ドライバーとナビゲーターは時間を決めて順番に交代していきます。

モブプロの効果

仕様の共有、認識合わせがしやすい
  • 常に情報共有しつつ開発作業をしているので仕様に対しての認識に齟齬が生じにくくなった。
  • 認識のズレが少なくなったことで実装後の手戻りが減った。
  • 今までは朝会や夕会で情報共有を行っていたがその手間が減った。
品質があがる
  • 実装しながらコードレビューを行っているので、コードの品質があがる。
  • 仕様やテストパターンの漏れが減る。
個人に負担が集中しない
  • 1つの課題を1チームで対応するので1人で抱え込む事がなくチームで分散できる。
  • 急に休む場合でもチームの他のメンバーが対応してくれる。
1人で悩む時間が減る
  • 直ぐにアドバイスがもらえる。
    • 確認するための待ちがない。
  • 気軽に相談しやすい。

コラボスタイル流モブプロ運用

一般的なモブプロでは、一つのPCを交代しながら使っていくといわれていますが、
コラボスタイルでは、フルリモートワークのメンバーが大半であるため共同の開発環境へ接続して行っています。
また、モブプロ中は常にSlackで通話・画面共有を行いながら開発を進めています。
(なので1日中通話しっぱなしでやっています。)

Slack画面共有について

通話だと言葉だけで相手に伝えないといけないと思いがちですが、
Slackの画面共有時に使えるペンを活用すると意外と伝わります!

ドライブ時間について

45分でやってた

一人のドライバーが45~60分担当して交代するようにしていました。
しかし、時間が長すぎて緩んでしまったりと問題が見つかったため、様々な時間を試してみることにしました。

15分

まず率直な感想。

集中力が半端ない!

自分の持ち時間が15分しかないので、雑談をしているとあっという間に時間が過ぎてしまいます。
雑談は皆大好きなんですが、さすがに15分の持ち時間では業務を優先したくなり、遠慮します…。
結果、雑談が皆無になりました。

ものは試しに1時間程度15分サイクルで回してみたのですが、
雑談皆無の状態で1時間業務をしつづけるため、終盤は疲れていました。

(たぶん、今までにない集中力で燃え尽きた(?))

結論:集中してやるには良いけど、1日中15分で回すのはつらい。

15分の2倍、30分

15分よりやりやすい!
雑談もできるような余裕ができました。

あれ…でもなんだか皆の様子が…?

雑談ができる喜びと、(時間が長いから)精神的な安定が保たれるため
気分がだれてしまい、雑談が増えてしまいました…。

30分だと、余裕ができてしまい人間が集中力を保ちにくいという判定に至りました。

ならば、20分はどうや?

20分が一番いい感じ!でした!
「15分にプラス5分しただけやん」とか思いませんでした?

この5分がすっげえ大事なんですよ。

業務に集中しすぎてしまう15分に、
ほんのちょっと緩い時間を足すことができる、そんな感じっす。

モブプロあるある

モブプロをやるにあたり、「あるあ・・・るあるあるあるある!!!」な内容をまとめてみました。

※コラボスタイルで行ったモブプロの体験からです。ない場合はご了承ください

ドライバーが一人で進めてしまう

ナビゲーターの指示の前に動いてしまい、暴走を始めることがあります。

エキスパートの場合であっても、共有することなく一人で進めてしまうと後々問題が発生します。

ナビゲーターが置き去りになる
対策
  • ドライバーを変わってもらい、ナビゲーター役として発揮してもらいます。
  • ナビゲーターがドライバーを止めて実装内容を確認します。
  • ドライバーが自ら気付いた場合はナビゲーターに説明します。

ナビゲーターの人数が多いとナビゲーターが見てるだけ(オブザーバー)になりがち

ナビゲーターが多すぎると特定のナビゲーターだけが指示を与え、その他のナビゲーターは安心してしまうのか発言が無くなります。

その結果、少しくらい気になっても見ているだけになりがちで、活発な意見交換が生じなくなります。

対策
  • 人数を少なくするため、チームを分けます。
  • 自分にできることは無いか、他のナビゲーターに質問/相談します。

ノってるときにドライバー交代したくないと思ってしまう

ドライバーになっているときにまれに発生する全能感によって、まさにノっている時にドライバーの持ち時間が無くなると「まだ交代したくない!」と思いがちです。※思うだけで交代はします

対策
  • 若干の不満が蓄積する場合がありますが交代します。
  • タイマーを活用します。
  • ノってる感をそのままナビゲーターとして発揮もらいます。

なんでもモブプロになりがち

チーム内にモブプロが浸透すると、何でもかんでもモブプロで運用してしまうことがあります。
しかし、全ての作業をモブプロでやってまえ!という心構えだとかえって効率がおちることがあります。

たとえばこんな時…

  • 検証するとき
  • 不具合を調査するとき
  • 資料を作成しなきゃいけないとき
  • 体調が悪いときには1人でやりたいときもある
対策
  • 課題にとりかかる前に「これ、モブる?」の確認を入れます。

ただし、開発チームではいつでも相談できるように常に通話を立ち上げています。

会話に割って入り辛い時がある

分からない内容や質問が出てきても、話が盛り上がっていると割り込み辛く、聞くタイミングを窺ってしまうことがあります。

対策

モブプロをする上でやはり重要になるのはコミュニケーションだと思います。
会話&質問しづらい、内容がわからず置いてけぼりになるなどがあるので、話しやすい、聞きやすい雰囲気を作る事が大切です。

そのため、開発チームでは雑談を重視しています。
雑談によって話しやすい雰囲気を常に作っておき、わからない点などは気軽に聞けるようにしています。

ただ雑談ばかりおこなっているので業務は進みませんので以下を意識してやっています

  • 業務に支障が出ない程度の雑談は許容しています!
  • 雑談を行うことによって普段から誰でも発言しやすいように心理的安全性を高める効果もある。
  • かと言って過度な雑談を行うのはダメ。
    普段から適度な雑談を許容し設ける。何事にもメリハリ、バランス大事。
  • やりかた云々の前に、そもそもチームメンバー間の信頼関係を築くことが大事。

実はこのブログ、モブでやりました

2チームで書く章を分担してこのブログを書きました!
文体が一定ではないのは、ドライバーに依存していたからです(笑
モブでブログ書いて得た知見は、以下の通りです。

  • 色んなアイデアが出てきておもしろい
    • 反面まとめるのが大変だったりもしますが。。
    • ドライバーの暴走を止めるのもナビゲーターの役目だと気づく。
  • 別チームと内容被っている事に後で気づく。。

また、ドキュメント系は、モブは推奨していなかったので、
ブログもうまくいかないのでは…と思っていたところ、
案外うまくいってしまいました(笑

まとめ

まだまだ改善する点や効率化できる点があるか、定期的に改善方法を模索しつつ試行錯誤しています!

※開発環境に関して改善内容がありますが、ボリュームがあるので別記事にする予定です。

参考になれば幸いです。

それでは、また。