基本情報 令和元年度 秋期 問59:マネジメント系に関する問題
XP (eXtreme Programming) において, プラクティスとして提唱されているもの はどれか。
- aインスペクション
- b構造化設計
- cペアプログラミング
- dユースケースの活用正答
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c「ペアプログラミング」 です。
XPの中で「2人1組でコードを書く」のがペアプログラミング。1人が打って、もう1人がレビューしながら進めます。
4人で作ると速いけど、2人で集中する方がバグも少なくて知識も共有できます。
👉 覚え方:ペアプログラミング=2人で1台のPC。
ほかの選択肢:a インスペクション=公式レビュー手法/b 構造化設計=古典的設計法/d ユースケース活用=UMLの話。
なぜこれが正解か
正解は c。ペアプログラミングはXPの代表的プラクティスで、2人1組で1台のコンピュータを使い、ドライバ(コード入力)とナビゲータ(レビュー・思考補助)役を頻繁に交替しながら開発する。リアルタイムレビューで品質向上、知識共有、教育効果が高い。
各選択肢の解説
- a インスペクション:Fagan博士提唱の公式レビュー手法。チェックリストベース、別途記録。XPプラクティスではない。
- b 構造化設計:1970年代の古典的設計手法(DeMarco、Yourdon)。XPと無関係。
- d ユースケースの活用:UMLおよびユースケース駆動開発(UCD)の手法。XPでは「ユーザストーリー」を使うのが標準。
覚え方・ひっかけ注意
XPの主要プラクティス(コード/設計関連):
- ペアプログラミング
- テスト駆動開発(TDD)
- 継続的インテグレーション(CI)
- リファクタリング
- シンプル設計
- コーディング標準
- 集合的コード所有
XPはユーザストーリー+イテレーションで計画し、コードレビューを常時化したのがペアプログラミングの本質。
理論的背景
XP(Extreme Programming)はKent Beckが1996年Chrysler社C3プロジェクトで提唱、1999年『Extreme Programming Explained』で体系化。4つの価値(コミュニケーション、シンプルさ、フィードバック、勇気、第2版で尊重追加)と12のプラクティス(後に19に拡張)から成る。ペアプログラミングは「集合的コード所有」「継続的レビュー」「ペアでの設計判断」を体現する技術プラクティス。
ペアプログラミングの研究エビデンス
- Williams & Kessler(2002)『Pair Programming Illuminated』:ペアプロでバグ15%減、開発時間15%増(コード品質向上で総保守コスト減)
- NCSU(North Carolina State University)研究:ペアプロは単独開発比でコード行数低減、欠陥密度低下
- 学習効果:ジュニア開発者のオンボーディング短縮、暗黙知伝達
ペアプロの派生・進化
- モブプログラミング(モブプロ):3人以上、1台PCで開発。Hunter Industries発祥。集中度高い、意思決定速い
- Ping-Pong TDD:A=テスト書く→B=実装→交替を繰り返す
- リモートペアプロ:VS Code Live Share、JetBrains Code With Me、tmux、Tuple(macOS)、Pop.com
- AI ペアプロ:GitHub Copilot、Cursor、Devin、Claude Codeが「AIをペアの相手として開発」を実現
XPと他アジャイル方法論の関係
- Scrum:プロセス管理中心(ロール、イベント、アーティファクト)。XPは技術プラクティス中心で相互補完(Scrum+XP)
- Kanban:WIP制限、フロー可視化。XPプラクティスと組合せ可能
- DevOps:CI/CD、Infrastructure as Codeは XPの継続的インテグレーション・自動化思想の発展
- DDD(Domain-Driven Design):ペアプロはユビキタス言語確立に有効
実務での導入課題
- 疲労管理:常時ペアは集中力消耗。50-70%の時間でも効果あり
- 相性問題:ペア組合せの工夫。スキル差、性格差
- リモートワーク:オンラインペアプロは音声・画面共有・ツール整備必要
- コスト効率:単純なタスクは単独、複雑・学習機会のあるタスクはペアと使い分け
試験での位置づけ
基本情報・応用情報・プロジェクトマネージャ・システムアーキテクトのアジャイル分野で頻出。直近はSAFe、LeSS等のスケールドアジャイル、エンタープライズDevOpsとの連動論点も増加。
選択肢の発展補足
インスペクションはFagan(1976)が提唱した公式レビュー手法で、欠陥検出率の定量化と再現性が特徴。ピアレビュー(同僚レビュー)、ウォークスルー(説明型レビュー)と並び、シフトレフトテストの中核。GitHubのPull Requestレビュー、Gerrit、Code Reviewツール(Crucible、Phabricator)は現代のインスペクションのデジタル化。これらはペアプロと補完的に運用でき、特に分散チームでは非同期コードレビューが現実的な選択肢となる。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 令和元年度 秋期 問59/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。