4人以上の同時開発で並行的に実装している際に全員同じスキルレベルで価値観が同じなら 各開発 → PR → マージ
という流れで問題ないと思うのですが、コードレビュー待ち、コードレビュー時間が長い場合は Lean Xpなどのペアプロで開発の方が結果的に開発工数が減るはず。
ちなみにアプリ開発の話です。
例えばまだスキルレベルが低い人(ここではAさん)がBさんのコードレビューをするとどうなるか
Aさん「コード読んでも分からないことが多い・・」
Aさん「Bさんの方が正しいんだろうなぁ」
Aさん「自分で調べてからコメントしよう」
とまぁ当たり前の状態になる。
ここでAさんが調べて勉強にはなるが、逆にデメリットとして
Aさんの実装時間が減る
Bさんがこれに続くコミットをしづらい(コンフリクトするので)
Bさんが別の実装をする → またPRがたまる
また、CさんやDさんがいる場合このデメリットが増幅するのでさらに悪循環になる。
それなら、AさんとBさんが一緒にペアプロで実装をし片方がテストかいて片方が実装のようにすればAさんもBさん同様実装に関して理解度が高くなるはずである。
また、Aさんにとっては自分で調べるよりもスキルアップが望める。
すでに理解度が高い状態なのでコードレビューもすぐに終わるはずである。
これらのことは他の修正が入った時にもメリットとして働く。
つまり、
全員のコードレビュー待ち+コードレビュー時間 が実装時間以上
スキルセットがバラバラ
であれば手戻りリスク、次の修正を考えてペアプロで開発するべき。
逆にどの場合は個別で実装するべきか
とにかく出すのを早く。コードの質はある程度妥協する。テストはブラックボックステストで手分けしてカバー
オフショアや外部開発の場合で短期の場合はペアでやるメリットはあまりないかと。 ただ、この外部で開発・委託して開発する場合は内部の人間のコードレビュー時間が増えるとまじで病むので注意。
ペアでやるのが嫌
以下、以前デブサミ で話したやつです。
50を超えるヤフーのスマホアプリ、チームを越えて課題解決やノウハウの共有を実現【デブサミ2019夏】 (1/2):CodeZine(コードジン)