Similarities & differences between Scrum & Extreme Programming (XP)

Tram Ho

Scrum & Extreme Programming (XP) are both Agile frameworks, all geared towards building products with shorter release cycles, better product quality, & increased self-managed capabilities of the development team. on Agile fundamentals.

Both frameworks are developed based on sprints, each sprint has a fixed length, has sprint backlog, sprint goal & includes Agile activities such as daily meeting, sprint planning, retro sprint, sprint review. However, XP reinforces the product quality by applying many development practices in the development process, such as TDD, pair programming, refactoring.

1. Basic differences

The basic differences between Scrum & XP can be summarized as follows

Comparison factorScrumXP
Sprint lengthA sprint can take 1-4 weeksA sprint lasts only 1-2 weeks. XP focuses on fast and continuous release
Ability to change the sprint backlogMinimize changes occurring after the Sprint Planning & Sprint Goal has been completedSprint backlog items can be changed, added / removed, as long as the development team hasn’t arrived yet; The newly added backlog item must be the same size as the old backlog item
The priority of User Story affects the order of executionPO gives priority to each User Story, but the development team will decide the order of execution during the Sprint, as long as the Sprint Goal is achieved.Order of development must be in accordance with the order of priority of User Story set by PO / Customer
Apply programming practicesThere is no requirement for the development team to follow any specific programming practicesStrictly require programming practices to ensure compliance with product quality & Continuous Delivery.

2. Position (roles) in each framework

Scrum includes 3 positions: Product Owner, Scrum Master & Development Team. Inside:

  • Product Owner: required position, who has a decisive voice for the product backlog & release plan. The product owner is responsible for building and completing the product backlog, building a release plan, ensuring that the product develops in the direction of bringing optimal value to users.
  • Scrum Master: an optional position, playing the role of a coach / mentor to build an Agile culture, maintain and optimize the Agile process in general in the organization as well as in each development team.
  • Development Team: Mandatory position, including all members working full-time to develop products, regardless of positions of developer, tester, designer, etc.

XP includes 6 positions: Tracker, Customer, Developer, Coach, Tester, “Doomsayer”

  • Tracker: plays a role in tracking project progress & detecting problems that developers face. Tracker chats with each developer 1-2 times / week, talks with them about progress & listen to what difficulties developers share. When detecting a problem affecting progress, Tracker can approach Customer, Coach, or other developers to find solutions.
  • Customer: Similar to the Product Owner in Scrum, Customer is the product backlog manager, writes User Story, sets the priority for the backlog item.
  • Developer: is the one who receives the backlog item from the Customer & deploys the backlog item
  • Tester: is the person in charge of testing, ensuring product quality
  • Coach: is the person who watches the development team, manages people & quality, guides members to follow the programming practices of XP.
  • “Doomsayer”: this can be a member of XP, or a feature; any member in any position in XP, if capable of detecting, monitoring, and warning of risks, can be called “Doomsayer”

3. Some basic programming practices in XP

  • 10-minute build: Under ideal conditions, every new build in an XP-applied project can run an automation test & complete the build in 10 minutes.
  • Continuous integration: XP requires a good CI / CD application to deliver daily & weekly while still ensuring product quality & stability.
  • Customer tests: XP requires that the position of Customer is always ready to test daily updates, providing the earliest feedback for the development team, ensuring the achievement of Sprint Goal & implementation. function as expected by Customer
  • Pair programming: Although it is a bit expensive to have two developers doing the same work, XP still encourages the use of pair programming; the benefit of pair programming is early detection of bad code (live code review) before sending it to testers / users, and at the same time, it is better to ensure that the definition of Done is achieved when 2 developers are interacting. job
  • Sit together: If Scrum works well even with remote teams, then XP encourages the development team to sit together in the same space to increase interaction and reduce the risk of communication limitations.
  • Slack: always devote a certain amount of effort in each sprint to improve quality such as refactoring, writing unit tests for old code, handling outstanding technical debt, etc.
  • Small release (Small release): The good application of CI / CD allows development teams under XP to continuously release small updates to the prod environment & receive early feedback from users.
  • Using User Story (Practicing of stories): Similar to Scrum, the backlog item in XP is managed in the form of user stories. The planning, breakdown, estimation, and acceptance are also based on User Stories
  • Sustainable pace: instead of controlling the members’ work in the traditional “8 hours a day”, XP encourages maintaining a steady, sustainable pace for long periods of time, by dividing reduce the working hours of the day into intervals, with a short break between each interval, after many intervals with a long pause. This is similar to the principle of running a marathon, helping the development team to not burn out
  • Sprint one week (Weekly cycle): the basic practices of XP. Every week development team & Customer sit down to plan development for the next week & review the work of sprint before

https://www.visual-paradigm.com/scrum/extreme-programming-vs-scrum/ https://explainagile.com/agile/xp-extreme-programming/roles/ https://explainagile.com/agile/ xp-extreme-programming / practices /

Share the news now

Source : Viblo