This article briefly talks about popular Agile methodologies Scrum and XP, and how both these frameworks have been merged into ScrumXP—giving you the best of both worlds!
Scrum is the leading Agile framework practiced in the industry today. It follows an iterative approach where development cycles are 2 /3/4 weeks long. At the end of every iteration an incremental version of the product/solution is ready to be shipped.
Scrum prescribes events / ceremonies and specific roles within the team in order to achieve alignment and agility.
XP is one of the earliest ,most successful and proven Agile Methodologies. It is very specific regarding the practices to be followed. XP is recommended to be used when the Customer is fully committed to deep involvement with the development team. XP teams rapidly produce software in short(mostly one week) iterations taking immediate feedback from the Customer.
XP mandates certain core Engineering practices that distinguish this Agile methodology from the others. These practices take care of different aspects of agility and are interconnected at the same time. They are grouped as below.
Fine scale feedback
|Whole Team||All the contributors to a project – Developers, Testers, Analysts, Coaches etc who are part of the Project are part of the “Whole Team” that is centered around the Customer.|
|Planning Game||The Customer presents the desired features and lays out an initial plan for the project. XP teams revise the release plan regularly.|
During Iteration Planning, the Customer presents the features desired for the next two weeks. XP teams build software in two-week “iterations”, delivering running, useful software at the end of each iteration.
The total involvement by the Customer during Planning is an important practice of XP.
|Pair Programming||All production code is touched by two team members. This ensures there is already another “reviewer” at work as the code is getting produced. This practice largely avoids bugs and coding errors.|
|Test Driven Development||Test before code is religiously practiced. Before a single line of code is written, a test for the same has to be written and run. This immediate and short feedback loop immensely helps to avoid waste, like bugs and wrong code.|
|Customer Tests||Acceptance Tests are defined by the Customer to validate if the features that are being introduced are fit to the purpose. The team automates these tests and builds a suite of such tests to run whenever required and to get immediate feedback from the system to check if all is well.|
|Continuous Integration||Continuously integrating the code avoids the major problems that creep up when it is done just before the release. Testing on a fully integrated system helps to detect critical bugs that might otherwise stay undetected for long.|
|Design Improvement||Design Improvements and Refactoring happens at healthy intervals to ensure system is cohesive and loosely coupled. This ensures the system can be easily extended with new features, scaled when required and maintained in good health.|
|Small Releases||Working Software is delivered to Customer at the end of every iteration – either for actual use or evaluation and to obtain feedback.|
|Coding Standards are practiced so that there can be collective ownership and any team member will be able to understand the code.|
|Pair Programming and Coding Standards ensure that code is not owned by one single person and is the responsibility of the team.|
|Design is kept simple and continuously improved and revised to cater to the current functional demands. Design is not done up-front but done at regular intervals.|
|XP teams use a common system of names to ensure a common understanding of the system.|
|Programmer welfare||Sustainable Pace||XP ensures the team members work at a pace that can be carried out for a very long time. |
The system avoids situations where the team members are left wanting for work at times and then have to scramble to finish deadlines.
Scrum and XP are two popular Agile Methodologies having the same larger goal of delivering to the customer incrementally and iteratively. Both the methodologies lay great importance to customer centricity, feedback mechanisms, continuous improvement and building sustainable empowered teams.
There are few differences in the implementing mechanisms of these methodologies.
The Customer continuously interacts directly with the Teams in XP, while in Scrum the Product Owner represents the Customer and Business.
The XP teams ensure to deliver a working bug free system at the end of every iteration. Customer chooses to evaluate and provide feedback or Release to the end users. Scrum teams deliver working software at the end of every iteration. The Product Owner with the input from teams decides on the right time for General Availability (GA) Release depending on the Market Readiness, Customer input etc.
Scrum recommends that items planned within a Sprint are unchanged until the end, but in XP, teams accommodate a sudden change of priority even during the iteration, by swapping items if work has not started on it.
When there are two great practices, there is always a tendency to combine both and get the best of both the worlds. “Lean-Agile”, “Scrumban”, “ScrumXP” are some examples of hybrid terms that have become increasing popular by combining two philosophies (e.g Lean and Agile ) or two methodologies (e.g Scrum and Kanban / Scrum and XP).
ScrumXP is a hybrid practice making the most of both Scrum and XP. XP has laid out some very effective Engineering practices that teams practicing Scrum can greatly benefit from.
Many teams practice Scrum as their process framework and include the very effective and efficient core Engineering XP Practices in their way of working. This gives rise to the highly productive ScrumXP hybrid model of working. Mostly the ScrumXP teams retain the Scrum Master and Product Owner roles within their teams to take care of the required orchestration and facilitation.
“Team and Technical Agility” is one of the key competencies of SAFe. By following ScrumXP the SAFe teams take care of the team Agility through Scrum Practices and Technical Agility through XP Practices. The robust Engineering practices of XP ensures the product being built is of very high quality, easily extendable, maintainable and sustainable.
In conclusion, ScrumXP provides the best of both worlds. Teams can begin with Scrum and continuously improve by including the robust core XP Engineering practices like TDD, pair programming, code refactoring etc— not because it is mandated but because they find it effective. Although, interaction with the Customer is through a Product Owner, the Scrum teams can borrow the Customer Centric approach of XP to remain aligned with Customer expectations.
Your email address will not be published. Required fields are marked *
A question I’m asked in many of my training sess... Read More
According to the Agile Alliance, Agile is the “a... Read More