A Comparative Analysis of Two Popular Ag
A Comparative Analysis of Two Popular Ag
Faiza Anwer1, Shabib Aftab2, Syed Shah Muhammad Shah3 and Usman Waheed4
1-4
Department of Computer Science, Virtual University of Pakistan
1
[email protected], [email protected]
Abstract— Since last two decades, agile software development Extreme Programming (XP) and Scrum are most widely
methodologies have been one of the most debating topics for used agile models especially for small scale projects. These
researchers. These are called light weight development methods are called light weight development methodologies because of
because of informal, adaptive and flexible approach. These
excluding formal activities from development process for the
models are based on the collection of best practices which help to
handle problems related to changing requirements, customer sake of simplicity and agility. Both of these models have some
satisfaction, and product quality. A number of agile models are common and contrasting features. This study is conducted to
available to meet the needs of different projects. However explore and compare them in detail. This comparison provides
Extreme Programming and Scrum are two most familiar and a deep insight about these two methodologies that will greatly
commonly used models. This study makes a valuable contribution helpful for developers and researchers.
by exploring these models in detail. In this paper a detailed
Rest of the paper is organized in following sections; Section
comparison of Extreme programming and Scrum is conducted to
find their similarities, differences and explores those features II and III explain extreme programming and scrum in detail
which complement each other. respectively. Section IV provides a detailed comparison of
these two methodologies. Section V presents critical analysis
Index Terms— Extreme Programming, Scrum, Agile Models and section VI finally concludes this paper.
and Comparison
II. EXTREME PROGRAMMING
Exploration Phase: Exploration phase is first phase of XP life and steering phase [5]. Customer writes story cards to identify
cycle which deals with requirement and architecture modeling the required features of system. These features are then sorted
of the system. In this phase, user requirements, architecture, according to their importance and a smaller set of story cards
tools and technology are defined. A meeting among customer, for the recent release is selected. This is an iterative process
users and developers is arranged to plan release. Customer that can be adjusted by adding, removing, merging or splitting
writes user stories on stories cards that provide requirement some stories.
about software. These user story cards comprises of short
Iteration Planning: Each iteration starts with iteration
name, priority of story and one or two text paragraph without
planning. In this phase, developers prepare a plan of their
technical detail [5]. User story should be detailed enough that
activities to implement required features of the current release.
help the developers to understand system requirement and also
Like release planning, iteration planning also has exploration,
in making estimates. Time estimation means time required to
commitment and steering phases but customer is not involved
implement a story. If a story require longer implementation
in this step [5], [8]. During iteration planning programmer
time that story can be converted in to small stories by
select tasks to implement and estimates required cost, time
customer. For architecture modeling metaphors are created
and effort for selected task. Tasks can be given to other
during architectural spike to consider different alternative
programmers to balance the workload.
solutions. Metaphor is not a complete architecture but a
framework with basic objects and their interfaces. Exploration Iteration to Release Phase: This phase incorporate the basic
phase can last from few weeks to few months. However in [5] development activities like designing, coding, testing and
Kent Beck suggests that at the end of exploration phase integration [9]. This is an iterative phase in which each
enough material should be available from user stories that can iteration can span over one to four weeks. Each iteration starts
provide a good start for first product release and developer with iteration planning. In first iteration, such stories are
should have confidence about cost and time estimation of selected that make overall architecture of the system [5].
tasks to be implemented. Tasks selected for current iteration are actually implemented
by a pair of programmers. Programmers select tasks, make a
simple design and code it. After coding, functional testing is
performed and then code is integrated. Code refactoring is
used if developed code does not fulfill requirements. Final
development may take several iterations in which coding,
testing, listening and designing is performed repeatedly.
Standup meeting are used to discuss development progress or
any issues that need to be resolved [5]. After final iteration
code is ready for production.
Productionizing Phase: Being an iterative and incremental
process, XP delivers software in small releases. A release is a
small part of planned software that implements some business
needs. Frequent releases in XP allow to build required system
in increments. A release cycle can consists of a number of
iteration that can span from 1 to 4 weeks [10]. Productionizing
phase is about deployment of the software in small releases.
Fig. 1: Life Cycle of Extreme Programming [6] To check, whether the software is ready for production,
acceptance testing, system testing and load testing is
Planning Phase: After exploration phase, planning phase performed. During this phase, programmers slow down the
starts that aimed to find the answers of two questions rate at which system evolves. As the risk become more
basically; what can be built within due date that have some important whether a change should go to next release or
business value And what is the plan to do for next iteration? If not [8].
exploration phase was gone well then planning phase only
demand a day or two to complete [5]. During planning phase, Maintenance Phase: Maintenance is a natural phenomenon
task are drawn from user stories and written on task cards. for software systems. In XP, software continues to evolve over
In XP, planning process is called planning game that further a period of time. In this phase new functionality is built while
performed in two parts: Release planning and Iteration keeping the old one running [5]. New architectural design and
planning. During planning phase decision about team size, technologies can be introduced however XP team has to do
code ownership, schedule, working hours are taken [7]. more care as the system is in production also. The changes
that cause production problems are stopped immediately [6].
Release Planning: Basic objective of release planning is to
find out the features to be needed in the system and delivery Death Phase: This is the last phase of XP. There are two
schedule of these features. Both customer and developers possible situations in which a software system reaches to death
participate in release planning meeting. Release planning phase. In first case, if the developed software has all the
consists of three phases: exploration phase, commitment phase needed functionality and customer is satisfied and has no more
stories, then it is time to finally release the system. A small
International Journal of Computer Science and Telecommunications [Volume 8, Issue 2, March 2017] 3
document of five to ten pages is created, about the system for for developers [6]. Tired and bored programmers make more
future use. In other case, customer may require a set of mistakes that’s why unnecessary overtimes are avoided in XP.
features that cannot be developed economically. In such It is a rule of XP, to work 40 hours a week not more than this.
situation, it will be better to close the software development
which is called entropic death of system [5]. On-Site Customer: A customer’s representative is a part of
XP team and remains on site all the time [6]. He/ she is
B. XP Practices usually a domain expert that can decide about system's desired
features, answer the questions and can steer the development
There are twelve XP practices that distinguish XP from process. On-site presence help to reduce communication gap
other software process models. These practices are used between developers and customer. A quick feedback remains
during software development under the guidance values and available to developers about desired software.
principles of XP.
Coding Standards: Coding standards are followed in XP.
Planning Game: System requirements are collected on story
Code is owned collectively and can be accessed or changed by
cards that are used for further planning. Different team roles,
any programmer. To share the code among programmers, it is
team size, working hours and overall schedule is defined
necessary to follow some common coding standards [5].
during planning game [11]. Planning game is performed in
two parts called release planning and iteration planning.
C. XP Values
Small Releases: In each release a set of requirements are
developed that have some business and development value There are five XP values which are focused while XP
[5]. Small releases make the system open and available for practices are applied. These values are simplicity,
evaluation by the customer. Small releases help in getting communication, feedback, courage and respect [5], [10].
immediate customer’s feedback about system. Simplicity: XP keeps things simple like simple plan, simple
design and simple code. It prefer on designing simple solution
Metaphor: It is the architectural design of the system that
of the problem. No extra functionality is added until customer
describes how system should works. For developers, It is very
asked for [5]. Simple and small iteration of XP helps to avoid
important way to understand the system [11]. the risk of project distraction.
Simple Design: Simple design is a great practice of XP that Communication: Instead of documentation, XP uses active
helps to design basic required functionality of the system and and continuous communication among team members. All the
avoids unnecessary details. It focuses on currently needed team member and customer present on site and communicate
features not on future requirements. continuously to find more suitable and economical solution of
Continuous Testing: Continuous testing provide quick the problem.
feedback. XP uses unit testing and acceptance testing Feedback: XP uses feedback that span on different time
continuously. scale from second to months. Unit testing and integration
testing is performed on daily bases, provide quick feedback
Refactoring: Refactoring is restructuring the system without
about system. Feedback and communication help to keep
changing its behavior [11]. It is performed to improve the
project on the right way. On site presence of customer is a
quality and flexibility of design. It is a routine activity of XP distinguishing feature of XP that helps to get rapid feedback
developers to make the code quality better. about the developing software.
Pair Programming: It is very interesting feature of XP that Courage: XP practices require courage. Sometime it is
distinguish it from other development approaches. In XP, needed to refactor the code or design that was completed after
coding is performed by the two programmers at same machine great effort. It also means that making such decision that never
[5], [28]. The idea behind pair programming is to develop been made before for the system.
high quality software at lower cost. As most of the errors are
Respect is another important value of XP introduced in
captured and corrected within seconds by the companion
[12]. Self-respect and respect for other members is equally
programmer.
important that make it possible to implement XP practices
Collective Ownership: Any programmer can access any part (like pair programming, collective code ownership). Showing
of code any time to improve it. This is called collective respect towards work can force the developers to do high
ownership of code. Code review by number of programmers; quality work.
enhance the quality of software to be developed.
D. XP Roles
Continuous Integration: After completing every task,
system is integrated and tested. It may happen many times a XP define seven roles of team members with their qualities
day. This reduces integration problems and improves software and responsibilities that they must have to perform in team
quality. [5], [6].
Programmer: This is most important role in XP team. adjusting the process in case of any unacceptable deviation
Coding is main activity in XP which is performed by [13], [14]. Scrum provides an iterative and incremental
programmer. There is no analyst, designer or architect in XP framework of development that builds software product in
team, all these tasks should be performed by programmer. small cycles called Sprints. Sprints have one month or less
duration. Scrum framework consists of three roles, four
Customer: Customer is another very important member of
ceremonies and three artifacts Fig. 2.
XP team who plays an active role throughout the development
process. He writes stories, derive functional test and verify
these test.
Coach: Coach is a person that should have both managerial
and technical skills. Good communication and decision power
help the coach to keep the team members together and on right
track.
Tracker: Duty of tracker is to gather metrics like load factor
and functional test scores about the project. Tracker collect
data from each developer after two or three days and record
how much time is spent on a task and how much is still
required to complete it. It is tracker’s responsibility to check
that iteration and commitment schedule are realistic and can
be meet [5].
Tester: The responsibility of tester is to guide and help
Fig. 2: Scrum Framework [14]
customers to write functional tests and verify them. As in XP,
unit testing is performed by the programmers so tester has a
A. Scrum Phases
very little to do.
Consultant: XP team has no specialist but in some cases Scrum activities can be grouped in three phases called
team needs technical guidance from an expert, in that case a Pregame, Game and Postgame [15], [16].
consultant can be hired for a time being. Two or more Pregame: This phase starts by defining the vision of the
developers discuss with consultant in a meeting to learn about project which may be unclear initially but can be refined
solution of the problem. further in later sprints. Product owner is responsible to define
Big Boss: He is a coordinator of the project that has the vision and prepared a prioritized list of functional and
responsibilities of team building, providing necessary nonfunctional requirements for the software. This prioritized
resources, equipment and tools. Big boss has to show courage list of required features is called Product Backlog [13]. A plan
while supporting team’s decision that is never experienced that includes the time and cost estimation is also prepared in
before. this phase with final product delivery date and number of
releases in which final product will be delivered. A high level
architectural design is developed that tells how to implement
III. SCRUM
different tasks, defined in product backlog. Some other
Scrum is most widely used agile software development important task completed in this phase includes risk
model. It provides an iterative and incremental framework for assessment, definition of development team, validation of
software development that is based on best practices used in development tools and verification of approval and funds.
Japanese industry. In 1995 Jeff Sutherland and Ken Schwaber Game: This is actual development phase of the scrum which
introduced the Scrum methodology that was later presented by is performed in small iterations called sprints. Sprint is a time
Ken Schwaber and Mike Beedle in a Book named “Agile boxed development period ranges from one week to four
Software Development with Scrum” in 2001. The idea behind weeks based on complexity and risk involved. Each sprint
scrum was to handle drawbacks of traditional development incorporates activities like develop, wrap, review and
methodologies. In scrum each product release is planned adjust [15].
according to customer requirements, time pressure,
competition, product quality and available resources. Postgame: This is a closure phase. After implementing the
Scrum is an empirical approach that is based on process desired features during development phase, final release
control theory to add flexibility, adoptability and productivity occurs. A release is declared closed when all the goals defined
in the development process [13], [28]. The strength of scrum during pregame phase are met. In closure phase final
lies in three points transparency, inspection and adaptation. integration testing is performed, user manuals and training
Transparency means that every aspect of process that affect materials are prepared for the final release.
the result should be visible to all members involved in product
development. Inspection means keep eye on process to detect
any unacceptable deviation. Finally adaptation helps in
International Journal of Computer Science and Telecommunications [Volume 8, Issue 2, March 2017] 5
[6], [21]. Scrum provides a framework rather than concrete used for small projects especially. These models used best
development practices. That’s why Scrum greatly depends practices in agile fashion to accommodate rapid application
upon developers’ skill and experience [3]. XP mainly focus on development needs. In this study a complete description
engineering aspects of software projects whereas Scrum deals explaining their different phases, practices and roles is
with management related issues. These contrary practices are provided. A detailed comparison is also conducted to get
also complementing each other. Joint application of Scrum deep understanding about these models. This can be very
and XP can give positive impact on team productivity, product helpful for developers, researchers and scholars interested in
quality [26]. these agile models. This comparison reveals that these models
have common and contrasting features. Some of contrasting
VI. CONCLUSION feature complement each other that encourage researchers to
experiment with combination of XP and Scrum for software
XP and Scrum are renowned agile models that are widely development.