ペアプロのすゝめ

みなさんこんにちは。 本日はタイトルの通り、ペアプロについてお話をしようと思います。

ペアプロとは?

ペアプロとはその名の通り、プログラミングを2人1組のペアで行うことです。 ここ数年でペアプロに対する誤解や偏見が少なくなったとは言え まだ導入されていない現場で始めようとすると、周囲への説明に苦労するかと思います。

# 1人分の作業を2人でやるとか無駄だろう etc...

ペアプロに関するエントリはネット上にも山ほどありますが 敢えて今回はそれをテーマにしてみて、まだ一度もペアプロをした事が無い方に 実践していただくキッカケになればと思います。

ペアプロで生産性は向上する?

まず最初に誰もが疑問に思うこと、2人で1つの作業を行うとが なぜ生産性の向上に繋がるのでしょうか?

簡単に説明すると、常にコードレビューしながらの状態なので品質の良いコードが書けます。 それによりバグの発生率が大幅に低下し、バグ発生時の対応工数が削減出来ます。 これがイコール生産性の向上だと考えています、コスト削減とも言えますね。

なんだ、それぐらいかと思ったそこのアナタ。 開発中にバグを検出して修正及びリファクタリングするのと、 リリース後にバグ対応するのとでは必要な工数が全然違うのです。 前者の方が数倍?数十倍は少ない時間で対応出来ます。

ペアは適当に組んでいいの?

ただし、ペアとなる人間同士が素人同然では当然ですがコードの品質なんて上がりません。 必ずペアの片方はそれなりに練度の高いプログラマーである必要があります。

素人が1人で書くよりは素人2人で書くほうが良い物が出来る事は出来ますが お客様のシステムをそのレベルで作るわけにはいきませんので ペアはちゃんと考えて組みましょう。練度の高い人間は数少ないのでプロジェクトの規模や期間、 メンバー数によって臨機応変にペアを変えて行くのも有効です。

練度の高い人は同程度のレベル同士で組むとお互いの存在が 刺激となってモチベーションが上がりますし、 素人同然?中堅ぐらいの人は練度の高い人と組むと色々な発見や気付きがあります。 コードの書き方や設計の考え方は当然のこと、ツールの使い方や細々した部分で学ぶことが出来ます。

後は単純に、2人で作業していると1人でやってる時に比べて、ぼーっとする時間が短くなります。 ふと意識がぼーっとしたり、何となくインターネットをしていたり...などです。

ペアプロで品質を向上させよう

ソフトウェアの品質は言うまでもなく非常に重要です。

# ここでの品質はあくまでもバグが少ない...の意味合いであり

# 顧客が求める価値とはまた別の話です、そこはペアプロ云々の話ではないので 不具合が少なくメンテナンスもしやすいシステムを作る事は システム開発に関わるプロフェッショナルな人間なら誰でも目指していると思います。

前述した通り、ペアプロはシステムの品質を上げる事が可能で プログラマーを教育すると言う側面もあります。 プログラマーが成長すればシステムの品質向上にも繋がります。 万人に合うやり方ではありませんが、 興味が出てきた方がいらっしゃれば是非一度試してみてください。