For most people I meet, Agile is synonymous with Scrum. While I have taught and used Scrum, my own background is in XP (eXtreme Programming). At the heart of XP are twelve practices – four which govern the relationship between business and technical interested; four which govern the way developers interact as the produce code, and four which govern the actual process of writing code.
These practices are interdependent and mutually supportive; and when adopted they help organisations to combine high productivity and high quality. Here they are:
1) In order to produce software that is easy to change, we code and design simply.
2) In order to find an optimal design, we refactor mercilessly.
3) In order to ensure the code we write communicates ideas clearly, we emerge and follow coding standards
4) In order to enable clear communication about the ideas surrounding the code, we develop a common vocabulary
1) In order to prove that the code words as it should, we adopt test-driven development.
2) In order to spread knowledge, ideas, and experience, we adopt pair programming.
3) In order to spread the responsibility for the code across the whole team, we adopt collective code ownership.
4) In order to reduce the impact of adding new features, we integrate continually.
1) In order to address the business concerns accurately and directly, we include a customer in the team.
2) In order to schedule the most important work, we play the planning game.
3) In order to return the customer’s investment often, we release regularly.
4) In order to combine satisfaction and results, without incurring exhaustion, we work at a sustainable pace.
Some of these practices support others, and some require other practices as prerequisites.
An effective agile implementation will incorporate all of them.
By Stephen Nelson-Smith