* Is there an optimal order in which to adopt Extreme Programming practices? * Are there practices that work out better if other practices are previously adopted? ---- MercilessRefactoring requires UnitTest''''''s. SimpleDesign requires MercilessRefactoring. CollectiveCodeOwnership needs tests, to give people courage to edit any piece of code. CollectiveCodeOwnership is supported by PairProgramming, which increases familiarity with the code. PlanningGame is supported by OnsiteCustomer. UserStory on cards needs OnsiteCustomer. ---- ''UserStory on cards needs OnsiteCustomer.'' Could you expand on this relationship? I just don't see it. ''A user story is a short summary of what needs to be done. The OnsiteCustomer is there to provide more detail, should it be required.'' ---- There are really two different questions here. * What is the best order to propose practices to an organization isn't aware of, or receptive to XP as a whole? * What is the best order to implement the practices for an organization that is eager to try out XP? In the first case, PairProgramming and OnsiteCustomer would be the last (or among the last) practices that I would suggest. In the second case, these would be among the first. In either case, CollectiveCodeOwnership and UnitTest''''''s would top my list for practices to start early. ---- It would seem to me that UnitTest''''''s are the core to anything and should be the first practice adopted, especially with existing code. ---- It really depends on your situation, amount of legacy code, schedule, etc. For projects already underway, the business/development interaction practices make an ideal starting point. The programmers need to get practice pairing and estimating, and they have to make sure that their build situation is under control. After that, you need to know what you are delivering and that you aren't breaking things (testing), then you can concentrate on being terrifyingly effective in code. People doing greenfield have more possibilities. -- MichaelFeathers ---- See * StartingWithExtremeProgramming * ExtremeProgrammingEnablingChart * MigrationToXp * AdoptingXpPatternLanguage * DryExtremeProgramming * ExtremeProgrammingImplementationIssues ---- CategoryAdoptingXp