ネットワークスペシャリスト 2017年 午前2 問25
問題文
XP(eXtreme Programming)のプラクティスの一つであるものはどれか。
選択肢
ア:構造化プログラミング
イ:コンポーネント指向プログラミング
ウ:ビジュアルプログラミング
エ:ペアプログラミング(正解)
XP(eXtreme Programming)のプラクティスの一つであるものはどれか。【午前2 解説】
正解の理由
選択肢エ(ペアプログラミング)はXPの公式プラクティスに含まれます。XPはアジャイル開発手法の一つで、コードの品質向上と知識伝達を目的に複数の具体的プラクティスを採用します。その中に「ペアプログラミング(2人1組で同じ作業を行う)」が明記されており、実装の即時レビューと設計検討を促進するため正解となります。
解法ステップ
- 問題文で「XPのプラクティス」を問うていることを確認する(手法の具体的な習慣・実践を選ぶ)。
- 各選択肢が「プラクティス(習慣・実行する手順)」か「プログラミングパラダイム/技術」かを分類する。
- XPの代表的プラクティス(ペアプログラミング、テスト駆動開発、リファクタリング、継続的インテグレーションなど)と照合する。
- 一致するものを選ぶ(エが該当)。
選択肢別の誤答解説
- ア: 構造化プログラミング — プログラミングパラダイムであり、XPの個別プラクティスではありません。アルゴリズム設計や制御構造の原則に関する概念です。
- イ: コンポーネント指向プログラミング — ソフトウェア設計・再利用指向のパラダイムで、XPの「プラクティス」カテゴリとは別物です。
- ウ: ビジュアルプログラミング — GUIやビジュアル言語を使う開発スタイルを指し、XPが推奨する公式プラクティスには含まれません。
- エ: ペアプログラミング — 正解。XPの基本プラクティスの一つで、2人でコードを書きレビューすることで品質向上と知識共有を実現します。
よくある誤解
- 「ペアプログラミングは単に2人で同じキーボードを使うだけ」と誤解しがちですが、役割分担(ドライバー/ナビゲータ)や交代のルールが含まれます。
- 「XP=TDDだけ」と考える受験者がいますが、XPはTDD、継続的インテグレーション、リファクタリング、ペアプログラミングなど複数のプラクティスの組合せです。
- 他の選択肢(構造化/コンポーネント指向/ビジュアル)はプログラミング手法やパラダイムであり、XPの公式プラクティスではない点を混同しやすいです。
補足コラム
ペアプログラミングの実践ポイント:
- 役割分担:ドライバー(実装担当)とナビゲータ(設計・レビュー担当)を明確にする。
- 交代タイミング:一定時間ごとに交代し集中力と視点を維持する。
- コミュニケーション:意見を出しやすい心理的安全性を保ち、建設的フィードバックを行う。
効果:初期バグ検出の増加、知識の水平移動、コード品質の向上が報告されていますが、導入にはコスト(人的リソースの増加)もあります。
FAQ
Q: ペアプログラミングは常に2人でなければならないですか?
A: XPでは原則2人ですが、状況に応じてモブプログラミング(3人以上)や単独作業を組み合わせることもあります。
A: XPでは原則2人ですが、状況に応じてモブプログラミング(3人以上)や単独作業を組み合わせることもあります。
Q: ペアプログラミングの時間はどれくらいが適切ですか?
A: 一般的には30分〜90分程度で交代することが多く、短すぎると効率悪化、長すぎると疲労で効果が下がります。
A: 一般的には30分〜90分程度で交代することが多く、短すぎると効率悪化、長すぎると疲労で効果が下がります。
Q: ペアプログラミングは中小プロジェクトにも有効ですか?
A: 規模に関わらず知識共有や品質向上に貢献しますが、コストとのバランスを見て適用範囲を決めてください。
A: 規模に関わらず知識共有や品質向上に貢献しますが、コストとのバランスを見て適用範囲を決めてください。
関連キーワード: アジャイル開発、ペアプログラミング、テスト駆動開発、リファクタリング、継続的インテグレーション

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

