'''''XpPitfalls''''' * '''Problem:''' People on your team (customers, managers, developers) '''say''' they are willing to do XP, but secretly don't want to do it. XP is too much work to expect people to do if they don't really want to do it. Solution: If you are not in charge: run away! You're never going to convince them. Solution: If you are really, truly in charge: fill your team with people who really do want to do XP. (Even if you are in charge, you probably can't force people to do XP right.) Solution: enforce DailyBuilds and FrequentReleases first. These apply pressure to other activities, extreming them. * '''Problem:''' You think you understand XP, but you don't. Solution: Hire an outside consultant to visit your team from time to time and tell you how you are really doing. Since you can't know that you don't understand XP, this should be a requirement of all XP projects. * '''Problem:''' You over-apply the implementation of your previous XP process to your next project Solution: Remember the principles and values of XP -- in particular ''Simplicity.'' Always start simply. Don't confuse a local solution with a general practice. Keep your last n project's practice implementation in your tool box until you need them. Never assume you know the best way to do something. Treat each way as '''a''' way, not '''the''' way. ---- '''Problem: I know I don't understand XP''' I know I don't fully understand XP, but the XP literature seems to be focussed more on catch phrases rather than on the details of running an XP project. I don't have the budget to hire an outside consultant for my team, nor believe that I could justify this expense to my customer (the customer is not really concerned with how we develop the software, but is concerned with the cost). I have flexibility in scheduling, but I cannot afford to waste a lot of time stumbling through XP and not providing some sort of deliverables. '''Problem: I am in charge, but do not want to micro-manage''' XP requires a lot of discipline and I do not have the time and temperament to continuously monitor my developers. Most developers a very comfortable with just writing some code (they know it is right) and having an extended "testing" phase while I have to justify schedule slips.