Joy, Inc. を読んだ

"Joy, Inc." というタイトルだけど、最も印象に残っているのはペアプログラミングの話。今までに読んだり聞いたりしたどの話よりも、具体的で参考になった。

著者の会社では、1週間単位でペアを組んで仕事に取り組むのだけど、ペアプログラミングの効用は、

- プロダクト品質の向上
- メンバーのスキル向上
- チームのスケーラビリティ
- メンバーのサステナビリティ

にあるらしい。初めの2つはよく言われることだけれども、スケーラビリティとサステナビリティの話は新鮮だった。

「遅れているソフトウェアプロジェクトへの要員追加は、プロジェクトをさらに遅らせるだけだ」というブルックスの法則があるが、ペアプログラミングに慣れたチームにこの法則は当てはまらない。ペアとの仕事が当たり前になっているので、新規メンバーでもエンジニアとしての最低限のスキルさえあれば、チームへの参加初日から開発に貢献できるからだ。チームメンバーを増やせるということは、チームのスケーラビリティが向上するということ。そして、メンバー間で知識が共有されていると、チームの単一障害点がなくなるので、スケールアップだけでなくスケールダウンにも対応できるようになる。チームにスケーラビリティがあると、仕事の分担ができるようになるので、社員の生活品質も向上する。

この本を読んで、チームに新しく入ってきたメンバーに対して、ペアプログラミングを実践してみたが、とても効果的だった。これまでは、プロジェクトの説明をした後に、比較的取り組みやすいタスクを選んで新規メンバーに実装してもらい、それをレビューするというフローをとっていたのだけど、どうしてもレビューフローでの指摘事項が膨大になってしまい、「実装 → レビュー」の間の数往復が非効率的だった。しかし、実装予定の機能を資料にまとめて、実装手順を確認し、新規メンバーに横についてもらって実装しながら説明し、その次のサブタスクで実装を交代して横からアドバイスする、という手順をとったら、かなり多くのことを伝達できた。些細なミスはすぐに指摘してもらえたし、新メンバーに疑問をぶつけてもらってそれを説明することで、曖昧な仕様が明確になることもあった。コーディング上のチームの慣習なども、無駄なく伝えることができた。

というわけで、ペアプロに興味のある方には "Joy, Inc." がおすすめです。

この記事が気に入ったらサポートをしてみませんか?