記事検索

検索ワードを入力してください。
Sky Tech Blog
現代の​ペアプログラミング

現代の​ペアプログラミング

ペアプログラミングは、アジャイル開発の一環として、品質向上や知識共有、生産性向上を目的に二人でコードを書く手法です。リモートワークの普及により、様々なスタイルが登場し、柔軟な実践が求められています。

ペアプログラミングは、アジャイル開発の実践の一つとしては広く知られています。 従来「実装担当」「レビュー担当」と分けられる形がありましたが、 開発スタイルの変化やリモートワークの普及などにより、新しい形のペアプログラミングもあります。

1.​そもそも​ペアプログラミングって…

単に「二人でコードを書くこと」ではなく、以下のような目的を考えると良いでしょう。

  • 品質向上 ⇒ リアルタイムでレビューが出来るので、バグは早期発見できる
  • 知識共有 ⇒ 経験豊富な方と実施することで、スキル向上や属人化の解消につながる
  • 生産性向上 ⇒ 迷う時間も減り、意思決定のスピードも上がる
  • 学習/育成 ⇒ 若手の方の気づき、学びのきっかけが多くなる

このように何を狙って実施するかで実施方法も考えやすくなるでしょう。

2.​ペアプログラミングスタイル

(1)​Ping-Pongペアプロ

  • テスト駆動開発(TDD)の活用。レビューアがテスト作成し、実装者がパスするコードを書く
  • 役割を変え、双方に関与し力をつけていく

(2)​リモートペアプロ

  • Zoom,VS Code Live Share,Teams,JetBrain Code With Meなどのツールを活用し、物理的な距離を考えずできる
  • タイピング負担などを分散しリアルタイムで意見交換をする

※上記はGitのPull Requestなど非同期ペアリングのようなやり方以外を指す

(3)​パワフルペア

  • 考えた人が手を動かすのではなく、ペアに実施していただく
  • 実装者は指示通りにコードを書く、ペアが設計/方針を考えるという役割分担を明確にする

※若手の方が初めて参画されるようなケースには良いでしょう

(4)​モブプログラミングとの​ハイブリッド

  • 3人以上の小チームで開発を進めるモブプログラミングと短時間で議論し、意思決定する
  • 2人と違いどちらかの意思のみとなりづらく、客観的に対処できることを期待

3.​どんな​ときに​ペアプログラミングを​活用?

(1)​複雑な​ロジックの​実装

  • アルゴリズムやアーキテクチャ設計が絡むようなシーン

(2)​若手/新人の​オンボーディング*

  • 覚え、早期に立ち上がっていただく

(3)​不具合の​トラブルシューティング

  • 視点が増え、問題の特定スピードをあげる

(4)​リファクタリング

  • 設計、実装の改善性を議論しながら進める

4.​成功する​ペアプログラミング

(1)​コミュニケーションを​意識する

  • どのような方針でやっていくか、書いていくかを相談ベースで決めながら実施
  • お互いの考えを発信し、理解する機会を増やす

(2)​役割を​固定しすぎない

  • 中長期で同じ役割のまま実施するとどちらかに負担が偏ったり、受動的になってしまうため、うまく役割を変えながら実施する

(3)​ツールの​活用

  • 旧来のように「1台を2人で」ではないため、効率化に繋がるツールは模索しながら実施していく。後々人数規模が広がった場合に活かしていける

現代のペアプログラミングは従来の対面かつ固定の役割という枠ではなく やりやすい形に進化させて使うのが良いでしょう。
目的に合ったスタイルで様々な手法を活用し、適切なタイミングで実施することで 品質や効率アップとなり、ナレッジやスキルの共有、向上につながります。 柔軟な考えと判断が必要となりますが、一つの検討材料になればと思います。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム