本书收集了47篇有关XP的论文。这些论文共分为六个主要部分:XP和AM概述,XP开发实践,向XP和AM转变过程中所包含的问题,应用XP进行工作的实际经验,如何使用极限工具帮助实际应用XP和AM,最后讨论了一些发展和扩充XP的思想。围绕XP和其他灵活方法论中讨论的多个关键主题,本书提出了有效实施XP的经验性技术,并给出了实现成功转变的策略。本书收集的论文涉及多个行业中的极限编程实践。对于已经在进行XP开发,或者是准备转换到这种灵活方法论上的人来说,具有较强的指导意义。对于采用传统开发方法的程序员来说,也有助于他们开阔视野,进而接受这些新的编程思想。前言为什么我们需要另一本Agile/XP的图书?如果XP和AgileManifesto都很简洁,那么为什么还需要那么多的书籍、文章、讨论会、用户讨论组、Yahoo分组电子邮件以及辩论会进行阐述呢?这是因为简洁并不表示过于简单,“简洁”的原则和实践的有效组合可以产生复杂的、智能的行为。XP的12种实践,DSDM的9个原则,BobCharette的“节俭开发”(LeanDevelopment)中的12条准则,以及与AgileManifesto有关的12条准则(12似乎是Agilists非常流行的数字)并不简单。这些复杂的问题,受技术和人类能力的限制,不太容易解决,但我们可以通过一些内在的规则、实践和准则很好地逼近,使“应用程序”产生无穷的有创造性的想法,这些想法反过来又可以为我们的顾客带来价值。这一点很关键,但严格的方法论支持者并不理解。他们中的许多人只相信内在的规则、程序和过程,而不相信生成的规则。如果有问题,可以翻到过程57、活动24、任务87、步骤4,即可找到答案。遗憾的是,复杂的问题并不能通过这些数字来找到答案。复杂的问题,也就是每人每天都要面对的现实问题,即软件产品开发杂乱无章的局面,可以在几个关键原则的指导下,基于几个关键实践,通过有创造性的、革新的想法来解决。正如KathleenEisenhardt和DonaldSull在“HarvardBusinessReview'’一文(“StrategyaSSimpleRules”,2001.01)中所写的那样,“如果商务前景是简单的,那么公司可以采取复杂的策略,但现在的商务是如此复杂,因此需要对它们进行简化”。简化并不意味着过于简单,而是意味着要从数以百计的软件开发规则和实践中提取出能够使我们清晰、有效地考虑所面临问题的一些内容。如果实践过于简单,我们将不需要有关单个实践的全部书籍:重构(MartinFowler),或结对编程(LaurieWilliams和RobertKessler),或测试优先开发(KentBeck)。本书各章的差异证明了我的观点。本书由Agile/XP领域的著名领导者和不太为人所知的领导者合作编写,他们每天都在努力工作以为其顾客创造价值。这些章节反映了现实世界问题的复杂性及其解决办法,有助于我们了解几个非常有价值的关键、简单的观点。类似这样的图书是很有价值的。虽然各个章节不一定适合每位读者,但可以先跳过一些章节,只学习感兴趣的部分,之后再学习其他章节,这样读者可以深人了解同时代的人如何使用AgUe/XP实践来解决众多的现实世界问题。但我们必须承认,参与在地中海撒丁岛海滩举行的XP2001会议的人对本书许多章节的形成都有一定的贡献。JimHighsmith