平成29年度 秋期 システムアーキテクト試験 午前Ⅱ 問10
テクノロジ開発プロセスアジャイル開発(スクラム・XP・リーン)
ハードウェアの経験が豊富なプログラマAと,経験の少ないプログラマBがペアプログラミングの手法を利用して組込みシステムの開発を進める。ペアプログラミングによる開発の進め方として,適切なものはどれか。
解答・解説
正解: ウ. AとBがエディタの画面を共有し,Bが記述したコードに対してAが助言する。
正解の根拠
正解は ウ です。
ペアプログラミングは、アジャイルソフトウェア開発手法の一つである エクストリームプログラミング(XP) のプラクティスです。2人のプログラマが1組となり、1台のコンピュータ(または共有された開発画面)を使って共同で開発を進めます。
通常、以下の2つの役割を分担し、適宜交代しながら作業を行います。
- ドライバ(Driver): 実際にキーボードを操作してコードを記述する役割。
- ナビゲータ(Navigator): ドライバが記述しているコードをリアルタイムでレビューし、設計方針の助言やバグの指摘を行う役割。
経験の少ないプログラマBがコードを記述(ドライバ)し、経験豊富なプログラマAが画面を共有して助言(ナビゲータ)を行うことで、コードの品質向上と知識・スキルの伝達が同時に達成されます。
各選択肢の解説
- ア: デバイスドライバとアプリケーションで担当を分けて個別に開発する通常の分業体制(タスク分割)の説明であり、ペアプログラミングではありません。
- イ: Aがプロジェクトマネージャとして管理・調整を行うという体制の説明であり、2人で共同してコーディングを行うペアプログラミングの手法ではありません。
- ウ: 正解。1つの画面を共有し、1人がコードを記述し、もう1人がリアルタイムでレビュー・助言を行うペアプログラミングの適切な進め方です。
- エ: 事前検証の後にAとBで作業を分担して個別に開発を進めており、ペアプログラミングではありません。