difference between Scrum and Extreme Programming

Posted: August 3, 2010 in Technology

Agile Process

The Agile Process or software development refers to a set of software development methods which are based on iterative development. In this process, the solutions and requirements both evolve mutual collaboration between cross functional teams. These teams are self-organizing in nature.
The Agile software development approach usually promotes a regimented kind of project management process which encourages:
1. Frequent adaptation and inspection
2. Self-organization and accountability
3. A leadership philosophy which promotes teamwork
4. A business approach which bring into line the development with customer needs and company goals
5. And a group of best engineering practices having an intention to allow for rapid delivery of good-quality software.

Extreme Programming (EP)
It is a software development methodology with an intention to enhance software responsiveness and quality to the volatile requirements of customers. Being a type of Agile process, it promotes frequent releases in small development cycles. This introduces checkpoints and improves the productivity in a way that the new requirements from customers can be adopted.
The advantages of Extreme Programming are:
1. Unit testing of all code
2. Avoiding programming of features until needed
3. Programming in pairs or carrying out extensive code review
4. Clarity and simplicity in code
5. Volatile customer requirements better understood
6. A flag management structure
7. Frequent communication between the programmers and even with the customer
The drawbacks of Extreme programming are:
1. No documented compromises of user conflicts
2. Unstable requirements
3. Lack of overall design document or specification
4. Incorporates inadequate software design
5. Necessitates meetings at recurrent intervals at huge expense to customers
6. Can enlarge the risk of scope creep due to the lack of thorough requirements documentation
7. Requires excess of cultural change to adopt.


Scrum is an incremental, iterative framework for agile software development and project management. The word “Scrum” is not really an acronym. However, many companies using this methodology spell it with capital letters. Initially Scrum methodology was focused for management of software development projects, but in recent times it can be used to run general program/project management approach or software maintenance teams. Scrum, which contains sets of predefined roles and practices, is a process skeleton. Main roles in this method are:
1. Product Owner – Represents Stakeholders
2. Scrum Master – The one responsible for maintaining the processes
3. Team – A cross functional group of about 6-8 people who do actual design, testing, implementation, etc.
Each of the iteration is called a “sprint”, typical time frame for which is normally about two to four weeks. The length of each sprint is decided by the team. The product “backlog” pushes the set of features into a spring. These features are prioritized set of higher level requirements for the task to be carried out. Based on this product “backlog”, the team determines how many of the items can be completed in the next sprint. Once the sprint begins, nobody is allowed to alter the sprint backlog, which means that the set of requirements are frozen. On successful completion of a sprint, the team demonstrates the usage of that particular software.
This methodology should be encouraged in organizations since the major advantage of using the Scrum is that it enables the creation of teams which are highly self-organizing in nature. This is achieved by encouraging verbal communication amongst the team members, co-location of all the team members and disciplines which are involved for the project.

Differences between Scrum and Extreme Programming(EP):
1. The time span for iterative sprints is different in both approaches.
2. Changes are not allowed by the Scrum teams during their sprints. Whereas Extreme Programming teams have to be much more agreeable to changes.
3. Work is done by EP teams in strict priority order. Whereas in case of Scrum, the product owner prioritizes the set of activities.
4. EP does prescribe some engineering practices; Scrum does not.
  1. prateek says:


  2. Muhammad Mudassar says:

    I love Extreme programming………..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s