The scrum development and
extreme programming as we all know are two very great and popular agile
software development processes.
The common thing between the two is that both
of these are agile processes, but on the other side there are a lot of
differences too!
In this article we are going to discuss the same i.e., what
are the differences between extreme programming and scrum? There is no doubt in
the fact that the two processes are very well aligned with each other!
It often
happens while following one of these processes that if you been following
extreme programming you will feel as if you had been following scrum throughout
the development process and vice versa.
Differences between Scrum & Extreme Programming
The differences between the
extreme programming and scrum are quite subtle but they are important things
which distinguish between the two processes from each other. Below mentioned
are some of the differences between the scrum and the extreme programming:
Difference #1:
- The first subtle difference between the two is the duration of the iterations.
- In extreme programming the
iterations are usually short i.e., one or two weeks long.
- On the other
hand the scrum iterations are quite long and may range from several weeks
to months. The sprint is the name given for the iterations carried out in
the scrum methodology.
Difference #2:
- In scrum, any changes during the development process are not
supported by the scrum and neither do any changes are allowed in the
iterations or sprints.
- Once the sprint planning meeting is completed and
it is decided to deliver a set of product back log items, the plan is not
altered till the very end of the sprint.
- In contrast to scrum, extreme
programming iterations are known to be quite flexible since they allow
changes to be incorporated in to its iterations.
- But the changes can be
made only if the team has not started working on a particular feature. And
also the feature to be changed must be of the equivalent size of the
feature that is to be replaced and has not been built up.
Difference #3:
- Extreme programming, has been known to work strictly
in the order of the priority assigned to the various features and aspects.
- These features and functionality had already been prioritized by the
customers.
- The customer is not considered to be the whole owner of the
extreme programming product, whereas in the scrum it is do considered.
- In
the scrum development, the features are not prioritized by the customer
instead the customers prioritize the product’s back log items.
- It is then
the responsibility of the development team to determine the sequence for
the development of the back log items.
- In the extreme programming, the
development always starts from the highly prioritized features and
functionality.
- In scrum, the developers think that starting from a highly
prioritized feature is not always a good option. They think that working
up on low priority items makes more sense.
Difference #4:
- Under the concept of the scrum development process, no
particular engineering practices have been stated.
- But the extreme
programming does prescribes some engineering practices like the TDD or
test driven development, automated testing, simple designing, programming
in pairs, refactoring and so on.
But following the same practices is not
always desirable! It is needed that the teams should incorporate their own
values.
The above mentioned
differences are quite small but they do make considerable set of difference and
can have a profound impact on the development team.
The extreme programming
works well when it is not mandated and the teams are left to discover their own
practices. Scrum methodology when worked out with time boxed iterations and
additional focus can work wonders.
No comments:
Post a Comment