XPの解説(基本情報技術者シラバス用語)

目次

XPとは

XP(エクストリーム・プログラミング:Extreme Programming)とは、アジャイル開発における手法の一つで、技術的な実践(プラクティス)に重点を置いた開発手法です。「極限(Extreme)プログラミング」という意味があり、ソフトウェア開発における良い習慣を極限まで高めて実践しようという思想から生まれました。

XPには、開発を成功させるための重要な価値観(コミュニケーション、シンプル、フィードバック、勇気、リスペクト)と、具体的な19の実践ルールがあります。代表的なものに、2人のプログラマーが1台のパソコンで協力してコードを書く「ペアプログラミング」や、プログラムを書く前にテストコードを先に作成する「テスト駆動開発(TDD)」などがあります。これらにより、コードの品質を高めつつ、仕様変更に強いシステムを作ることができます。

具体例

例えば、複雑な計算を行うプログラムを開発する際、1人がキーボードでコードを書き(ドライバー)、もう1人がその横で「仕様に漏れがないか」「バグがないか」を客観的にチェックする(ナビゲーター)という役割分担で開発を進めます。これが「ペアプログラミング」の実践例です。

もう少し詳しく

XP(エクストリームプログラミング)は、1990年代後半にケント・ベック氏らによって提唱されたアジャイル手法の一つです。XPは、開発現場における技術的プラクティスを「極限(Extreme)」まで高めて実践することを推奨しています。XPの根底には「コミュニケーション」「シンプル」「フィードバック」「勇気」「リスペクト」という5つの価値観があります。これらを実践するための具体的な仕組みとして、19個のプラクティスが定義されています。代表的なものには、2人で1つのPCを共有して品質の高いコードを書く「ペアプログラミング」、プログラムを書く前に自動テストを作成する「テスト駆動開発」、常にコードを綺麗に保つ「リファクタリング」、ソースコードの所有権を全員が持ち誰でも修正可能とする「共同コード所有」、過度な残業を避けて健康的に持続可能なペースで働く「週40時間労働」などがあります。これらを組み合わせることで、高品質なコードを維持しつつ、急激な仕様変更にも即座に対応できるチームを作り上げます。

試験でのポイント

試験においては、XPの具体的なプラクティスの名前とその意味が正しく結びついているかが頻繁に問われます。例えば、2名の役割である「ドライバー(実際にコードを書く人)」と「ナビゲーター(俯瞰してチェックする人)」が協力する「ペアプログラミング」の特徴やメリット、またプログラムの動作(外部から見た仕様)を変えずにソースコードの内部構造を整理する「リファクタリング」の定義が問われます。さらに、システムの動作保証のためにテストを先に書く「テスト駆動開発(TDD)」や、コードが変更されるたびに自動ビルドと自動テストを繰り返す「継続的インテグレーション」といった技術的プラクティスをXPが重視している点がポイントとなります。

関連する用語

XPはアジャイル開発の手法の一つであり、チームの管理フレームワークであるスクラムと相補的に使われます。また、XPで実践される技術はテスト駆動開発やCI/CD、バージョン管理の基盤と深く結びついています。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ