その先へ

setohの色々殴り書き

週5でペアプロ生活

ハロー、@seto_hi です。

 

弊チームではペアプロ・モブプロを積極的に行っており、特にAndroidチームではここ2ヶ月はほぼ毎日1時間半くらいペアプロをしています。
目的達成のためにやや独特なやり方をしているので、意図や手法を書きたいと思います。

なぜペアプロを始めたか

何回か書いていますが自分は事業支援チームに所属しており、現在支援している電子書籍チームでは開発レベルの底上げを期待されています。
チーム勉強会を開催していましたが実践レベルまで教えることは難しく、それを解決するためにペアプロをやり始めました。

目的

ペアプロのやり方や取り上げる内容は目的によって異なってくると思っています。 

弊チームのペアプロの目的は知見・経験の効率的な伝授と実践です。

弊チームは現在、アプリ全般のリファクタリングを行っています。
誰が実装しても同じようなリファクタリングができる状態の実現、チームの全員が交換可能な人材になるためにペアプロを使っています。

ペアプロで何をやるか

自分がペアプロについて考えているのは、知見の伝授と実践という目的においては全てをペアプロで行う必要はないということです。

ペアプロでやることは目的の達成のために必要なことだけ絞っています。
また、ペアプロをすると2人分の工数を消費してしまうので、1人でやった方が効率が良いことは1人でやります。

ペアプロ・モブプロは複数人で仕事をしたり、説明しながらコードを書くなど普段と違う環境のため疲れますし、結果にかかわらず「仕事した感」が出やすいと感じています。
この感覚にとらわれず、本来の目的が達成できているかという点に集中することが非常に大事です。

ペアプロでやらないこと

以下はあくまで弊チームの例です。

・不具合調査 (普通の問題ならば個人で対応した方が早い、現状は単純なバグが多くチーム全員が詳細な内容を知る必要がない)
・新しい技術の勉強 (個々が勉強して他のメンバーに教える方が効率がいい)
・雑多な修正 (個人で実装した方が効率が良い、ペアプロでやるほど共有したい内容がない)

ペアプロのやり方

前準備

ペアプロの題材選びには時間をかけています。
弊チームでは自分がリファクタリングの手順をドキュメント化しているので、その手順が適用しやすい画面をペアプロで取り上げます。

また、ペアプロの本質に関係のない修正などは先に修正を済ませてしまうこともあります。

ペアプロ本番

だいたいの場合、1つの手順書について2回ペアプロを行います。

1回目は瀬戸が手順書の説明をしつつ、実装も中心的に行います。
イメージ的には3分クッキングみたいなもので、おおまかな手順を掴んで貰うためのペアプロです。「実装しておいたものがこちらです」みたいなこともやります。

2回目は同僚に手順書通りに実装をしてもらいます。
ここで同僚が一切の迷いなくスラスラできるということは(主に瀬戸の説明不足によって)あまりないので、手順書を修正したり3回目のペアプロを行ったりします。

ペアプロ中の意識

コーディング担当のときは、とにかく喋ることを意識しています。
他人が無言でコードを書いているのを見るのは(オンラインだと特に)つらいので、無駄なことでも喋ります。
・何をしているか
・どういう意図か
・関係するコンポーネントの雑学
などをよく喋ります。

あとはAndroidStudioの機能を使うことも意識しています。
特に「refactor」メニューには色んな機能があるので、試してうまくいったりうまくいかなかったりしています。

同僚がコードを書いているときは質問をしまくります。
「○○ってどういう動作するんでしたっけ」という質問をよくしています。
間違えたときだけ質問をすると質問をした際に身構えられてしまうので、正しい実装でも質問をしています。
正直質問される側は大変だと思うので、心理的負荷を下げつつ質問できるような手法があったら知りたいです。

 

こんな感じで毎日ペアプロしています。

以上!