Sunday, 25 September 2016

Agile Methodologies – Extreme Programming + Scrum – A Current Trend

Readers, of late Agile Software Development is gaining momentum with many organizations adapting the agile practices as made suitable to their requirements. Several Agile methodologies came into existence with each one focusing on a strategy that helps the organizations meet their objectives. Hence, the choice of an agile methodology should be at par with the organization’s goals. I will discuss the latest Scrum + Extreme Programming hybrid trend in this post.

Extreme Programming
Extreme Programming (XP) was developed by Kent Beck focusing on using the industry best practices and taking them to extreme. Extreme Programming is one of the earliest Agile Methodologies that is continuously evolving. Extreme Programming provides a flexible framework that can be fine-tuned to a specific methodology.

Extreme Programming Practices
Kent Beck defined the following Extreme Programming Practices in his Book – Extreme Programming Explained.
·         The Planning Game
·         Short Releases
·         Metaphor
·         Simple Design
·         Testing
·         Refactoring
·         Pair Programming
·         Collective Ownership
·         Continuous Integration
·         40 hour Week
·         On-site Customer
·         Coding Standards
These practices are interdependent and achieve the Extreme Programming objective – is any of the practices is weak, the strength of the other practices makes up for it.

Evolving Extreme Programming Practices
The Extreme Programming practices are continuously evolving and are found to be effective in the other agile methodologies also. Some examples of the evolved practices are the following:
·         On-Site Customer is evolving into Whole Team
·         The Planning Game is evolving into Release Planning and Iteration Planning
·         Testing is evolving into Acceptance Testing, Unit Testing and Test-Driven Development
·         Refactoring is evolving into Design Improvement
·         40-Hour Week is evolving into Sustainable Pace

Remember that any of the Extreme Programming Practices that you choose should be implemented be implemented without compromising on their values. Otherwise, you cannot claim that you are using Extreme Programming.

The recent trend in Extreme Programming is in the use is Scrum + Extreme Programming Hybrid.

Scrum
Scrum is a popular and widely used agile methodology. In Scrum, the development work is broken down into Releases that are accomplished in time-boxed short iterations called Sprints. In every Sprint, only the required and sufficient functionality that is prioritized by the Customer that you can deliver by the end of Sprint is taken up and is termed as Backlog Items. The developers and the testers are involved in every activity from the beginning to the end. Acceptance Criteria is defined as agreed with the customer at the beginning of the Sprint itself and continuous testing will be adapted. A working product increment is released at the end of every sprint.

Scrum, as with the case of any development methodology, is effective in certain situations, but has its own shortcomings.
·         The time-boxed Sprints will not allow any flexibility in the Release schedule that hampers both development and testing
·         Scrum, on its own do not give directions for development, and assumes that the agile manifesto is truly followed.

Hence, Scrum is usually combined with other Agile Methodologies that focus more on the Development Strategies.

Scrum + Extreme Programming Hybrid
Scrum is found to be more effective if incorporated with Extreme Programming Practices that are complimentary in nature. While Scrum focuses on the fixed scope for Sprints, Burn-Down charts, etc., Extreme Programming focuses on the aspects such as continuous communication, frequent feedback loops, refactoring, collective ownership, continuous integration, Test-Driven Development, etc. This hybrid is producing anticipated results, as
·         Scrum being a defined methodology, can be adapted from day-one of the project
·         Extreme Programming focusing on communication and team cohesion, enables the team to get more focused on the development

Scrum + Extreme Programming Hybrid Tools
SpiraTeam Tool and Rapise Tool can be used for Scrum + Extreme Programming hybrid projects.
For details, refer:


No comments:

Post a Comment