JAX Magazine: The free PDF magazine powered by JAXenter!
Extreme Programming: Is It Still Relevant? Although in 2011 we're more likely to talk about 'agile' or 'Scrum' than Extreme Programming (XP,) this methodology can be traced back to the late 1990s where, driven by the rise of object-orientated programming and the internet, it became a hot topic in the software industry. The rapidly-changing requirements of the software world demanded shorter product life-cycles, and XP delivered. At its core, XP replaced one long development cycle, with multiple, shorter development cycles, in an effort to reduce the cost of changing requirements. It encouraged “timeboxing,” where a release schedule was separated into numerous time periods, each with its own individual deadline, budget and set of deliverables. XP advocates argued that incremental changes and frequent, small releases gave the customer a greater control over their system during the development process. Other distinguishing features of XP include pair programming – where the driver types the code, and the observer/navigator reviews the code – and a focus on code review and unit testing of all code. However, XP wasn't a buzzword for everybody: critics pointed out that this focus on incremental releases often resulted in the lack of a clear, overall design and that this, combined with allowing customers to request changes informally and define requirements incrementally, could result in unnecessary redesigning effort – although it did give the customer increased flexibility. XP also encouraged developers to focus on coding for the needs of today, rather than the possible future needs of tomorrow; a short-sightedness that critics accused of resulting in systems having to be updated, whenever new requirements inevitably arose. By 2003, Matt Stephens and Doug Rosenberg had published 'Extreme Programming Refactored: The Case Against XP' which added further fuel to the debate on the relevance of XP. One year later, in 2004, Industrial Extreme Programming was introduced in response to some of the challenges XP critics were reporting when faced with the traditional XP approach, particularly when working with large teams. Industrial Extreme Programming revamped Extreme Programming's original 12 practices, and extended it with new management and learning practices. Industrial Extreme Programming currently consists of 23 practices. Nowadays, we still speak about 'Agile,' but rarely about Extreme Programming, but is XP even relevant, in 2011? In this issue of Java Tech Journal, XP enthusiast and Certified Scrum Master, Chris Jones introduces us to XP and shares advice on how to get the most out of applying this approach to your own projects; while Jeff Langr, author of 'Agile in a Flash' and 'Agile Java,' deep dives into the nuts and bolts of XP, with 'Succeeding With and Sustaining TDD.' Laurent Bossavit, head of Institut Agile, addresses the big question of XP's relevance in 2011, in 'Software Design: the Endangered Lessons of Extreme Programming.' And, for those who believe Extreme Programming is no longer relevant, author of 'Extreme Programming Refactored: The Case Against XP' Doug Rosenberg has provided us with an obituary for XP!