僕らのモブプログラミングは「全員でプログラミングをする」ということではなかった

## 去年の夏ぐらいからサポートしているチーム

で、それまでもちょこちょこモブプログラミングを試してはいたんだけど、3月からは思い切ってそれを基本として開発をするようにした。つまり、3月からは1日中モブプログラミングをするのを毎日やってる。

プログラミングだけじゃなくて、設計も、運用も、テストも、全部モブでやってるので、僕らはそれをモブワークと呼んでる。

## やっていく中で学んだのは

モブプログラミング(モブワーク)は「全員でプログラミングをする」ということではなくて「全員で考えて取り組む」というだけのことだった。

サービスにとってどう動くのが良いかを全員で考える。

目の前のプロジェクトのことだけではなく、少し先を見据えてメンバー間の知識やスキルの共有や、チームがまだ詳しくない分野の学習をすることも含めて、どこにトレードオフスライダーをセットするのが良いかを全員で考える。

## 全員でプログラミングをするというのは

その手段のひとつに過ぎない。だから、そのチームは常に全員で作業をしている訳ではなくて、状況に応じて、全員モブ(5人)、モブ&ペア(3+2)、モブ&ソロ(4+1)、ペアペアソロ(2+2+1)などを切り替えながら開発を進めている。

2月までと違うのは「全員モブがデフォルト」ということだ。それまでは「全員別々がデフォルト」で、その中でペアやモブを組んでやっていた。でも、今はまず全員が集まることが基本で、そこから必要に応じて「ペアにわかれようか」とかの話をしているのだ。

外から見るとどちらもペアでやっているのだけど、実際に中にいると全く情報の流れが違う。

## 全員で毎日ふりかえって

次の日にトライする。その結果を見てまた次の日に別のやり方を試してみる。そうやって、自分たちに合った形の働き方を探っている。

例えば、そのチームはランチをとる時間がメンバーによって違うのだけど、最初はランチ時間を揃えてみて「まぁ、できなくはない。でもランチは自由に取りたい」って話がでて、じゃあ、ってことで好きな時間に取るようにしたら、今度は「誰かがランチに行ってる間は作業が止まってしまう」ってなって、じゃあ全員が揃ってなくても二人いたら進めようか、ってなって、今はランチの時間も作業が止まらずに進んでいる。

## チームはスクラムの中でモブワークをやっている

ので、2週間のスプリントがある。2週間の初日にスプリントレビュー・スプリントレトロスペクティブ・スプリントプランニングをやって、2日目から10日目まで開発をする。真ん中ぐらいでバックログリファインメントがある。3スプリント回してきて、だんだん自分たちのチカラをスムーズに発揮できるようになってきたと感じる。

## 1日の流れ

は、こんな感じ。

  • 9:00-10:00 学習セッション
  • 10:00-15:30 モブワーク
  • 15:30-16:30 個人の時間
  • 16:30-17:00 今日のレビュー・今日のふりかえり・明日のプランニング

## 良いリズムをつくりだしているのは

毎日のふりかえりだろうな。「何かもやっとする・・・」というときにそれをふせんに書いて口に出しても良い。誰もそれに対して否定をしない。という安心感がチームの中にある。

もう僕のサポートが要らないチームになってしまって、少し寂しい気持ちもあるけど、何か問題にぶつかっても、メンバー全員で意見を出し合って乗り越えていっているのを見ていると、とてもうれしい。