入社してからずっとリモートでペアプロしているのだが、思ったことを書いてみる。
書こう書こうとタイミングを逃していた。
こういうの書くことによって、ペアプロ詳しい人とか、ペアプロをやってる人からアンサーがもらえたりすると嬉しいなとか思ったりする。
(優しいアンサーで)
おことわり
こちらは個人の感想です。
自分が常に出来ている、ということではないし、こうありたいなという自戒も入っているし、個人的意見も多分に含まれています。
ピアソンのペアプロ本を読めば良い気がする
前提として、ペアプロの教訓の本で大体のノウハウに答えは出ていて、実際にやってみたところ実感として納得出来たというところ。
色々本を漁ったりして、メモっていたものは以下。
https://scrapbox.io/yyyank-shaving/ペアプロめも
今回まっさらな頭で書いてるつもりだけど、メモと内容がかぶってるところも結構あると思う。
ペアプロは休憩が一番大事
ペアプロは集中力が必要。
未だに毎回疲れるので、いつまで経っても疲労する作業であるのは間違いない。
つまり、休憩が大事。
ソロプラグミングにしてもそうだけど、タイムマネジメントがなんだかんだいちばん大事なのではないかと思っている。
休憩が上手くできれば、ペアプロができると言っても過言ではない(過言)
リモート特有のペアプロのやりにくさ
リモート特有で言えば。
- こそあど言葉
こそあど言葉を避け、固有名詞をあえて明確に言うとかは大事かもしれない。
複数人の場だと、WHOも大事になったりする。
「XXさんはどう思いますか?」って話振らないとackをとるのがむずかしい。
以下のトーキングスティックの話がイメージ近い。
https://blog.google/inside-google/life-at-google/science-why-remote-meetings-dont-feel-same/amp/
- マウスカーソル
あと、マウスカーソルが意外と大事。
画面共有ツールによってはマウスカーソルが見えなかったりするが、見えてないとどこを操作しているかわからない場合が多い。
- ドライバーの画面共有は案外ナビゲーターに見えていない
そして、画面共有はナビゲーターに見えているようであっても、字がボヤケたりする。
alt + tabとかの画面の切り替えが速いと描画ラグがあったりして追えなかったりする。
ナビゲーターとしては、よほど酷ければストップをかけたりするが、流してしまうこともあるだろうし、ドライバー側が毎回画面ちゃんと見えるように工夫するしかないような気がする。
そういった意味でcode with meとかvscodeのlive shareはコードの共有においてZoom、Discord、Hangoutなどに比べて手元のエディタやIDEで開いて見れるという点で明らかに優れる(ただし不完全ではある)。
- 沈黙を避け、内省的発声をする
内省的発声とは、行おうとしてること、思考などを内省的な部分を声に出して言語化すること。
あーやって、こうやって、という思考を声に出すことで思考にナビゲーターが介入しやすいし不明確な部分が明確になるので良いと思います。あと、沈黙の気まずさもないかな。
内発的発声が良いからと言って、ネガティブなワードを連発しないように注意は必要だったりする。
「めんどい」とか「つらい」とか。多分ほどほどだったら相手によっては許してくれるw
- ナビゲーターがサボっていたら案外気づく
あと、思うのだが、ナビゲーターが集中していないときはリモートであっても案外バレている。
雑務が入ったりして対応をしたい場合は内職するのではなくて、ナビゲーターを離脱したほうが懸命なんだろうなと最近は思う。
ペアプロに向かない作業もある
これまた個人的な感覚だが、ペアプロには不向きな作業もある。
たとえばテストデータを作るなど、とても単調な作業。
slackの返信を眺める作業など。
全く無意味とまでは言わないが、ペアでやる意味ってあるのか?となるタイミングも合間にどうしても発生する。
つまり、ドライブとナビゲートが発生しないような作業はペアプロという作業状態を一旦解除した方が良いように思う。
ペア作業とソロ作業を明確に分割したほうが幸せそう
感覚としては、ペアプロすべき作業、すべきでない作業を明確に分けてソロ作業も確保した方が良いのではないかと思ったりする。
ペアプロの作業が減ってしまって良くなさそうにも一見思えるが、逆にペアプロの意義を明確にして時間あたりの集中やメリハリが増すのではないかと思っている。
比率としては、ペアプロ:ソロ = 9:1 もしくは ペアプロ:ソロ = 8:2 ぐらい。
雑務をタイムボックスで区切る
また、日頃のslackやメールのチェック、個人的に業務コードを眺めたいなど一人の時間だからこそ集中出来る & 業務時間内でやるべき作業の時間は一定量タイムボックスで確保したほうが良いとも思う。
思考の整理の時間がないとペアプロにもうまく望めないときもある(整理しなくともペアプロ出来るときもある)
ペア間の勇気とソロの勇気
ペア間の勇気という言葉もあるが、思い切ってソロにするというのも悪くない提案な場合もある。
そういう勇気もないと、ペアプロを盲信しちゃわないかな、って自分自身不安になるというか。
ペアプロに限らずなんですが、ルーティン化して当たり前になっていることに疑問を持っておきたいという気持ちがある。
コードベースはペアで作っていく、チームで知識を交換するという大前提がありさえすればソロ作業時代はあって良いと思うのだけど、バランスが難しい。
また、細切れのソロ作業はペア作業効率を悪くする。これは、ペアプロにとって差し込みでしかないので、連続的に集中出来る時間が欲しいとこである。
という感じで書いていたのだけど、マーティン・ファウラー先生のサイトに似たような話が書いてあった ( To pair or not to pair の部分)
https://martinfowler.com/articles/on-pair-programming.html
まとめ
自分の中で思っていることとかを整理したいなと思って書いてみました。
特に新規性はないと思いますが、
冒頭にも書いたとおり、ペアプロ詳しい人とか、ペアプロをやってる人からアンサーがもらえたりすると嬉しいなとか
淡い期待も抱きつつ書きました。
本とかかなり参考にしてたり実業務でなんとなく感じたこととか混ざってますが
何かの参考になったりすれば幸いです。
また半年か1年ぐらいに経ったら自分の考え方も全然違うものになってるかもしれないけど
今の所多分こんな感じの思考でやっております。
0 件のコメント:
コメントを投稿