DEV Community

loading...
Cover image for 5 Essential Extreme Programming (XP) Resources

5 Essential Extreme Programming (XP) Resources

Alex Kates
Senior Software Engineer at https://creditgenie.com.Passionate about full-stack JavaScript, AWS Serverless, and Extreme Programming.
Updated on ・5 min read

Extreme Programming (XP) is a software development methodology that promotes communication, simplicity, feedback, courage and respect in order to create higher quality software and maximize quality of life for developers.

The following resource list is not comprehensive by any means. It does however serve as an essential starting point for your XP adventures.

1. Extreme Programming Explained

Extreme Programming (XP) is about social change. It is about letting go of habits and patterns that were adaptive in the past, but now get in the way of us doing our best work.

Kent Beck - Extreme Programming Explained

First on our list is Extreme Programming Explained by Kent Beck. Where better to start than the godfather of XP, Kent Beck? Beck's body of work, including Extreme Programming Explained, is considered by most to be the system of record for XP.

First written in 1999 and revised as a 2nd edition in 2004, Extreme Programming Explained is a comprehensive catalog of the what and why of XP. It includes deep dives into the values, principles, and practices that are hallmark of XP.

If you are just starting your XP journey, Extreme Programming Explained is a great place to start. Also, check out the story of the Chrysler Comprehensive Compensation System (C3) for a great origin story of XP.

2. Planning Extreme Programming

We don't plan so we can predict the future. Business and software are changing too rapidly for prediction to be possible. Even if it were possible to predict what we needed in three years, it wouldn't necessarily help because between now and then we need so many different things.

Kent Beck, Martin Fowler - Planning Extreme Programming

Our next essential resource is Planning Extreme Programming. Written in 2000, Kent pairs up with another XP legend Martin Fowler to dissect all things XP and planning, including:

  • Estimating scope, time, and effort for user stories
  • Prioritizing user stories
  • Balancing the business value and technical risk of user stories
  • What to do when you’re not going to make the date

While Planning Extreme Programming is a book written about planning, it isn't just for planners. XP teaches us about the value of whole-team and how important it is when it comes to planning. Planning Extreme Programming is a must-read for developers and project managers looking to adopt XP.

3. Extreme Programming Installed

Extreme Programming is a discipline of software development with values of simplicity, communication, feedback and courage. We focus on the roles of customer, manager, and programmer and accord key rights and responsibilities to those in those roles.

Ron Jeffries, Ann Anderson and Chet Henrickson - Extreme Programming Installed

Next up is Extreme Programming Installed by Ron Jeffries, Ann Anderson, and Chet Hendrickson

Extreme Programming Installed is a practical guide to XP with emphasis on roles and their rights/responsibilities with an XP team. It lays out in a bill of rights way, the Manager, Customer and Programmer roles and their respective rights. For example

Manager and Customer Rights

  1. You have the right to an overall plan, to know what can be accomplished, when, and at what cost.
  2. You have the right to get the most possible value out of every programming week.
  3. You have the right to see progress in a running system, proven to work by passing repeatable tests that you specify.

Programmer Rights

  1. You have the right to know what is needed, with clear declarations of priority.
  2. You have the right to produce quality work at all times.
  3. You have the right to make and update your own estimates.

4. The Art of Agile Development: Pragmatic Guide to Agile Software Development

Have you ever heard a musician playing scales? That's an étude. An étude teaches mastery through precise and careful repetition. Eventually, the étude is abandoned, but the skills remain. Extreme Programming is our étude for software development.

James Shore and Shane Warden - The Art of Agile Development

If I could only recommend one XP resource, it would be The Art of Agile Development by James Shore and Shane Warden.

I'll admit, I'm a bit biased. James Shore was my first exposure to XP back in 2013 where I was lucky enough to join a team that had brought him in to coach them directly in XP.

Released in 2007, The Art of Agile Development is responsible for transforming countless developers into XP practitioners. For me, it's the book that is always on my desk and has 20+ sticky note bookmarks.

The Art of Agile Development emphasizes étude as a tool to mastery. Imagine an infield baseball player taking fielding practice, or an archer shooting arrow after arrow at a target, études offer a way for developers to practice and master skills such as test-driven development, refactoring and iterative design.

5. Test-Driven Development: By Example

If courage is a core value of XP, then Test-Driven Development (TDD) is the garlic that makes you brave enough to fight off the proverbial software vampire known as change.

Rounding out our list, Kent Beck returns to deliver Test-Driven Development, the quintessential guide to practicing TDD. Beck guides us through real world domain problems and how TDD can be used to fearlessly iterate and refactor. While the tools and technologies may be a bit dated, the core tenets still hold, even in the 2021 ever changing web development world.

Bonus Material

While the following resources didn't make the essential list, they are fantastic in their own rights. I highly encourage you to check them out!

Also, if you are now hooked on XP and are near the Philadelphia area, please check out https://www.meetup.com/PhillyXP/

That's it folks! Hope this article sparked an interest in XP for you.

Feel free to follow me https://twitter.com/thealexkates

Discussion (0)