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.
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.
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
- 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.
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
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
- 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.
- 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.
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
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.
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.
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