おいしい健康 開発者ブログ

株式会社おいしい健康で働くエンジニア・デザイナーが社内の様子をお伝えします。

ペアプログラミングを導入して分かったこと

こんにちは。おいしい健康エンジニアの近藤です。

WWDC2018で他のエンジニアと情報交換させていただいた中で、他社ではペアプログラミングを導入して開発速度が2倍に上がったというお話を聞き、おいしい健康でも少しずつペアプログラミングを導入しています。今回はペアプログラミングを導入してみて分かったペアプログラミングのメリット、デメリットを紹介いたします。

f:id:oishi-kenko:20180817173215j:plain ※画像はペアプロの相方が出社するまでの間の場所取りとして活躍している人形です。

おいしい健康でのペアプログラミングのやり方

おいしい健康では、複雑なモデル周りの設計をするときや、比較的難易度の高いアプリの画面を実装するときに、ペアプログラミングをしながら最初に実装方針を決めています。
また、最近では、毎日エンジニア同士でランダムにペアを決めて、ペア同士は必ず隣に座るという運用も始めました。これによってフリーアドレスでもエンジニア同士で気軽に相談できるようにしました。こちらはペアプログラミングに限らず、テディベア効果も狙ったものになります。

ペアプログラミングのメリット

設計や実装のスピードが格段に上がる

ペアプログラミング中は途中で集中力が途切れたり、Slackを見たりする暇がなく、強制的にプログラミングが進むため、格段にスピードが上がります。

レビューによる手戻りが少ない

最初にペアプログラミングで実装方針を決めているため、大きな手戻りが発生することがありません。レビューでは細かい修正点だけを見ていけばよく、レビュー時間の短縮にも繋がります。

知識の底上げ、新メンバーのフォローアップ

新メンバーが新しく開発に入るタイミングでペアプログラミングをすることで、最初に詰まりやすいポイントに対してすぐにフォローすることができ、エンジニア全体の知識の底上げにも繋がります。

ペアプログラミングのデメリット

ナビゲータ役のエンジニアへの負担

弊社のペアプログラミングでは主にベテランエンジニアがナビゲータ、新メンバーがドライバーとして行っていることが多いため、ベテランエンジニアに負担が行ってしまうことがあります。こちらはペアプログラミングを続けていくことによって、エンジニア全体の知識が平準化されることで徐々にナビゲータ役のエンジニアが増えていけば解決されるかも知れません。

ペア席が取りづらい

おいしい健康ではフリーアドレスを導入しているため、外部ディスプレイ席を隣同士で2台確保しづらい場合があります。またフリーアドレスのメリットも少し薄れてしまいます。

単純作業の場合には向かない

比較的難易度の高い設計や実装の場合はペアプログラミングが効果を発揮しますが、ただ手を動かすだけの単純作業の場合は、一人で作業をした方が効率が良い場合があります。

さいごに

いくつかデメリットもありましたが、全体的にはペアプログラミングを導入したあとの方が実装スピードも上がり、エンジニア全体の知識の底上げにも繋がり良かったと思います。 開発速度が2倍とまでは行きませんでしたが、開発効率や品質向上の施策の一つとしてはオススメです。