Stephens and Rosenberg examine XP in the context of existing methodologies and processes such as RUP, ICONIX, Spiral, RAD, DSDM, etc – and show how XP goals can be achieved using these existing processes.
This was a good book. It could have been a great book, though. Its criticisms of XP are generally accurate, if occasionally exaggerated, and the alternatives that it suggests strike a good compromise. If the authors had only done without the name-calling, smug superior attitude, sarcasm, corny jokes, and satirical songs, and stuck to making their point rationally, I would recommend it more. Read it if you want to think about the good and the bad of eXtreme Programming, but save yourself the time and lots of eye-rolling by skipping the many, many jokes.
A very good and thorough, though-provoking critique. It is not as extreme in its criticism as XP is in its methods. However, I found the sarcasm and ridicule a little over the top. This book DOES offer alternatives and sensible advice; it is not a denouncement of "Agile methods" in general, only of the over-zealousness of XP advocates.
This 2003 book, published three years after Kent Beck's Extreme Programming Explained includes a lot of still very valid criticisms of the more radical interpretations of XP such as those which skip designing before coding, rotate programming pairings far too frequently and literally, over-emphasize refactoring, ommit documentation and hope to rely on a single, permanently assigned and experienced customer representative.
It is merciless in exposing hype and inflated claims about XP but in the last chapter manages to strike a fairer, more balanced assessment of XP's many contributions to the development of agile methodologies. I tried to search the Internet for more recent evidence-based assessment of XP today (say 2018-2021) but found very little indeed and was struck by the number of papers quoting old and rather debatable claims from ten or more years back and the number of articles reporting XP evaluations based on student programmer experiences.
It references many key or interesting publications, wiki pages and blogs circa 2003.
I agree with the other Goodreads reviewers in that a better book would have been written if the authors had left out their more pointed, sophomoric or sarcastic barbs and jibes and had firmly resisted the urge to rewrite the lyrics of Beatles and other pop songs to allude to XP practices -some are pretty funny but in the end they become quite tiresome.
XP and other agile development methods grew out of proposals for rapid development methods and Boehm's spiral development model and a growing dissatisfaction with bloated and cumbersome waterfall based methodologies leading to long development times, frozen and eventually outdated requirements, high-level but poor software architecture and design, attempts at deskilling programming and growing communication difficulties between software architects, designers, toolsmiths, programmers and testers. XP, especially in its more radical interpretations can be seen as a revolt attempting to place programming at center stage of the development process. It works very well as long as the XP team is small and its members are outstanding programmers and expert developers or, as the authors intriguingly suggest, when the team tackles a software maintainance project.
I took an unplanned detour into this one when it was referenced from "Use Case Driven Object Modeling with UML - Theory and Practice".
It's a savagely effective demolition of the tenets of eXtreme Programming, from the point of view of an author who is still advocating rapid development, but has not swallowed the perfect world fantasies of the XP zealots.
It's a long way from being a perfect book - the attempts at humour more often than not fall very flat, with the rewritten songs being particularly cringeworthy, but if you skip over the songs and most of the (clearly labelled) satire, there are some very important lessons about the weaknesses of XP and how to address them without losing all the benefits of a more agile development process.