ペアでやろうよー!
チーム内で知識を共有できるように、フルリモートでも一緒に仕事できるように、チームとしてプロジェクトに取り組めるように、「ペアでやろうよー!」ってなって「それいいねー」って思って、最近はペアで仕事をしてる
そして、何年も前からうすうす感じてはいたんだけど、やっぱり、僕はペアプロが苦手だった!ので、ペアプロじゃなくてペアワークしてる
ペアプロ?ペアワーク?
「ペアプロ」は「ペアプログラミング」のこと。一緒にコードを書く。リモートワークなのでペアプロするときは、Zoom とかで画面をシェアしながらコーディングしてる
一方「ペアワーク」って言葉は、正式な定義があるわけじゃなくて、自分がそう呼んでいるだけなんだけど「ひとつのタスクを二人で担当する」こと
なんで苦手なん?
パターンを考えてみると、自分と相手が対象のタスクに関して「詳しい」場合と「詳しくない」場合があるとして、こんな感じになってしまう
自分も相手も詳しい場合
お互いに詳しいので、最初に画面を共有して、ラフなコードを書いていって「ここ、こういう感じ?」「あぁいいね」「ここはどうする?」「こういう方針がよくない?」「プロダクトオーナーに聞いてみようか」「そうね」みたいな話をして、方針を揃える
その次に、タスクを小さな単位に分解して「この辺は僕がやるわー」「じゃ、これやるね。終わったときに次どうするか決めようかー」「OK」みたいな話をして、Zoom を終了して、別々に作業を始める
最初に WIP (Work In Progress) のプルリクエストを作って、そこにお互いにコードをプッシュし合う感じ。状況を Slack で随時共有しながら。先月は、僕がユニットテストを書いて、相手がコードを書いた。で、お互いのコードを見ながら Slack 上で「こうした方が良くない?」「あぁ、そうしようか」とかやったかな
自分が詳しくなくて相手が詳しい場合
この場合は、教えてもらいながらやるんだけど、知らないことは調べて身につけたいのだった。ペアプロして、言われた通りに書いたら実装はできるんだけど、色々気になってしまう性格なので。それと、すごく基本的なことを調べてるの見られるの恥ずかしい (´,,•ω•,,`)
最初に「どうやったらいいか知りたいー」って画面共有しながら聞いて「だいたいこんな感じになるよ」って教えてもらって「え、ここどういうこと?」「そこはね・・・」って、開発進められる情報を教えてもらったら「ありがとー!じゃ async ペアでお願いー」って言って「いいよー」って言ってもらって、相手は別の作業をしてたりする
僕は、ドキュメントを読んだり、「こうやったらどうなるんだろう?」っていじってみたり、ライブラリのソースコードを読みにいったりして、「ははーん!」ってなったら、ちょろっとコードを書いて、相手に「sync しよー」って言って画面を見ながら「この辺はこう考えて実装してみたんだけど、どう思う?」「あぁ、そこはこんな風に書いたらいいよ?」「なるほど!ありがとー」みたいにして、プルリクエストを出すときにはだいたい認識が揃ってる感じになってる
一日に一回は sync してるかなぁ
自分が詳しくて相手が詳しくない場合
だいたいみんな知らない部分は色々調べたいみたいで、↑の逆バージョンになってるかな。概要を説明して、この辺のドキュメント読んだら良いよ、って言っといて、随時 sync して認識を揃えながらやってる
どっちも詳しくない場合
これは、つなぎっぱなしでその技術のことを調べたりもするし、30分後に!って別々に調べて、あとで調べたことを共有したりする
という感じ
なので、ペアでコードを書くというより、ペアでタスクを担当してる感じで仕事をしてる。僕らは async ペアリングとか 🏓 ピンポンペアリングって呼んでたりする
おしまい!今日は、刺し身を食べようと思ってる!