【システム開発技術】二人一組で品質を高める!「ペアプログラミング」|情報処理問題1000本ノック
アジャイル開発(特にXP:エクストリームプログラミング)で推奨される手法の一つに、二人で1つのコードを書くスタイルがあります。その役割分担やメリットを攻略しましょう。
1. 問題:共同開発の手法
【 問題 】 システム開発において、2人のプログラマが1台のコンピュータを共有し、1人がコードを書き、もう1人がそれをチェックしながら共同で1つのプログラムを開発する手法はどれでしょうか?
ア、ペアプログラミング イ、デュアルプログラミング ウ、コード共有 エ、エクストリームプログラミング
2. 正解:開発手法に関する正解
正解: ア、ペアプログラミング
3. 解説:ドライバとナビゲータの連携
ペアプログラミング(Pair Programming)は、役割を分担することで、コードの品質向上と知識共有を同時に行う手法です。
【図解:ペアプログラミングの役割】
■ ドライバ (Driver)
・実際にキーボードを叩き、コードを入力する人。
・詳細な実装(タイピングや構文)に集中します。
■ ナビゲータ (Navigator)
・横でコードを読み、間違いを指摘したり、全体の設計方針を確認したりする人。
・一歩引いた視点で、次に書くべき内容や問題を考えます。
※定期的な交代
・役割は頻繁に入れ替えることで、集中力を維持し、偏りを防ぎます。
■ ドライバ (Driver)
・実際にキーボードを叩き、コードを入力する人。
・詳細な実装(タイピングや構文)に集中します。
■ ナビゲータ (Navigator)
・横でコードを読み、間違いを指摘したり、全体の設計方針を確認したりする人。
・一歩引いた視点で、次に書くべき内容や問題を考えます。
※定期的な交代
・役割は頻繁に入れ替えることで、集中力を維持し、偏りを防ぎます。
[ 主なメリット ]
★ 品質向上:常に「リアルタイムのコードレビュー」が行われているため、バグが混入しにくい。
★ 教育・共有:経験豊富な人と新人が組むことで、技術継承がスムーズに進む。
★ 集中力:一人で悩む時間が減り、作業のリズムが生まれる。
★ 品質向上:常に「リアルタイムのコードレビュー」が行われているため、バグが混入しにくい。
★ 教育・共有:経験豊富な人と新人が組むことで、技術継承がスムーズに進む。
★ 集中力:一人で悩む時間が減り、作業のリズムが生まれる。
1. 理解のコツ: 自動車のラリーをイメージしてください。運転する人(ドライバ)と、地図を見て指示を出す人(ナビゲータ)が協力してゴールを目指すのが、ペアプログラミングのスタイルです。
2. 試験対策の視点: 「2人1組」「1台のPC」「ドライバとナビゲータ」という単語があれば、迷わずペアプログラミングを選びましょう。また、選択肢(エ)の「エクストリームプログラミング(XP)」は、このペアプログラミングを含む「12のプラクティス」からなる開発フレームワーク全体の名前です。
4. まとめ
「二人で1つの画面を見て、協力して開発する」。これがペアプログラミングです。コミュニケーションコストはかかりますが、結果として手戻りが減り、チーム全体の技術力が向上する非常に強力なアプローチです。
PR