苦しいペアプロに苦しむ話
こんにちは、株式会社ROXXの agent bankでスクラムマスターをやっている坂本です。
うちのチームはペアで作業をするというのを頻繁に行っています。
その中で、メンバーの様子を見ていたり話を聞いている中で感じた(または直接聞いていたかもしれない)ので、ペアプロ(もしくはペア作業)の苦しみを書いてみます。
その前に注意事項
まずはペアプロの良いところから
まずメリット書かないと暗い悲しい記事になっちゃいますね。
ペアプロのメリットはあります!
うちのチームで自覚できていることとしては以下があるのかなと思います。
早い段階での検査を行えること
知識を集合させて困難に立ち向かえる
知見を共有しあえる
楽しい
軽く補足していきます
早い段階での検査を行えること
特に、難しい課題やタスクや考える要素が多い時に、完了したと思って成果物を共有したりしてレビューをもらったら「あれ?全然見当違いのことやってない?」みたいなことが発生することありますよね。あれを複数人で対応することで、より早くに検知して軌道修正できています。
または、ハマってしまった際にペア内で助け合って解決したり、限界に早めに気づいてペアの外に助けを求めよう!という会話を生むみたいなこともおきています。
知識を集合させて困難に立ち向かっている
人によって知識の差があることは当たり前だと思います。業務知識であったり、技術的な知識だったり、他にもいろいろあるかと思うんですが、得意不得意、知ってる知らないをお互いに補うことで、一人では解決できないことを解決していくよ!みたいな感じですね。
知見を共有しあえる
若干ひとつ前のものと被ってるとこあるかもですが、人によって詳しい部分得意な部分を補ったり、複数の視点から見ることでわかる気づきをお互いに共有しあって、チーム内の知見の偏りを減らしていきます。
これにより、過度な属人化が減りチームとしてできることも増えていきますね。
楽しい
うまくいっている時はこれを感じます。やり取りの中で生まれる新しいアイデアや気づきが生まれるなどして、一人では体験できないような、動きができてい時に感じるんでしょうね。コラボレーション!!
毎回これを感じれるようになりたい。
こんな風にペアプロを苦しんでた
では逆に、苦しんでいる時って何が起きてるんでしょう?
様子を見ていたり、話を聞いた感じでは、一般的にペアプロと呼ばれるものとは違う何かをやっていたり、ペアプロのアンチパターンと呼ばれるものを踏んでいたってことなのかなと思います。
ドライバー、ナビゲーターの交代がない
ペア同士のスキル差、知識差が大きすぎる
ペアの方針の合意がないままになんとなく進んでいる
ひとつづつ簡単に補足していきます。
ドライバー、ナビゲーターの交代がない
ペアプロってめっちゃ集中します。ペアプロに関する記事を見て回ったんですが、大体どこも「6時間が限界」とか「終わる頃にはヘトヘト」などと書かれています。実際にメンバーのからもそんな感じのことを聞きます。
ヘトヘトになるのは、当たり前だろうし悪いことではないと思います。しかし、実際に起きていた(又は、現在進行形で起きている)ことは、「長時間役割の交代をしないまま続けていることによる疲労」のようでした。
具体的にどういうことかというと、一般的には役割と定期的にスイッチしましょう(所によっては10分とか短いスパンでの交代)と言われているところを、NO交代で2-3時間以上進んでいることがたまにある。そして、集中しての疲労を超えた先の何か別の疲労が生まれている。
定期的なスイッチで何を期待しているのかというと、視点をかえるだとか、気分転換とか、リズムを作るとか色々ありますよね。どうしても役割によって思考やできることが固定されちゃうっていうのがあるので、それをリフレッシュするためにやるのかなと思います。それが抜けることで、結構つらい状態になっていました。
視点の切り替えができないので、ハマっても抜け出せない。
そもそも、ハマっていることに気づけない。
集中が途切れて、お互いに役割を果たせない。
なんだか、ただただ長時間監視されながらの作業になりプレッシャーが残るだけ。
原因としては、リモートでの作業のために、頻繁にスイッチすることへのハードルがあるとか、集中していたら交代することを忘れていたとか、もう少しで終わりそうなので継続をしていたら、結局1-2時間そのままとか…やばいなんだか色々ありそうですね。
なんにせよ、定期的にスイッチできていないこと自体に別の問題がありそうなのと、スイッチできていないことによりまた問題が生まれているっていうのはあるみたいです。
ペア同士のスキル差、知識差が大きすぎる
最初に断ると、この要素だけでは特に問題ではなかったかもしれないです。
「ペア同士のスキル差、知識差が大きすぎるけど、ペア内に差があることをちゃんと認めれきれてなくて、ペアの動きに反映できてなかった」がここで言いたい苦しみかもしれないです。
最近、チームにメンバーが新しく入ってくる機会が何度かあったので特にチームからでていた問題です。
ペアプロする際に、同じぐらいのレベル感の人同士でやっていく分には今までそれほど問題はありませんでした。しかし、ギャップがあるペアを組んだ際に初心者の方がプレッシャーやできないことをとても感じてつらいと感じたり、熟練者側も教育・指導的な負担が大きくてつらいみたいなことがあっていました。
もう少し具体的にしてみます。ギャップが少なく同じくらいの場合は、漫才の掛け合いをするごとくお互いに発言しあって、作業を進めていき結果として学び合う高め合うような状態になることが多いです。逆にギャップが開いていると、初心者の方がなかなか意見が言えない、聞くばっかりになってしまう。また、熟練者から意見を求められても瞬時には出せないのでプレッシャーになってしまう。こんなふうに初心者すぐに答えを出すことが難しい話題に対して、息をつく間も無く「これはどう思う?」「これは?」「これは?」と出題が続き、つらい…ってなっちゃう。
実はこれ、今熟練者としてペアに入っている人も自身が入りたてのときに感じてたことだったらしい。さらにつらいことが、チームとして解決につなげることができずに、毎回気合いで乗り越えてしまったので、またこうして課題が出てきてしまっていることですね。
もしかすると、ギャップがあっても、なるべく速度を落とさず、熟練ペアのように進まなければいけないみたいな意識があったのかもしれないです。
あと、初心者が何もできないうちに熟練者が進めていって自信が持てないとか、個人としての達成感が持てないみたいな話もありました
同じようなことを(モブプロの話ですが、)抱えているチームも他にもいるみたいですね。ここら辺はチームとして共通認識を作っていって「チームとしての成果」と感じれるようになっていけるといいなあ。
ペアの方針の合意がないままになんとなく進んでいる
前の二つにつも通じることかもしれないんですが、割とペアでの作業をはじめるときに何となく初めていることが多いです。
そのため、作業のゴールに向かうまでの方針がないままの二人で手探りをずっと続けていたりだとか、一方はどうすればいいか知っているけど一方は目隠しの状態みたいなつらい状態が起きることもありました。
ペアとしての振る舞いに関しても合意が取れてないので、スキル差、知識差のある状態の際に、初心者側がペアプロにどう参加したらいいのかわからず進むみたいなこともあったみたいです。
苦しみ考察
苦しみを並べてみて思ったのは、これって結構3つ全て紐付いて起きているのかもしれない?
ペアの中で失敗しても良い雰囲気作りができてなかったため、苦しみが生まれていたのかもしれない。スキルや知識の差があるけれど、お互い合意を取れてないので、自分が変なことやっちゃったらどうしよう。ペアの進捗を遅めちゃうなぁ、プレッシャーだ…。しかも(交代がないので)このまま失敗し続けたらどうしよう…しんどい…。タスケテ…
ああ、助かりたい!
苦しみから解放されたい
こうすればいいのかな?こんなこと試してみてるよ?を書いていきます。
ドライバー・ナビゲーターは交代しよう
「でも…」も「だって…」も許さず、一定時間経ったら絶対交代する!っていうのを徹底するしかなさそう!そのためにもペアを作ったときに、「じゃあ〇〇分経ったら交代しようぜ」みたいな合意をするとか、そもそもチームとして30とか15分経ったらスイッチしなければならないみたいなのを定めるとかやってもいいのかもしれない。
他社でアジャイルをやってる方にこの悩みを相談した時に、お聞きした実際にやってるプラクティスは、モブでやっている時の交代は銅鑼を鳴らして強制的に交代させるっていうものだった。徹底ですね。
有無を言わせず交代。無理矢理交代していくうちにありがたみが分かってくるぞ?ってことかな。
ちなみに、短い交代がうまくいってないことばっかりではなく、これまでも何だかペアうまく進めてるな!みたいな時は、自発的にそろそろ交代しようかとか交代させて!とかやり取りしつつ、時間や作業の区切りで数十分単位で交代を繰り返していました。今だってできてる時はできてる。ついつい忘れちゃって〜ってときがたまにあって、それがあると苦しみが生まれがちなのです。
スキル差があっても「あと数分経ったら交代するんだし思い切りやるぞ!」ってなると良いなあ。(ナビゲーターも、ドライバーもどちらもね)
あ、あと休憩もちゃんと取る。
ペアで進め方の方針を決めて進める
ペアプロではちょうど、役割の名前をナビゲーターとドライバーという運転に例えた表現をしているので、運転を始める前にペアの中で地図の共通認識を持ってどのゴールに向かうので、この道筋が良さそうだねみたいな会話ができるといいんでしょうね。(前任のスクラムマスターの受け売り)
また、役割ごとにどう振る舞うとか、初心者、熟練者としてどうペアプロに参加するみたいな認識も合わせると、より発言しやすくなるかもしれない。チームとしてペアプロのルール・約束的なものの認識がぼやけているような気もするので、ちょっと整理したい気持ちが出てきた….やりたい。
ペアでの決め事決めて進めるみたいなのでいうと、ふりかえりとかで定期的に上がってくるのが、実装開始前にmiro(オンラインホワイトボードツール)で、ざっくりの実装方針や、設計的なものを整理した上で始めると、めっちゃよかったみたいな事がある。これが習慣化してきたりすると最高だ。
(書いてみたら「ペアとしてどう振る舞う?」と「ペアがこのタスクをどう進んでいく?」の認識合わせるの2軸の話が混じってるような気もするけど、まあよし)
ソロを増やしてみる
とりあえずペアで進めるのを、一回やめてみるですね。
「大事なことは無くなってから初めて気づく」とか言ったりするし、うまくできてなくてつらい、糸口がわからないであれば、一旦全体としてペアプロ廃止にしてみるトライをやってみてもいいのかもしれない。(極端にやるとしたらね)
本当に必要ならまた再開しようぜ!という声が上がるだろうし、出てこないのならチームがそういう状態じゃないのかもしれない。(とはいえ、ペアプロはやってほしいので、うまく機能するようにサポートしたい)
極端に全部やめてみるっていうのはまだ試してみてはいないんですが、チームのアクションとして、ペアじゃなくても良さそうと判断できるものは、ソロでも進めても良いっていうのをやっています。実際にやるべきことがシンプルでかっちり固まっている系のタスクだったり、ちょっと時間をとって探索する系の調査タスクだったりソロで進める方が結果的にもよかったという声が出ています。あと印象的だったのが、「ちょっとこれはペアじゃないと不安」みたいな感じで、ペアの効果の再認識みたいなことも起きるようになっています。
他には、今はペアプロの選択肢の他にバディプログラミング的なものも実施してみている。レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス に載っているらしい。それを少しカスタマイズしたやり方で、バディ(二人組)でタスクの初めにお互いのやることを確認→分散してそれぞれ並行作業→一定時間(1hくらい)経ったら合流して報告し合うみたいな進め方を初めてみた。ギャップがある状態での、プレッシャーからは解放され、初心者は限られたタイムボックスの中で自分のペースで集中して探索を行うことができる。
(実際にやってどうだったかはもう少し試してみて記事に書けると良いなあ…)
最後に
今回書いた以外にもまだ認識していなかったり、書き漏れている苦しみもあるかもしれません。そこについても、日々の活動や定期的なふりかえりでチームとして認識して、良くしていけるといいなとおもいます。トライについても多分もっとやれること、やった方がいいことがあるでしょう!
取り組む話題や、人によって複数人でやる方が良いとか、一人で進める方が良いとか色々あるかとは思います。
ただ個人的には、チームで進めることによって一人ではできないこと達成できるみたいなことにとても喜びを感じるし、実際にそんな体験をしてきていると思うので、これからもチームがチームとして成果を出せるように精一杯働いていきたいなと思った。
あとは個人的にチームでモブプロやりたい欲が芽生えてきているのでここにもトライしたい。
おまけ
いいペアプロってなんだ?どうしたらいいんや?と思って読んでた記事などです。(一部モブプロも入っているけど.…)