Home | Login | Recent Changes | Search | All Pages | Help

ExtremeProgramming

See also: ExtremeHour

The Extreme Programming (XP) methodology is a set of principles and practices for developing software. It has been described as a "high-discipline, low-overhead" methodology. XP has developers programming in pairs, writing tests to verify all code, and continuously refactoring code to improve the design. To quote Kent Beck: "XP is a starting line. It asks the question, 'How little can we do and still build great software?'"

news:comp.software.extreme-programming is a newsgroup for discussing this methodology.

XP minifaq: <>

XP FAQ: <http://www.jera.com/techinfo/xpfaq.html>

XP and related Books: [My comments in brackets]


Extreme Programming Explained: Embrace Change by Kent Beck; ISBN 0-201-61641-6

[The original book, heavy on the justification / manifesto, too light on what you actually have to do. XP continues to evolve, this book didn't describe test-driven deveopment, the core of modern XP. I recommend other books, see below.]


Refactoring: Improving the Design of Existing Code by Martin Fowler; ISBN 0-201-48567-2

[Strongly recommended. Refactoring can be dangerous without the support of automated tests.... This is a required part of test-driven development and XP.]

This is an outstanding book, in that it explains in detail how to do some of those things you've always done, but called "cleaning up the code." Provides checklists to help prevent forgetting a vital piece, incremental methods for making improvements, and some good philosophy-behind-refactoring. Everyone says you must have automated tests in place to do refactoring, and of course it's highly (highly!) preferable, but sometimes you have to refactor and you don't have tests. "Refactoring" helps even in that situation ;). - DavidPickett


Planning Extreme Programming by Kent Beck, Martin Fowler; ISBN 0201710919

[Recommended. A whole book on doing XP planning. Something you can give your Customer to read.]


Extreme Programming Installed by Ron Jeffries, Chet Hendrickson, and Ann Anderson; ISBN 0201708426

[Strongly recommended. An example of test-driven development, and enough details on how to do XP to get you started.]


Extreme Programming Applied by Ken Auer, Roy Miller; ISBN 0-201-61640-8

[Strongly recommended. Advice on adapting XP and persuading developers and managers to adopt it.]


Test Driven Develoment by Kent Beck

[Introduction to Test Driven Design / Test First Programming, the core of XP. Can be used outside of XP, but then people might throw away your tests or change the code without keeping the tests passing. There are other books on TDD that I haven't read yet.]

Lucid, easy and quick to read, and does a good job of explaining-by-doing. There are a thousand sources for getting that good old TDD religion, but it's always nice to hear it from the horse's mouth, so to speak. - DavidPickett


Agile Modeling by Scott W. Ambler; ISBN 0-471-20282-7

[Strongly recommended. While ostensibly an addition to XP, this actually codifies and names the design activities an XP project would do.]


Questioning Extreme Programming by Pete Mc Breen ISBN 0-0-201-84457-5

[Recommended. Explains assumptions and context of XP. The downside is that the author repeatedly asserts that XP can only be used in a narrow domain, without providing any persuasive evidence to support that assertion. In fact, that assertion ignores the wide variety of places that XP has been used successfully.]


Extreme Programming Examined by Giancarlo Succi and Michele Marchesi; ISBN 0-201-71040-4

[Papers and experience reports from a conference.]


Extreme Programming Explored by William C. Wake; ISBN 0-201-73397-8

[A rather introductory book, rather "practice these exercise" oriented.]


Extreme Programming in Practice by James W. Newkirk and Robert C. Martin; ISBN: 0-201-70937-6

[An attempt to document an actual XP project, but this project didn't have automated acceptance testing, one of the practices most in need of examples and explanation.]


Java Tools for Extreme Programming by Richard Hightower, Nicholas Lesiecki; ISBN 0-471-20708-X

[Might be useful for Java developers. Not much about XP in here.]


Agile Software Development by Alistair Cockburn; ISBN 0-201-69969-9

[recommended. Strong points about communication being the base of agile methods.]


Agile Software Development Ecosystems by James A. Highsmith III; ISBN 0201760436

[Overview of XP, Scrum, Crystal, FDD, etc.]


Adaptive Software Development by James A. Highsmith III; ISBN 0-932633-40-4

[I found this hard to read because of the lack of concrete examples. Also the frequent use of the word "extreme" kept making me think about XP, which I'm sure wasn't the author's intention.] (I really liked this one, but I am not a developer and I think that I was looking for higher level information than Keith. SherryHeinze)


Agile Software Development with Scrum by Mike Beedle, Ken Schwaber; ISBN 0130676349

[The only book on Scrum, other than the Ecosystems book. XP's management practices ARE scrum, but with different names and emphasis. Despite this, many people have combined Scrum and XP in various ways.]


Powerful Project Leadership by Wayne Strider ISBN 1567261477

[Recommended people-skills for manager/coach/leader. Not specific to XP]


Quality Software Management" volumes 1 - 4 by Gerald M. Weinberg ISBN [Volume 4 suggests several techniques compatible with XP]
Web sites:

Extreme Programming: A Gentle Introduction <http://www.extremeprogramming.org/>

XP magazine:

XPlorations:

XP Universe 2001 Papers:

XP Test Frameworks:

Junit test framework for java:

Wiki Pages on XP: <http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap>

The Agile Modeling (AM) Home Page <http://www.agilemodeling.com> <http://www.agilemodeling.com/essays/agileModelingXP.htm>

Martin Fowler's Refactoring Home Page <http://www.refactoring.com>

Object Mentor publications: <http://www.objectmentor.com/resources/articleIndex>

Pour des informations en fran�ais sur XP : <http://www.design-up.com>

L'eXtreme Programming, avec deux �tudes de cas. Jean-Louis B�nard, LaurentBossavit, R�gis M�dina, Dominic Williams Editions Eyrolles, 2002; ISBN: 2-212-11051-0 <http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean13=9782212110517> <>

-- KeithRay


Great references, Keith, but too many for the case where there are no annotations to guide us. If someone(s) would annotate these, the list would be ten times more useful. - JerryWeinberg 2003.0922
I put the annotations on a separate line to make them more obvious, and expanded them. -KeithRay 2003.09.23 (Happy birthday, me.)

ExtremeProgrammingDiscussion

Happy birthday to you. - jb


Added some comments to the Refactoring and TDD book blurbs. - DavidPickett


Updated: Thursday, June 17, 2004