First principles are long forgotten in world of Agile with Scrum, SAFE, LESS, Kanban etc taking preference but yet the common XP practices are still useful for PMs to understand and utilize.
Start here if you are completely new to XP practices and XP roles where we expand on each role from the below diagram:
In my opinion the problem with extreme programming it was too extreme. I’m a big fan of taking things in moderation and small continuous changes. I’m always looking for ways to improve my teams delivery results.
Evolution of Agile
Recently I have reading up on Lean Software Development and it reviewed the evolution of Agile very well….
Extreme Programming contained the roots of technical disciplines such as continuous integration and automated testing.
Scrum emphasized iterations.
Kanban improved flow management by limiting work-in-process.
Twenty years is a long time in a rapidly moving field such as software, and in those two decades. Extreme Programming has faded from sight even as its practices became widely accepted and expanded.
Adding XP Practices to Your Agile Toolbox
This lead me to investigate what are practices from XP I should add to my Agile Toolbox. These are the first 7 click below to see the others….
- Planning Games: Quickly determine the scope of next iteration by taking into consideration business priorities and estimates.
- Small Releases: Deliver quickly and early by having short iterations, first create a minimum marketable feature and release new versions based on feedback.
- Metaphors: When encountering difficult and complex problems, it may be just as hard to solve the problem as it is simply to define the context of the problem in a well-posed way in order to solve it.
- Simple Design: Just-enough-design policy ie. exact specifications just for that story. Extra complexity removed once discovered.
- Testing: Develop test cases first, then code to test cases, then automate test cases.
- Pair Programming: 2 developers working on 1 story where 1 drive and the other 1 navigate where they would continuously switch roles.It’s also not as simple as “two people working at a single computer”, so many dismiss it quickly when it feels uncomfortable. However, in our experience, pair programming is vital for collaborative teamwork and high quality software.
- Re-factoring: Restructure complex/poor structured code without effecting behaviour, aims to remove duplication, simplify or add flexibility.
Do you know the last 5 Extreme Programming Practices/Ceremonies you can use today on your project?