はじめに
先日、こちらのイベントに参加しました。
ペアプロ・モブプロってその良さ・メリットはいろんな場で語られているけど、実際他の人たちがペアプロしているのをみたことってないよなあと思い、せっかくなので現地参加させていただきました。
最初の1時間程度はリファクタリングをテーマにしたペアプロのライブコーディングを観戦?し、そのあとは感想戦といった感じだったのですが、その中で様々な学びや気づきがあり、このままアウトプットしないのは勿体なさすぎたので半分冬眠しかけてたこのブログを引っ張り出してきました。
自分用メモといった体裁になってしまいますが、当日感じたことを書き出してみようと思います。
ペアプロ観戦の中で感じたこと
ペアプロ視点
- IDEのショートカットだったりコードの書き進め方だったり、より優れた人のコーディング方法を学べるのが良い
- ペアプロの冒頭で活動のゴールを明確にするのがめっちゃいいと思った
- 冒頭で二人で話し合いながら、受け入れ条件的な感じのチェックリストを作成していました
- ゴールが不明瞭だとお互い考える方向性がずれてしまいがちなので、これは取り入れたいと思いました
- 特にリファクタだと新たな課題が芋づる式に出てくるので、当初ペアプロをやろうとした目的からどんどん横道にそれて行きがち
- アイデアを持っている人が手を動かすのではなく、持っていない方がドライバーになっていたのがすごく良い
リファクタ視点
- テストは一回修正を加えるたびに実行する
- コミットの粒度はなるべく小さい方が良い
- テストと同じ理屈で、作業を進めたけどうまくいかなかったときにすぐ戻れるようにできるというメリットがあるとのこと
その他
- 何かを作るためではなくコードを理解することを目的に行うペアプロもあり
- コードを理解するためにリファクタしてみる。理解できた段階でそのコミットは捨てることも(そういう意味でコミットの粒度は小さい方が良い)
- ロジックを学ぶためにテストを動かす、という活動もある
→ 新しいシステムのキャッチアップするときにちょっと手元でコード書き換えてみて〜みたいなことはやってたけど、それをペアプロでやろうという発想はなかったなという気づき...
現地感想戦で印象的だった話
レベル差がある時のペアプロについて
[悩みポイント]
- 双方のレベルに差がある場合は、一般的にスキルがある方がかなり気を遣っていないとペアプロの効果を発揮できないことが多い
- 経験が浅い側は「何がわからないのかわからない」という状況に陥りやすい(すごい共感)
[出てきた案]
- ペアプロの目的(「何がわからないのか」「何を解決したいのか」)を最初に確認しあうことで、その時のペアプロの対象とする範囲(30分くらいの狭いスコープだと尚良い)について双方で合意すると良い
- 「何がわからないのかわからない」状態、ものすごく覚えがあって一人で共感しまくってました。
- こういうルールを設定できれば、経験が浅い側は広い樹海で彷徨うことを避けられるし、スキルがある側もどこからどこまで説明すればいいか迷わずに済みそう