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:
