1
/
5

苦しいペアプロに苦しむ話

こんにちは、株式会社ROXXの agent bankでスクラムマスターをやっている坂本です。
うちのチームはペアで作業をするというのを頻繁に行っています。
その中で、メンバーの様子を見ていたり話を聞いている中で感じた(または直接聞いていたかもしれない)ので、ペアプロ(もしくはペア作業)の苦しみを書いてみます。

その前に注意事項


まずはペアプロの良いところから

まずメリット書かないと暗い悲しい記事になっちゃいますね。

ペアプロのメリットはあります!
うちのチームで自覚できていることとしては以下があるのかなと思います。

  • 早い段階での検査を行えること
  • 知識を集合させて困難に立ち向かえる
  • 知見を共有しあえる
  • 楽しい

軽く補足していきます

早い段階での検査を行えること

特に、難しい課題やタスクや考える要素が多い時に、完了したと思って成果物を共有したりしてレビューをもらったら「あれ?全然見当違いのことやってない?」みたいなことが発生することありますよね。あれを複数人で対応することで、より早くに検知して軌道修正できています。

または、ハマってしまった際にペア内で助け合って解決したり、限界に早めに気づいてペアの外に助けを求めよう!という会話を生むみたいなこともおきています。

知識を集合させて困難に立ち向かっている

人によって知識の差があることは当たり前だと思います。業務知識であったり、技術的な知識だったり、他にもいろいろあるかと思うんですが、得意不得意、知ってる知らないをお互いに補うことで、一人では解決できないことを解決していくよ!みたいな感じですね。

知見を共有しあえる

若干ひとつ前のものと被ってるとこあるかもですが、人によって詳しい部分得意な部分を補ったり、複数の視点から見ることでわかる気づきをお互いに共有しあって、チーム内の知見の偏りを減らしていきます。
これにより、過度な属人化が減りチームとしてできることも増えていきますね。

楽しい

うまくいっている時はこれを感じます。やり取りの中で生まれる新しいアイデアや気づきが生まれるなどして、一人では体験できないような、動きができてい時に感じるんでしょうね。コラボレーション!!
毎回これを感じれるようになりたい。

こんな風にペアプロを苦しんでた

では逆に、苦しんでいる時って何が起きてるんでしょう?

様子を見ていたり、話を聞いた感じでは、一般的にペアプロと呼ばれるものとは違う何かをやっていたり、ペアプロのアンチパターンと呼ばれるものを踏んでいたってことなのかなと思います。

  • ドライバー、ナビゲーターの交代がない
  • ペア同士のスキル差、知識差が大きすぎる
  • ペアの方針の合意がないままになんとなく進んでいる

ひとつづつ簡単に補足していきます。

ドライバー、ナビゲーターの交代がない

ペアプロってめっちゃ集中します。ペアプロに関する記事を見て回ったんですが、大体どこも「6時間が限界」とか「終わる頃にはヘトヘト」などと書かれています。実際にメンバーのからもそんな感じのことを聞きます。

ヘトヘトになるのは、当たり前だろうし悪いことではないと思います。しかし、実際に起きていた(又は、現在進行形で起きている)ことは、「長時間役割の交代をしないまま続けていることによる疲労」のようでした。

具体的にどういうことかというと、一般的には役割と定期的にスイッチしましょう(所によっては10分とか短いスパンでの交代)と言われているところを、NO交代で2-3時間以上進んでいることがたまにある。そして、集中しての疲労を超えた先の何か別の疲労が生まれている。

定期的なスイッチで何を期待しているのかというと、視点をかえるだとか、気分転換とか、リズムを作るとか色々ありますよね。どうしても役割によって思考やできることが固定されちゃうっていうのがあるので、それをリフレッシュするためにやるのかなと思います。それが抜けることで、結構つらい状態になっていました。

  • 視点の切り替えができないので、ハマっても抜け出せない。
  • そもそも、ハマっていることに気づけない。
  • 集中が途切れて、お互いに役割を果たせない。
  • なんだか、ただただ長時間監視されながらの作業になりプレッシャーが残るだけ。

原因としては、リモートでの作業のために、頻繁にスイッチすることへのハードルがあるとか、集中していたら交代することを忘れていたとか、もう少しで終わりそうなので継続をしていたら、結局1-2時間そのままとか…やばいなんだか色々ありそうですね。

なんにせよ、定期的にスイッチできていないこと自体に別の問題がありそうなのと、スイッチできていないことによりまた問題が生まれているっていうのはあるみたいです。

ペア同士のスキル差、知識差が大きすぎる

最初に断ると、この要素だけでは特に問題ではなかったかもしれないです。
「ペア同士のスキル差、知識差が大きすぎるけど、ペア内に差があることをちゃんと認めれきれてなくて、ペアの動きに反映できてなかった」がここで言いたい苦しみかもしれないです。

最近、チームにメンバーが新しく入ってくる機会が何度かあったので特にチームからでていた問題です。
ペアプロする際に、同じぐらいのレベル感の人同士でやっていく分には今までそれほど問題はありませんでした。しかし、ギャップがあるペアを組んだ際に初心者の方がプレッシャーやできないことをとても感じてつらいと感じたり、熟練者側も教育・指導的な負担が大きくてつらいみたいなことがあっていました。

もう少し具体的にしてみます。ギャップが少なく同じくらいの場合は、漫才の掛け合いをするごとくお互いに発言しあって、作業を進めていき結果として学び合う高め合うような状態になることが多いです。逆にギャップが開いていると、初心者の方がなかなか意見が言えない、聞くばっかりになってしまう。また、熟練者から意見を求められても瞬時には出せないのでプレッシャーになってしまう。こんなふうに初心者すぐに答えを出すことが難しい話題に対して、息をつく間も無く「これはどう思う?」「これは?」「これは?」と出題が続き、つらい…ってなっちゃう。

実はこれ、今熟練者としてペアに入っている人も自身が入りたてのときに感じてたことだったらしい。さらにつらいことが、チームとして解決につなげることができずに、毎回気合いで乗り越えてしまったので、またこうして課題が出てきてしまっていることですね。

もしかすると、ギャップがあっても、なるべく速度を落とさず、熟練ペアのように進まなければいけないみたいな意識があったのかもしれないです。

あと、初心者が何もできないうちに熟練者が進めていって自信が持てないとか、個人としての達成感が持てないみたいな話もありました


同じようなことを(モブプロの話ですが、)抱えているチームも他にもいるみたいですね。ここら辺はチームとして共通認識を作っていって「チームとしての成果」と感じれるようになっていけるといいなあ。

ペアの方針の合意がないままになんとなく進んでいる

前の二つにつも通じることかもしれないんですが、割とペアでの作業をはじめるときに何となく初めていることが多いです。

そのため、作業のゴールに向かうまでの方針がないままの二人で手探りをずっと続けていたりだとか、一方はどうすればいいか知っているけど一方は目隠しの状態みたいなつらい状態が起きることもありました。

ペアとしての振る舞いに関しても合意が取れてないので、スキル差、知識差のある状態の際に、初心者側がペアプロにどう参加したらいいのかわからず進むみたいなこともあったみたいです。

苦しみ考察

苦しみを並べてみて思ったのは、これって結構3つ全て紐付いて起きているのかもしれない?
ペアの中で失敗しても良い雰囲気作りができてなかったため、苦しみが生まれていたのかもしれない。スキルや知識の差があるけれど、お互い合意を取れてないので、自分が変なことやっちゃったらどうしよう。ペアの進捗を遅めちゃうなぁ、プレッシャーだ…。しかも(交代がないので)このまま失敗し続けたらどうしよう…しんどい…。タスケテ…

ああ、助かりたい!

苦しみから解放されたい

こうすればいいのかな?こんなこと試してみてるよ?を書いていきます。

ドライバー・ナビゲーターは交代しよう

「でも…」も「だって…」も許さず、一定時間経ったら絶対交代する!っていうのを徹底するしかなさそう!そのためにもペアを作ったときに、「じゃあ〇〇分経ったら交代しようぜ」みたいな合意をするとか、そもそもチームとして30とか15分経ったらスイッチしなければならないみたいなのを定めるとかやってもいいのかもしれない。

他社でアジャイルをやってる方にこの悩みを相談した時に、お聞きした実際にやってるプラクティスは、モブでやっている時の交代は銅鑼を鳴らして強制的に交代させるっていうものだった。徹底ですね。
有無を言わせず交代。無理矢理交代していくうちにありがたみが分かってくるぞ?ってことかな。

ちなみに、短い交代がうまくいってないことばっかりではなく、これまでも何だかペアうまく進めてるな!みたいな時は、自発的にそろそろ交代しようかとか交代させて!とかやり取りしつつ、時間や作業の区切りで数十分単位で交代を繰り返していました。今だってできてる時はできてる。ついつい忘れちゃって〜ってときがたまにあって、それがあると苦しみが生まれがちなのです。

スキル差があっても「あと数分経ったら交代するんだし思い切りやるぞ!」ってなると良いなあ。(ナビゲーターも、ドライバーもどちらもね)

あ、あと休憩もちゃんと取る

ペアで進め方の方針を決めて進める

ペアプロではちょうど、役割の名前をナビゲーターとドライバーという運転に例えた表現をしているので、運転を始める前にペアの中で地図の共通認識を持ってどのゴールに向かうので、この道筋が良さそうだねみたいな会話ができるといいんでしょうね。(前任のスクラムマスターの受け売り)

また、役割ごとにどう振る舞うとか、初心者、熟練者としてどうペアプロに参加するみたいな認識も合わせると、より発言しやすくなるかもしれない。チームとしてペアプロのルール・約束的なものの認識がぼやけているような気もするので、ちょっと整理したい気持ちが出てきた….やりたい。

ペアでの決め事決めて進めるみたいなのでいうと、ふりかえりとかで定期的に上がってくるのが、実装開始前にmiro(オンラインホワイトボードツール)で、ざっくりの実装方針や、設計的なものを整理した上で始めると、めっちゃよかったみたいな事がある。これが習慣化してきたりすると最高だ。

(書いてみたら「ペアとしてどう振る舞う?」と「ペアがこのタスクをどう進んでいく?」の認識合わせるの2軸の話が混じってるような気もするけど、まあよし)

ソロを増やしてみる

とりあえずペアで進めるのを、一回やめてみるですね。

「大事なことは無くなってから初めて気づく」とか言ったりするし、うまくできてなくてつらい、糸口がわからないであれば、一旦全体としてペアプロ廃止にしてみるトライをやってみてもいいのかもしれない。(極端にやるとしたらね)

本当に必要ならまた再開しようぜ!という声が上がるだろうし、出てこないのならチームがそういう状態じゃないのかもしれない。(とはいえ、ペアプロはやってほしいので、うまく機能するようにサポートしたい)

極端に全部やめてみるっていうのはまだ試してみてはいないんですが、チームのアクションとして、ペアじゃなくても良さそうと判断できるものは、ソロでも進めても良いっていうのをやっています。実際にやるべきことがシンプルでかっちり固まっている系のタスクだったり、ちょっと時間をとって探索する系の調査タスクだったりソロで進める方が結果的にもよかったという声が出ています。あと印象的だったのが、「ちょっとこれはペアじゃないと不安」みたいな感じで、ペアの効果の再認識みたいなことも起きるようになっています。

他には、今はペアプロの選択肢の他にバディプログラミング的なものも実施してみている。レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス に載っているらしい。それを少しカスタマイズしたやり方で、バディ(二人組)でタスクの初めにお互いのやることを確認→分散してそれぞれ並行作業→一定時間(1hくらい)経ったら合流して報告し合うみたいな進め方を初めてみた。ギャップがある状態での、プレッシャーからは解放され、初心者は限られたタイムボックスの中で自分のペースで集中して探索を行うことができる。
(実際にやってどうだったかはもう少し試してみて記事に書けると良いなあ…)

最後に

今回書いた以外にもまだ認識していなかったり、書き漏れている苦しみもあるかもしれません。そこについても、日々の活動や定期的なふりかえりでチームとして認識して、良くしていけるといいなとおもいます。トライについても多分もっとやれること、やった方がいいことがあるでしょう!

取り組む話題や、人によって複数人でやる方が良いとか、一人で進める方が良いとか色々あるかとは思います。
ただ個人的には、チームで進めることによって一人ではできないこと達成できるみたいなことにとても喜びを感じるし、実際にそんな体験をしてきていると思うので、これからもチームがチームとして成果を出せるように精一杯働いていきたいなと思った。

あとは個人的にチームでモブプロやりたい欲が芽生えてきているのでここにもトライしたい。


おまけ

いいペアプロってなんだ?どうしたらいいんや?と思って読んでた記事などです。(一部モブプロも入っているけど.…)

ペアプロがうまくいっている状態とは何なのか考えてみる
本記事は、 Uzabase Advent Calendar 2021 2日目の記事です。 弊社のB2B向けSaaS事業のチーム(以下、Product Team)では、フルタイムでのTDD×ペアプロを採用しています。 そのチームの中で9ヶ月ほどペアプロを実践していき、感じたことを記事にしようと思います。 ※そもそもペアプロというのは何か? という説明は割愛させて頂きます ...
https://zenn.dev/jnuank/articles/cd330badf8339a
ペアプロ懐疑派だった僕が、実務でペアプロ導入して180度考えが変わった話 - Qiita
※ 本記事は自分が運営しているブログに転載しています。株式会社LITALICOでWebエンジニア(Rails)を担当しています、@YudaiTsukamotoです。この記事は『LITALICO ...
https://qiita.com/YudaiTsukamoto/items/06b426f4dbee268d5035
ペアプロと共話とPing-Pongとフロー状態
フラットな関係でのペアプロの会話のヒントに
https://twop.agile.esm.co.jp/pair-ping-pong-kyowa-cb5369ed3b72
Product Teamのみんながペアプロで気をつけているN個のこと - Uzabase for Engineers
はじめに こんにちは。Product Teamの中嶋です。 今回は、日々のペアプロでProduct Teamの皆さんが、普段どういったことを気をつけてペアプロをしているのかをご紹介したいと思います。 はじめに 慣れてない側としてのコツ わからない時は、「わからない」を口に出す ペアにスピード調整してもらう 慣れている側としてのコツ ペアプロ慣れてない人とのペアプロの心得を読む いま、どこを見てますよとちゃんと伝える 視覚的補助を入れる 質問のハードルを下げるためには ピンポンペアリングを試す その他 ペア
https://tech.uzabase.com/entry/2022/03/07/183254
ペアプログラミングをうまくやるためのチェックリスト
こんにちは。高橋(kappa)です。最近僕たちのチームでは、本格的にペアプログラミングに取り組んでいます。 ペアプログラミングでは、二人一組で作業を行う特性上、効果的に作業を進めるためには、一人でコーディングする時とは違う考え方や習慣が必要です。 ...
http://web.archive.org/web/20110613064530/http://lab.cirius.co.jp/blog/2008/09/post-8.php
知識差−スキル差を埋めるためのペアプロ+αのコツ(1)
ペアプロを始めてみたものの、熟練者と初心者の間で知識差−スキル差が大きくうまくいかない時のコツ
https://twop.agile.esm.co.jp/bridge-gap-of-pairprogramming-part1-b1e97f452e4a
リモート・モブプログラミングという働き方 - Cybozu Inside Out | サイボウズエンジニアのブログ
こんにちは!kintone開発チームの太田 (@kigh) です。 この記事では、自分のチームで2年以上続けているリモート・モブプログラミング(以下「リモート・モブ」)について、 進め方の具体例や所感、実際にやる上でのTipsを紹介したいと思います。 リモートワークが急速に普及する中、リモート・モブは働き方の選択肢の一つとして存在感を増してきていると思います。 ...
https://blog.cybozu.io/entry/2020/02/28/080000



私がモブプログラミングに安心して加わるために意識したこと - Cybozu Inside Out | サイボウズエンジニアのブログ
1. はじめに こんにちは!kintone 開発チーム所属モバイルソフトウェアエンジニアのトニオ(@tonionagauzzi)です。 Cybozu Advent Calendar 2022 の24日目の記事です。 私が所属しているkintoneモバイルチームではモブプログラミングが浸透しており、開発作業の7割以上をオンラインで画面共有するやり方でモブプロしています。 ...
https://blog.cybozu.io/entry/2022/12/24/080000



成功する実践的モブプログラミング
※Qiitaで書いた記事を移動したものです。なお JTF2020 で発表したときのスライドは https://speakerdeck.com/erukiti/mob-programming-practice です。 モブプログラミング(以下モブプロ)とは、複数人で一つの成果物(プログラムコード)を生み出すという、チーム作業のテクニックです。似たテクニックに ペアプログラミング ...
https://zenn.dev/erukiti/articles/mob-programming
モブプロにやりづらさを感じて改善した話 - Sansan Tech Blog
Sansan 事業部プロダクト開発部の光川です。 私が所属している関西支店のチーム(MAIDO)では、よくモブプログラミング(以下、モブプロと記載)による開発を行っています。 この記事では、私が新入社員としてモブプロによる受け入れを体験した中で 初めてのモブプロに感じた悩み チームがモブプロの課題をどう改善したのか 新入社員目線で感じたモブプロの効果 をご紹介します。 ...
https://buildersbox.corp-sansan.com/entry/2019/06/12/112227
モバイルチームのモブプログラミング解剖 - Cybozu Inside Out | サイボウズエンジニアのブログ
こんにちは、モバイルチームの向井田 (@mr_mkeeda) です。 サイボウズではあらゆる業務でモブプログラミング(通称モブプロ)が実施されていて、モバイルチームでも同様に毎日モブプロしています。 この記事では、入社してから4年間、私が毎日やっているモブプロを紹介します。 この記事で知れることざっくりまとめ👇 モブプロ環境 モブプロ参加者の役割 モブプロの長所と短所 私のモブプロに対する感想
https://blog.cybozu.io/entry/2022/04/14/170000


株式会社ROXXでは一緒に働く仲間を募集しています
同じタグの記事
今週のランキング
株式会社ROXXからお誘い
この話題に共感したら、メンバーと話してみませんか?