エクストリームプログラミング(XP)とは、主にケント・ベックによって開発されたソフトウェア開発手法である。XPは最初のアジャイル手法のひとつであり、2000年代以降にスクラムが主流になるまでの90年代後半から2000年代初頭にかけて、XPが代表的なアジャイル手法だった。多くの人々は(私も含めて)アジャイル手法に注目を集めるためにXPが重要な役割を果たしており、アジャイル開発を始める際の基盤としてはスクラムよりも優れていると考えている。

ケントがXPを開発したのは、80年代後半から90年代前半のSmalltalkプロジェクトのコンサルティングの経験からだった。後にXPとして知られるようになるプラクティスのフルセットは、C3ではじめて同時に使用された(私はこのプロジェクトでケントと一緒に働き、XPについて学んだ)。このアプローチを示す「エクストリームプログラミング」という名称は、当初はWikiWikiWeb上で非公式に使用され、その後の一連の書籍として定着したものである。さまざまなチームがWikiWikiWebの説明を参考にして、独自にXPを実践した。彼らは手法を複製することで、オリジナルの現場以外でも適用可能であることを示したのである。

ケントはXPを広範で抽象的な「価値」や「原則」から具体的な「プラクティス」まで、考えを段階的に説明してる。私は、この段階的な説明方法は他の多くの文脈でも有用だと考えている。XPはソフトウェア開発で広く使用されている多くのプラクティスを普及させた。たとえば、継続的インテグレーションリファクタリングテスト駆動開発、アジャイルプランニングなどである。私は技術プラクティスとマネジメントプラクティスを組み合わせたところが特に気に入っている。このことにより、XPはAgile Fluencyの「デリバリー(Delivering)」の領域に到達するのに適した手法となっている1

私は(ほとんどのXPerと同様に)「XPを実践しているかどうか」でチームを評価することに意味はないと考えているが、Thoughtworks社のプロジェクトのほとんどは、主にXPに影響を受けたスタイルで運営されている。

参考文献

XPの決定版とも言うべき解説書はケントの白本である(XPの初期の実践者たちは第1版の手法を学んでいるので、第2版とは相違点があることには注意してほしい)。

白本はXPを定義する最良の書籍だが、私はXPを学ぶためのガイドとしてジェームズ・ショアの『アート・オブ・アジャイル デベロップメント』を推薦している。ケントのXPよりも幅広い話題を扱っているが、XPの主要な特徴にしっかりと根ざした内容だ。

  1. マネジメントプラクティスしか含まず、ヘロヘロScrumとなる脆弱性を抱えるスクラムとは対照的である。