Scrum is lightweight framework for building a product where there is high levels of complexity and uncertainty. It is NOT a methodology, as methodologies and practices can be chosen and used in conjunction to Scrum. It is not purely aimed at software development and can be used by other types of projects too.
When it comes to software engineering, Scrum does not define what practices to follow or methods follow as it does not want to prescribe what is best for that particular product and environment.
Many Scrum teams use several XP practices such as Testing, Feedback, Pair Programming and Simplicity.
The core differences
- Scrum plans for a sprint and does not encourage change. XP is more open to change.
- XP solicits feedback immediately and Scrum at least at the Sprint Review, however Scrum does not reject early feedback if possible.
- XP focuses on programming, Scrum can be used in non software products
- Scrum does not define how to do development, but many Scrum teams implement many of the XP practices