初心者と PullRequest 駆動開発

Web界隈からすると今さらに見えるかもしれない。
職場で PullRequest 駆動開発に近い状況を作れないだろうか、と一部のプロジェクトで検証したり、広めたりしている。


まず言えるのはこれで効率が何倍にも高まるわけではないということ。
細切れの時間でもパフォーマンスが下がりづらくなるというのが効果だと思う。
いくつかのシステムを横断的に見る役割を担っているが、1日の中でシステムを行ったり来たりするとしんどい。
この、いわゆるコンテキストスイッチが緩和される。
リモートワークでもこれは顕著。たまの出張でもあまり差が出ない。


ここに挙げたメリットは、今の自分ならそれなりに感じられる。
しかし初心者にとっては正直効率がよくない。


それは PullRequest を送るまでの流れにある。
おおまかに分解すると以下のとおり。

  1. 期待結果を検討する
  2. テストを書く
  3. 実装する


そこそこの開発者であれば、これらの作業中に誰かに相談することは1回くらいで済むだろう。(もちろん規模にもよる)
これが初心者の場合は5, 6回と何度も手戻ることがありえる。
PullRequest を上げるころには、周囲の開発者がレビューを見なくとも内容をすべて理解しているということもざらだ。
初心者が多いチームでは手間を増やしてしまうだけに過ぎない。
ペアプロなどもっと密に作業して、早く「そこそこの開発者」になってもらうことを目指したほうがお互いのためだ。


まとめよう。
どのような状況であれば PullRequest 駆動開発が効果を発揮するか。
チーム内にそこそこの開発者が揃っていること。
細切れの時間が発生しやすい開発者が多いこと。


もちろん作業がワークフロー化されて理解しやすい、CI との相性がいい、といった効果もある。
しかし技術面に注目しすぎで、上にあげたような人の側面を忘れてはならないと思った。


GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

ピープルウエア 第3版

ピープルウエア 第3版