こちらの講演時にいただいた質問への回答です。

「テスト自動化とテスト駆動開発」講演資料 - やっとむでぽん

質問8. リモートでペアプロするときのメリット、デメリットはありますか?

リモートペアプロは、ツールやデバイスを上手く使えば十分に有効です。現在多くのチームがリモートペアプロ(リモートモブプロも)を実践しています。

f:id:yach:20210409135636p:plain

オンサイトのペアプログラミングは、人間がもっとも得意な、全チャンネルを用いたコミュニケーションを活用するものです。目の動き、ちょっとした表情、呼吸の変化、指先や姿勢の動き、仕草、声色、そうした表現をフルに双方向でやり取りすることで、お互いの様子もつかめるし問題もあぶり出せるし、共同で意気込む空気も生まれます。ドライバーがふと眉をひそめたのを見て、ナビゲータが「何か気になる?」と聞いたのをきっかけにして、隠れたバグが見つかったりします。リモートではチャンネルの内ごく一部しか使えず、自然に伝わる力に頼れなくなります。

そのためリモートペアプロでは意識的に、使えるチャンネルを最大限に使います。

  • カメラは常時ONで顔出し
  • マイクも常時ONで、つぶやきや息づかいも聞こえるよう高級なマイクを使う
  • ドライバーが自分の画面を共有する
  • 両者が大きなモニタを使用した上で画面全体を共有する(ウインドウだけではなくて)
  • 常時声を出すよう意識する

などです。頭の中を声に出したり、大げさに表情を作ったり、感情も含めて音声で表現したりしていくと効果が高まります。仕事の話だけだと感情が乗らないので、わざと雑談や無駄話を入れたりもします。

リモートでも身体性を生かせるよう「やったー!」と言おう

うまくいったらすぐ、2人一緒に「やったー!」と声に出して、両腕を上げてバンザイもする(身体も使って表現すると、人間の身体内部は驚くほど反応するので、ぜひやってみてください)。オンサイトだと拍手することも多いのですが、ZoomやTeamsなどのノイズキャンセリング機能で拍手の音が消えてしまいがちなので、声を出してやってください。

問題に関するコミュニケーション(仕事の話)もリモートでは不利になります。オンサイトでは画面を指さしながら「そこ間違い」「これをこっちにして」「それが先、次がそれ」など指示語を使いながら、同じものを見て、同じところに視線を当てて、認識を合わせていきます。リモートではこういう指さしが弱まります。ツールによっては人の画面共有に介入する機能もあり、擬似的な指さしができます(Zoom)。機能がない場合は、行番号を言ったり、テキストを読み上げるなどして伝えなければならなくなります。これも意識的にやらないといけないので、リモートペアプロのほうが疲れやすい感じが、個人的にはしています。

リモート特有のメリットもあります。スペースの問題がなく、手元のPC・環境のまま参加でき、キーボードやエディタの違いが問題なることもないので、オンサイトのときより気軽にペアプログラミングのセッションを開始できます。「ちょっといいですか」くらいの声かけでペアプロに入れるし、普段なら距離が遠くてペアが組みづらい人でもハードルがありません。パッと始めてさっと終われるので、短時間のスポットセッションもやりやすいです。ソースコードの共有だけは問題になりますが、gitなどリポジトリを経由する、クラウド上に共有の開発環境を準備する、などで対応できます。

リモートで今のところ代替できていないのが、ホワイトボードや大学ノートや裏紙のような、一緒に書き込みながら議論する媒体です。オンラインのホワイトボードは色々ありますが(Google Drive、JamBoard、Miro、MURAL)、雑にハコや丸を2人で描き込みながら設計やUIの議論検討をするようなツールは、まだないようです。(個人的には、ペンタブレットを使って、同時に描画できるようなツールが有用ではないかなと考えています。Windows であればMicrosoft Whiteboardはいいかもしれません)

リモートペアプロに限らず、リモートワークの懸念点ですが、ツール、デバイス、環境が些細な点も含め影響してきます。ネットがたまに不安定になる、声が聞こえづらい、背景ノイズがある、画面が小さい・狭い、ツールに制限がある、VPNが遅い、シンクライアント、PC内蔵マイク、カメラがない、などすべて、パフォーマンスに直結します。

ちょっと不便、ちょっと遅い、ちょっと聞こえにくいくらいだと、ついついそのままにしてしまいがちですが、それを1日中、何ヶ月も続けていると、フラストレーションも溜まるし、コミュニケーションそのものを減らす・避ける方向に働くおそれもあります。目にした範囲でも、以下のような例があります。

  • ネットが細いのでカメラOFFで(表情も大事なのに)
  • セキュリティ制限で使えない機能がある(該当機能だけでなく、いろいろ工夫するモチベーションを阻害する)
  • 外で工事してるので、話すときだけマイクONにします(発話する量が絶対に減る。ノイキャンマイク付ヘッドセットを支給すべき)
  • PCのスペックが低く、開発環境とコミュニケーションツールを同時に使うと仕事にならない(社内ルールで事務用PCとごっちゃにしている。自家用車と工事用特殊車両を同じルールで購買するような、現場を見ていない感)
  • セキュリティルールで、オンラインのサービスを制限・禁止する(ホワイトボードが使えなかったり、環境の共有ができなかったり、技術調査ができなかったりと、致命的)