意外と多い!ペアワークのメリット
ペアワークを導入するときに知っておいてほしいこと、パート1
こんにちは!Tanzu LabsでデザイナーをしているErikaです。私たちは、ペアプログラミング、ペアデザインなど、すべての役割をペアワークで進めています。私の周囲では、ペアワークを導入してみたけど、うまく続けられなかった、、という話を耳にすることがあります。話を聞いてみると、継続が難しい理由の一つには「ペアワーク=OJTの延長」という誤認識があるように思います。
経験の浅いメンバーのスキルアップだけを目的にペアワークを取り入れると、経験豊富なメンバーが楽しめなくなってしまったり、新人側が疲れてしまったりと、なんだかしんどくなってしまうようです。「ペアワークには、もっと様々なメリットがあるのにもったい無い・・・!」と思います。そこで、
- ペアワークのメリット(この記事)
- 組み合わせ別、ペアワークに必要なマインドセット
という2つの角度で考えをまとめてみました!
長くなってしまったので、記事も2つに分けて公開します。本記事は1つ目の、ペアワークによって得られるメリットについてです。
ペアワークのメリット&価値
冒頭でも触れたように、Tanzu Labsではエンジニア、デザイナー、プロダクトマネジャーの全ての役割でペアワークをしています。では、「2人1組で作業する」という思想はどこから生まれたのでしょうか?まずは背景をご紹介します。
元々ペアワークという働き方は、テスト駆動型開発やペアプログラミングで有名なエクストリーム・プログラミング(XP)という開発手法から派生した考え方です。XPは「プログラミングをする上で”やると良い”とされていることをエクストリームにしたら、どんな働き方になるだろうか?」と発想され生まれた手法です。そのような経緯が、エクストリーム・プログラミングという名前の元にもなっているんですね。
ではペアワークの元となった「やると良いこと」は何かというと「コードレビュー」です。これだけだと???となっている方もいると思うのですが、、
コードレビューはやった方が良いこと。
ではそれを極端(エクストリーム)にしたらどうなる、、?
リアルタイムコードレビューだ!
コードを書くところから2人で作業するようにしよう!
「ペアプログラミングだ!」
という発想の流れだそうです。
補足ですが、XPのもう一つの代表的なプラクティスであるテスト駆動型開発は「プログラムをテストするのは良いこと→ならばコードを書く前にテストを書けばいい!」という発想だそうです。興味のある方は、英語ですが下記ポッドキャストもおすすめです。
、、、と前置きが長くなってしまいましたが、具体的なペアワークのメリットは下記5つがあると思います。
- 抜け漏れやミス、いいアイディアの早期発見
- 常時壁打ち
- コンテキストの共有
- スキル、知識の共有
- サステナビリティの向上
では一つずつ説明します!
1. 抜け漏れやミス、いいアイディアの早期発見
これは、コードレビューから派生してペアプログラミングが生まれていることを知ると、自然なメリットのうちの一つですね。プログラミングだけではなく、デザインやプロダクトマネジメントをする際にも、常時2人で作業をすることで、タイポや計算ミスなどを早い段階で見つけることができます。また、2人集まれば思いつくアイディアの数も増えるので、いいアイディアに出会うタイミングも早くなります。ペアワークをしていると「全然考えていなかったけど、その見方/アイディアもありますね!!」と言うタイミングが本当に多いです😀
2. 常時壁打ち
仕事を進めていくと、必ず行き詰まることがありますよね。1人で作業をしていて行き詰まったら、誰かにレビューをお願いしたり、相談したりすると思います。そうすると必ず相手からの反応や返答を待つ時間が発生しますが、ペアワークは常に考えの壁打ちをしながら前に進めていくので、1人で作業をしているときと比べて立ち止まっている時間が短くなります。
3. コンテキストの共有
常に2人で前に進めていくので、作業内容や意思決定の経緯などのコンテキストを持っている人もチームの中に2人存在することになります。メンバーの誰かが急な不在となっても「その人が帰ってくるまで何も分からない」という状態を避けることができます。また、時間が経てば経つほど記憶は曖昧になるものですが、ペアがいればお互いの記憶を補完することもできます。
4. スキル、知識の共有
ペアワークは基本的に、考えていることを発話しながら進めて行きます。そうすると特別に「教えよう/教えてもらおう」という意識を持たなくても、自分には無かった視点を得たり、知らなかった知識を学ぶ機会がたくさんあります。ショートカットや設定などツールの使い方といった具体的なテクニックはもちろん、「どういった順序で考えて、どんな根拠を持って判断をするのか?」といった抽象的なスキルもペア間で共有され、広まっていきます。このようにスキルや知識が共有されるので、メンバーの成長スピードも相対的に速まるかなと思います。
5. サステナビリティの向上
ペアで作業をすると、メンバーの誰かにプレッシャーや負荷が集中する状態を避けることができます。また、ペア間で刺激を与え合い、学び合う関係を作ることで、継続的に成長することができます。さらに、プロダクトのコンテキストが個々人に依存しないことで、メンバーの休暇・急病・離職等によってチームが行き詰まるリスクを下げることもできます。
このようにうまくペアワークを浸透させることができると、個人、チーム、プロダクト、各視点で無理なく継続的に開発が続けられる、サステナビリティが高く保たれている状態につなげることができます。
ということで、ペアワークのメリットを5つご紹介しました!
新人研修やスキルシェアのためだけではなく「強いチームを作る」という視点でもペアワークを検討&取り入れていってもらえたら嬉しいです😊