本文へ移動

ぺあぷろぐらみんぐ

ペアプログラミング

Pair Programming = 2人1組の開発手法

2人で1台のPCを使い、一人が入力し、もう一人が助言するという役割分担で開発する手法です。リアルタイムで品質チェックができ、知識の共有や属人化防止に効果があります。

詳しい説明

1. 定義

ペアプログラミングとは、2人のプログラマが1台のコンピュータを使い、協力してプログラムを書く開発手法です。一人がコードを打ち込み、もう一人がその内容を確認・助言するという役割分担で作業を進めます。

この手法は、コードの品質向上や知識の共有を目的としています。一人で悩む時間を減らし、お互いの知見を掛け合わせることで、バグの混入を防ぎつつ、開発速度やスキルの底上げを同時に実現します。

2. 仕組みと種類

役割には「ドライバー」と「ナビゲーター」があります。ドライバーはキーボードを操作して実際にコードを書く担当で、ナビゲーターはコードのロジックや設計、将来の問題点を考え、アドバイスを出す担当です。

一定時間で役割を交代することで、集中力を維持し、ペア間でスキル差が生まれないようにします。XP(Extreme Programming)という開発手法の一部として提唱され、コードレビューをリアルタイムで行う効果もあります。

3. 試験ごとの視点

ITパスポート試験では、チーム開発における生産性向上や品質管理の文脈で登場します。ペアで作業することで、単純なケアレスミスを防げる点がメリットとして問われます。

基本情報技術者試験では、XPのプラクティス(手法)の一つとして問われます。コードレビューとの違いや、知識共有(属人化の防止)といったメリットのほか、コミュニケーションコストがかかるというデメリットも試験的に扱われます。

4. 紛らわしい語との違い

コードレビューは、書いた後に別の人がチェックする活動です。ペアプログラミングは書いている最中に横からチェックするため、事後のレビューを待たずに即座に修正できるという違いがあります。

モブプログラミングは、3人以上のグループで1つのPCを囲んで開発する手法です。ペアプログラミングは「2人」という少人数での活動を指すため、人数の規模が違います。

5. 身近な例

新人教育の現場でよく使われます。ベテランがドライバーで新人がナビゲーターをすると、新人は設計の思考プロセスを学び、役割を交代して新人がドライバーになれば、ベテランは作業を見守りながら適宜修正を加えることができます。

複雑な機能を実装する際にも有効です。一人がコードの実装に集中し、もう一人が「この条件分岐は漏れていないか」といった全体像を見守ることで、考慮漏れのない堅牢なコードを作ることができます。

試験で問われること

ITパスポート試験

  • コードの品質向上とバグの早期発見が目的であることを押さえる。
  • 属人化の防止(知識の共有)に役立つ手法であることを理解する。
  • 役割(ドライバーとナビゲーター)の定義を把握する。

基本情報技術者試験

  • XP(Extreme Programming)のプラクティスの一つであることを押さえる。
  • ペアプログラミングとコードレビューの、タイミングと効率の違いを理解する。
  • コミュニケーションコストがかかるというデメリットもセットで把握する。