はじめに
こんにちは。Product Teamの中嶋です。
今回は、日々のペアプロでProduct Teamの皆さんが、普段どういったことを気をつけてペアプロをしているのかをご紹介したいと思います。
慣れてない側としてのコツ
わからない時は、「わからない」を口に出す
実況中継をするように、自分の頭の中を言葉にするように心がけます。
難しくても、頑張って声に出してみます。逆に話せないと「あ、自分これ分かってないな」って気付けます。
入社当初はそもそも「"一人実況"をしていない。しなければいけない」という認識がありませんでした。 しかし「(ペアプロ中に) 何を考えているのかわからない時がある」というFBを受け、それ以来「これをやりたいので、まずここから書きます」と宣言するようにしています。
難しいと感じる場合は、ペアじゃなくて、モブで慣れていくといった方法もあります。
チームメンバーは入ったばかりの方2人(NJ*1)とベテランの計3人といった、2人ともペアプロ初心者といった場合に有効です。
モブプロの中でペアプロに慣れていない方のどちらかが第三者の視点に立ち、2人がペアプロしている様子を見るようにし、思ったことはすぐ言うようにすることでよりよいペアプロができるようになりました。
ペアにスピード調整してもらう
IDEでメソッドの実装や定義にポンポン飛んでしまうパートナーに追いつけない場合は、「ちょっと早いので、戻って貰っていいですか」といった声かけをするようにします。または、自分がドライバーを奪って、やり直して説明をしてもらう場合もあります。 こうすることで、相手に「このくらいのペースが必要なんだな」と伝えることができます。
また、一通り調査や実装が終わってから、結論を聞くこともあります。 過程全ての詳細を追おうとせずに、重要なポイントに絞って理解するようにします。
慣れている側としてのコツ
ペアプロ慣れてない人とのペアプロの心得を読む
私たちはよくペアプロの心得を参照しています。
こちらには、ペアプロで基本的に大事にしていることが書かれています。
特に、慣れていない方が入られた際には、定期的に読み合わせることでチームとして「良いペアプロ」に対する共通認識を持つようにしています。
また、慣れていないメンバーの比率が高い場合は、全員でペアプロの心得を読みながら「今週はうまくペアプロが出来ていたかな?」というのを、毎週欠かさずふりかえりをしていました。
特に以下の項目はペアプロをする上で良い指針となっています。
4.自分がすごいと思ってる人は、思っているほど何でも知っているわけではないことを認識していますか? 自分のプログラミングスキルに自信が無い、不安に思う場合も気に病む必要はありません。
これは熟練者は何でも知っているわけでは無いので、この指針があることで、ペアプロが教師と生徒の関係性にならないように意識ができるようになりました。
6.ドライバーをしているときに進行中の作業についてこれから何をするのか、いま何をしているのかについて話してますか? ペアプログラミングでは、15秒の沈黙ですら長すぎます。
これは前述の「わからない時は、「わからない」を口に出す」にも通ずるのですが、相手が何を考えているか分からないとペアプロはスムーズに進みません。そのためとにかく自分の考えを口に出すことが重要です。私たち Product Team では、「15 秒でも長いよね」という話もしています。
いま、どこを見てますよとちゃんと伝える
リモートペアプロならではの難しさなのですが、いまパートナーがどの画面を見て操作をしているのかがわからない時があります。
その時はどこを見ていますよ、と範囲選択して示してあげたり、「いまCode With Me(あるいはVSCode)のここを見ていますよ」と言葉にして、相手にどこを見ているのかを明示するのは地味に大事です。
視覚的補助を入れる
入り組んだ仕様などについて議論する際、口頭だけでは伝わりにくいことがあります。そんなときは積極的に視覚的補助を入れるようにしています。
例えばホワイトボードを使って図解したり、コメント内で疑似コードを書くなどして「考えていること・やりたいこと」の意思疎通がスムーズにいくよう工夫しています。
質問のハードルを下げるためには
チームに入ったばかりだと、他のメンバーの会話がハイコンテクストなため中々すぐに理解できないことがあります。
自分にコンテキストが無い状態でペアプロをして疑問が起きた場合など、「何で今更そんな話してるの?」って思われたらどうしよう…と質問できない時があります。
そういった心理的ハードルを下げるため、チーム歴の長い状態である人ほど率先して「些細なことでも質問する」ように心がけています。 「コンテクストがあるはずのメンバーすら気軽に質問をし、他のメンバーもそれが当然であるように答える」という場面が多くなることで、チーム全体の質問ハードルを下げる効果があると思っています。
ピンポンペアリングを試す
特にペアプロを始めたばかりの方と一緒にペアプロするときですが、 先に慣れている側の人達がテストを書いておくことで、実装のゴールが見えているので、比較的入りやすいと思います。
その他
ペアプロって Apex と同じ?
以前ペアプロをしていたメンバーで、ペアプロに対してこんな感想を仰っていました。
「相手がいってることをちゃんと聞きつつも、自分がやりたいことを相手にちゃんと伝える。それの繰り返し」
相手の意見を尊重しつつ、自分の考えを伝えることはペアプロとして良いコミュニケーションだと思います。
おわりに
以上、ペアプロについて気をつけているコツをあげてみました。
実は、今回の記事はProduct Teamの有志8人によるモブブロギング(モブブロ)で書きました!
以下にモブブロをやってみたふりかえりを記載します。
モブブロで書いたふりかえり
- 楽しかった
- またやりたい
- 自分には無い知見がモブブロ中に聞けたので、試してみたいと思った
- 一人で書くより早かった(1時間半で書けた)
- そもそも一人だと記事を書こうってならなかったけど、今回モブブロやることで参加が出来た
- モブブロでやること自体に違和感がなかった。(元々モブやペアで仕事をすることがあったので、そこらへん違和感がなかったのかも?)*2