この記事は2022Insurtechラボアドベントカレンダー13日目の投稿です。
私はアジャイル&ローコード開発のチームに所属しています。
このチームに参加して、アジャイル開発でよく採用されているペアプログラミング(以降「ペアプロ」と表記)を実施したのでこの体験からわかったことを記載していこうと思います。
そもそもペアプロとは
ソフトウェア開発の手法の一つでナビゲータとドライバーに別れて二人で一つのプログラムを作成する手法。ナビゲータはドライバーが書いているコードが適切か評価し、指示を出す。また発生した問題の解消を提案する役割。ドライバーは実際に操作してコードを書く役割。
どんなことをしたのか
私は同じくらいの技術力の人、技術力の高い人の二人とペアプロを実施しました。
Gatherというバーチャルオフィスツールを利用して、基本的にドライバーが画面を共有しながら作業を進めました。
作業のやりとり(同じくらいの技術力の人とペアプロ)

ここからでいいんじゃないか?
〜ドライバーが作業を実施〜

こういうことしたいけどどうすればいいかわからない・・・

調べてみる!

こういうのがあったからこれで実現できそう

やってみる!

こんなパターンも考えられるから、ここはもっと可用性の高い構成にしておいた方がいいんじゃない?

なるほど!どうすれば可用性が高くなるかな?

こんな構成にした方がいいかも
同じくらいの技術力の人とペアプロした感想
- ドライバーが基本的に作業を実施し、ナビゲーターはドライバーの作業を見て気づいた点や変更した方が良いところを指摘するというような形で作業を進めた。
- 技術力が同じくらいなので疲れても作業を交代しながら進めることができた。
- なんとなく作業していていることが二人でやることでなんでこれが必要なのかというところを掘り下げ、理解が深まった。
- 少しでも困ったことや悩んだことがあるとすぐに相談できることと課題が発生した時点で二人の課題になるため、一人で抱え込むことがなかった。
- 同じ技術力のある人とペアプロをするのは本来のペアプロとは少し異なるため正しいものが出来たというより、一つ一つ意味を考えて作業を実施できた。
作業のやりとり(技術力の高い人とペアプロ)

ここから作っていこう!

はい!
〜ドライバーが作業を実施〜

こういうことしたいけどどうすればいいかわからない・・・

こういうものを使って考えていこう!
こんなことができる!

やりたいことができた!

ここ間違えている!
こういう構成にした方が良い!

何がダメなのかわからない
現状のものとなにが違う?

ダメなところやこうした方が良い利点を説明・・・
作業のやりとり(技術力の高い人とペアプロ)感想
- 正しいものを作れたと実感できた。
- 課題の解き方を誘導してもらえるため、調べ方やデバックの方法を知ることができた。
- ドライバーを技術力の高い人にやってもらうことで効率的な作業方法を知ることができた。
- 資料になっていない部分の知識を共有してもらえた。
ペアプロをしてよかったこと
- 止まっている時間がほとんどない
- 成果物の安心感
- 雑談ができる
- フィードバックが早い
- レビューがいらない
ペアプロをして気がついたこと
- ナビゲーターは割と暇
- 一人で作業するのが不安になる
- 黙々と作業したい人には向いてないかも・・・
- ペアプロはレビューも含まれているがそれを踏まえても作業効率はどうなの?
どこから作成していこう?