XP(エクストリームプログラミング)とは?代表的な実践(プラクティス)

公開: 更新: カテゴリ: マネジメント系

30秒で結論

XPとは(全体像)

XPは、システム開発の進め方のひとつで、アジャイル(短い期間でくり返し、変化に対応する考え方)の代表的な手法だ。とくに、実際にコードを書く開発者が働きやすく、品質を高めやすいやり方を大切にしている。

XPの中身は、いくつかの実践(プラクティス=具体的なやり方)でできている。むずかしく考えず、「チームで質を高めるための、いくつかの工夫の集まり」と思えばよい。

なお、XPはスクラムとは別の手法。どちらもアジャイルの仲間だが、スクラムは「役割や予定のしくみ」が中心、XPは「コードの書き方・進め方の実践」が中心、という違いがある。


詳しく:代表的な実践(プラクティス)

ここが心臓部。XPの代表的な実践を表で押さえよう。

XPの代表的な実践

実践やさしい意味
ペアプログラミング2人で1台のパソコンを使い、一緒に開発する
テスト駆動開発(TDD)テストを先に書いてから、それを満たすコードを作る
リファクタリング動きを変えずに、コードの中身を整理して読みやすくする
継続的インテグレーションこまめにコードを合わせて、すぐ確かめる

とくに問われるのが、ペアプログラミング。これは、2人で1台を使い、1人が書き、もう1人が確認しながら開発するやり方だ。「2人がかりは効率が悪い」と思われがちだが、その場でミスに気づける・知識を共有できるので、品質が上がるという効果が大きい。

もう1つ、テスト駆動開発(TDD)。ふつうは「作ってからテスト」だが、TDDは逆で、先にテストを書いてから、それを通すようにコードを作る。最初に「合格の基準」を決めてから作るので、品質を保ちやすい。

わかりやすく言い換えると

身近なたとえで整理しよう。

XPは、「料理の腕を上げるための、いくつかのコツの集まり」のイメージ。1つの大きなルールではなく、小さな工夫がいくつも組み合わさっている。

ペアプログラミングは、2人で料理して、片方が味見・確認しながら進めるようなもの。要するに、その場で間違いに気づけて、教え合える、ということだ。

テスト駆動開発は、「完成の見本(合格ライン)を先に決めてから作る」のと同じ。つまり、ゴールを先に決めるから、ずれにくいわけだ。


試験のツボ

🔴 一番出る:XPの位置づけ

①アジャイルの代表的な手法のひとつ(開発者重視)

②スクラムとは別の手法(XPは実践が中心)

🔴 次に出る:代表的な実践

①ペアプログラミング(2人で1台)・テスト駆動開発(テストを先に書く)

②リファクタリング(動きを変えずコードを整理)

🟡 押さえると安定:ペアプログラミングの効果

①その場でミスに気づける・知識を共有できる

②「2人がかりは効率が悪い」は誤解で、品質が上がる


よくある間違い

「XPとスクラムは、まったく同じ手法だ」→ ✗  どちらもアジャイルの仲間だが別の手法。スクラムは役割中心、XPは実践中心。

「ペアプログラミングは、2人がかりなので必ず効率が悪い」→ ✗  その場でミスに気づけて知識も共有でき、品質が上がる効果が大きい。

「テスト駆動開発は、最後にまとめてテストするやり方だ」→ ✗  テスト駆動開発は、テストを先に書いてから、それを満たすコードを作る。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(XPの位置づけ)

📝 オリジナル問題 1 XPの位置づけ

XP(エクストリームプログラミング)に関する次の記述のうち、最も適切なものはどれか。

  1. アジャイルの代表的な手法のひとつで開発者を重視した進め方のことである
  2. 工程を上から下へ一度きりで進め、後戻りしない開発の進め方のことである
  3. 社員の出退勤の時刻を記録して、毎月の給与を計算するためのしくみである
  4. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指している
プロネコ
プロネコ 解答・解説

解答は 1 だよ。

XPは、アジャイルの代表的な手法のひとつで、開発者を重視した進め方だよ。実践(プラクティス)の集まりでできているんだ。

選択肢2はウォーターフォール、選択肢3は勤怠と給与、選択肢4は請求書の事務で、どれも違うよ。

選択肢判定理由
1アジャイルの一手法で開発者重視で正しい
2一度きりはウォーターフォール
3勤怠・給与のしくみの話
4請求書の事務の話

オリジナル問題2(テスト駆動開発)

📝 オリジナル問題 2 テスト駆動開発

テスト駆動開発(TDD)に関する次の記述のうち、最も適切なものはどれか。

  1. テストはいっさい行わず、コードを書いたらそのまま完成とするやり方である
  2. すべてのコードを書き終えた最後に、一度だけまとめてテストするやり方である
  3. 先にテストを書いてから、それを満たすようにコードを作っていくやり方である
  4. 社員の出退勤を記録して、毎月の給与を計算するためのしくみのことである
プロネコ
プロネコ 解答・解説

解答は 3 だよ。

テスト駆動開発は、先にテストを書いてから、それを満たすようにコードを作っていくやり方だよ。合格ラインを先に決めるから、品質を保ちやすいんだ。

選択肢1の「テストしない」、選択肢2の「最後に一度だけ」、選択肢4の給与計算は、いずれも誤りだよ。

選択肢判定理由
1テストを行うやり方である
2テストを先に書くのが特徴
3テストを先に書くで正しい
4給与計算のしくみではない

オリジナル問題3(ペアプログラミング)

📝 オリジナル問題 3 ペアプログラミング

ペアプログラミングに関する次の記述のうち、最も適切なものはどれか。

  1. 1人だけで黙々と開発し、ほかの人とは情報を共有しないやり方である
  2. 2人で1台を使い、確認し合いながら開発して品質を高めるやり方である
  3. 全社員を1か所に集めて、来年の方針を話し合う会議のことを指している
  4. 取引先へ請求書を郵送する事務作業を、2人で分担するやり方である
プロネコ
プロネコ 解答・解説

解答は 2 だよ。

ペアプログラミングは、2人で1台を使い、確認し合いながら開発して品質を高めるやり方だよ。その場でミスに気づけて、知識も共有できるんだ。

選択肢1の「1人で共有しない」、選択肢3の会議、選択肢4の請求書の事務は、いずれも誤りだよ。

選択肢判定理由
12人で確認し合うやり方
22人で1台・品質を高めるで正しい
3会議のことではない
4請求書の事務ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る