見出し画像

【勉強会レポート】ペアプロt_wadaさん

社内勉強会で、t_wadaさんからペアプロについての講演があったのでnoteに書きます。

t_wadaさん

ペアプロとは

ペアプログラミングの略でペアプロ。言葉通り、1つの画面を2人で見ながら、1人がドライバーとしてコードを書き、もう1人がナビゲーターとして見守りながらアドバイスをするという形式です。

気になっていたこと

ペアプロ実際どう進めていけばいいのか
業務でペアプロをしたことがないので、アウトプットを出すためのペアプロをどう進めていくのかが分かっていません。

新人からどうアプローチしていこう、ベテランに何をgiveするか
開発経験の浅いビギナーからペアプロを頼むのは「いつまで"教えて貰う"姿勢なのか」という印象を持たれかねないと危惧します。

開発スピードの低下をどう説明するか
特にこれはPM向けに対して、アウトプットが少ない事についてどう説明するかが気になっています。

リモートペアプロについて
対面でのペアプロは経験がありますが、リモートはしたことがありません。ですが今後間違いなく必要になっていくことだと考えているため、リモートペアプロを進めていく知見が欲しいです。

疑問点への答え

実際の進め方
ペアプロの大きな効果の1つに、声を出す事により思考が整理される点がある。Thinking out loud.声を出せる環境を整える。
また、大きなモニタを用意することで無理な姿勢を取らずに続けられるようにすること、最長1日3時間程度に抑えながら進めることが必要。
ドライバーの交代タイミングは理想は「キーボードの奪い合い、押し付け合い」だが、TDDの1サイクルが回ったら(タスク単位)、8分経ったら(時間単位)などとチームに合わせたサイクルを作っていければ良い。

ベテランにgiveできるもの
新人への教育効果だけでなく、ベテランも人に教える事によって理解が深まる。それだけでなく、アンラーンの機会になる。
アンラーンとは、それまで積み上げていた経験を一度捨てて積み上げ直す経験のこと。例えばEmacs使いがVSCode使いとペアプロして、最新のIDEを使った場合の書き方を学習するような行い。

開発スピードの低下
後述。

リモートペアプロ
テキストチャットでは無理があったが、ここ数年で音声通話の環境が整っており随分楽になった。またVSCodeのLive Shareが登場したことで、リモートの人間にコードのどの場所を指しているのか、すぐに示せるようになったのも大きな変化。
VSCode Live Shareは対面のペアプロでも威力を発揮するツールなので積極的に利用するべき。

学び:開発スピードは低下しない

Gitの登場により複数の機能を並行で開発することが容易になり、1プログラマー1機能で実装を進める方が一見効率良く見えるようになった。しかし並行開発が進んだ結果、レビューできる人間が少数で、しかも大量の機能をレビューしなければいけない状況に陥っている。レビュー待ちのコードが増える。

レビューが済んでいないコードはリリースできないので、そういったコードは「在庫」になる。「在庫」のコードを増やすくらいなら、少ないコードでも早くリリースして、素早く仮説検証を行うのが現代のあるべき開発。

ペアプロではレビューしながらコードが書かれるので、素早くリリースまで行き着くことができる。結果的にコードが顧客に届くまでのリードタイムは短くなる。

学び:ペアプロが合わない人もいる

書いている途中のコードを見られたくないというような人はいるので、そういった人にペアプロを押し付けてはいけない。それは能力の問題ではなく個性なので。

とはいえチームがペアプロを進めていくのならペアプロをしない人にはソロプロでやる仕事をしてもらうか、我慢して貰うか、チームから離れて貰うしか無い。

ペアプロできないわけではないがソロプロもやりたい、という人はOSS活動などで発散してほしい。



まとめ

・並行稼動して生まれる在庫より、リリース速度を優先すべき

・リモートでもモブプロはできるようになっているが、声を出すことが前提

・ペアプロの押しつけはよくないが、食わず嫌いもいけない。ソロプロの欲求はOSSに向けると良い

なお今回の話について更に深堀りするなら、これがよくまとまっているとのこと。


この記事が気に入ったらサポートをしてみませんか?