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 the 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 the 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 hallmarks 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
- You have the right to an overall plan, to know what can be accomplished, when, and at what cost.
- You have the right to get the most possible value out of every programming week.
- You have the right to see progress in a running system, proven to work by passing repeatable tests that you specify.
Programmer Rights
- You have the right to know what is needed, with clear declarations of priority.
- You have the right to produce quality work at all times.
- You have the right to make and update your own estimates.
4. The Art of Agile 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 - The Art of Agile Development
If I could only recommend one XP resource, it would be The Art of Agile Development by James Shore.
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.
Originally released in 2007, with a 2nd edition released in 2022, 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.
Update: James has released The Art of Agile Development: Edition 2 in January 2022.
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!
- http://agileotter.blogspot.com/
- https://anthonysciamanna.com/blog/
- https://benjiweber.co.uk/blog/posts/xp/
- https://www.agilealliance.org/glossary/xp
- https://www.cprime.com/resources/blog/key-xp-practices/
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