エクストリーム・プログラミング(extreme programming)とは、アジャイル開発の手法のひとつで、顧客の要望を取り入れながら、要件定義・設計・開発・テストの工程をイテレーション(iteration)と呼ばれる単位で繰り返し行いながら、ソフトウエアの品質を向上させていくソフトウエア開発プロセスのことです。エクストリーム・プログラミング(extreme programming)を略して、XPと呼ぶ場合もあります。
エクストリーム・プログラミングは、1990年代後半から2000年初頭にソフトウエアコミュニティで大きな注目を集め、多くのプロジェクトで採用されたが、開発プロジェクトが縮小されたり、プロジェクトの途中で顧客の要件の方向性が大きく変わり始めるなどの理由から、未完成のまま放置されたりする開発プロジェクトが出てきたりするなどの課題もあり、開発の現場が混乱するケースも見受けられた。
XPの課題・問題点
また、システム開発の契約面においても、当初、要件に基づく請負開発として発注されたシステム開発プロジェクトが、プロジェクトの途中から”顧客の要望に応じて要望を取り入れながら、要件定義・設計・開発・テストを繰り返すエクストリーム・プログラミング的体制を求められるようになり、いつまでも終わらない請負開発プロジェクトが発生するなど、契約面でのトラブルの発生、契約内容に対する理解と認識などについて課題が残るケースも見受けられた。