Why is the most common Agile software development approach a hybrid of Scrum and XP?
Why do you think its a good idea to use them together?
(if I am not aloud to ask for opinion based question please lock or delete this thread thanks)
Scrum doesn't mandate (or even suggest) any specific engineering practices so teams often adopt TDD, Pairing, Continuous Integration etc from XP.
It's probably be more accurate to say the most common agile implementations use the Scrum framework for defining how work is specified and the process with which features are delivered while making use of XP engineering practices.
This article by Mike Cohn discusses some of the similarities and differences between XP and Scrum in more detail. http://www.mountaingoatsoftware.com/blog/differences-between-scrum-and-extreme-programming/
Scrum defines three roles, three rituals and three artefacts. It is not a thorough software development methodology, but a minimal product development framework. While its phrasing is focused on software, what it actually defines is a power equilibrium between different stakeholders developing a product, and specifications on interactions and feedback to regulate it.
XP (eXtreme Programming), on the other hand, is a software development methodology. It is often confused for the set of engineering practices it mandates (pair programming, test-driven development…), even though it also defines elements that fall into the product development category, such as the Planning Game.
As such, it is indeed very common for software development teams to integrate (a subset of) XP’s engineering practices in (too often a subset of) the Scrum framework because the two aim at solving different problems.
They can thus be used together because the mandated practices are orthogonal: XP’s engineering practices only impact the Team, but don’t change this Scrum role’s definition, nor the other way around. And they are used together simply because both have proven very efficient.
In my opinion mixing methodologies is a natural case where there are tools for particular purposes. And when new purpose arise which has none of the techniques mapped anyone can try to mix existing ones and adopt. Scrum is more of a process toolset covering many aspects and parts of software development. While XP is more of a manufacturing related toolset bringing values for smaller area of application.
Also, I would suggest looking into Scrumban. It has mature results of mixed practices which serve very unique needs for dynamic and SMB companies.
Scrum is a framework.
XP consists of a number of techniques that you can apply on top of that framework.
While XP is popular, you're not limited to using XP. You can choose whichever technique works best for you.