How to Combine Agile and XP
The issue of combining various software development methodologies is now widely discussed among the programmers. For a software developer it is quite natural to search for the best solutions for his projects. However, some inexperienced programmers formulate their wishes improperly and try to combine things that are quite similar and represent the same approach to software engineering. For example, we can often hear the question: “How to combine Agile and XP?” Let’s try to answer it properly and provide some necessary information about these two methods.
Agile is an extremely popular approach to software development that originated in the 2000s. A group of ambitious and experienced developers invented it to solve the important issues of software development related to the ineffectiveness of the traditional Waterfall methodology. They have formulated twelve Agile principles. In this article we will describe only the main of them: strong communication, high degree of customer involvement, and iterative structure of projects. Strong communication inside of Agile teams is required because they are small. All their members are interchangeable. Each of them has to perform the tasks of a project manager, a developer, and a tester. That is why communication is the main feature that leads Agile teams to success. High degree of customer involvement allows Agile teams to achieve high user acceptance of their products. The customer always knows what he wants, that is why he participates in all team meetings and discusses his requirements with the developers. Iterative structure of projects is necessary to meet all customer’s requirements. The intermediate products are introduced to the client after each iterative cycle, so he can see the progress of the project.
Today Agile approach includes several software development methodologies. Extreme Programming is only one of them. However, some software developers consider it the most effective Agile methodology. That can be explained by the fact that XP is aimed at delivering high quality software products within the shortest amounts of time. A typical Extreme Programming project lasts only several months. XP shares all Agile principles like strong communication, customer involvement, and iterative structure of projects. However, such teams are often different from the teams of other Agile methodologies. They include some roles of traditional software development methods like analysts, testers, and project managers. These roles are necessary to make the teams work faster, because speed is a very important factor for Extreme Programming developers. XP is also famous for its exotic practices like pair programming and test-driven development. They are used to make the work of Extreme Programming teams more effective.
As already mentioned above, Extreme Programming shares all Agile principles, so there is no sense to combine it with Agile. However, it still can be combined with other Agile methodologies like Kanban or Scrum.