Today I joined a company that claims to practice Extreme Programming (XP). It was one of the aspects that excited me about the job. Most of my last positions have had no formal development methodology, at best they could be described as "chaotic." However, I just learned that the main XP proponent was the guy I'm replacing (he left to pursue other opportunities).
Its a rather small shop (<10 developers) and from what I can tell the current team is happy with XP, but they aren't whole-hearted devotees. They do seem committed to some of the XP practices, though, even if the team hasn't totally swallowed the XP kool-aid.
As someone who's never worked in an XP environment, I'm wondering how I should approach this situation. Is XP a methodology that can be partially implemented? What aspects are the most important and which can be cast aside? Are there subsets of XP that work better than others?
Finally, is XP self-sustaining or does it need a strong advocate inside the team to nurture and encourage it?