Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
Improving the Quality of Applying eXtreme Programming (XP) Approach

Improving the Quality of Applying eXtreme Programming (XP) Approach

Ratings: (0)|Views: 43 |Likes:
Published by ijcsis
This paper is focused on improving the quality of applying eXtreme Programming (XP) approach on software development process. It clarifies the fundamentals of agile methods of software development. It presents the basic concepts and features of XP approach. XP approach can be viewed as life cycle phases that include six phases: exploration, planning, iterations to release, production, maintenance, and death. Each XP phase can be achieved through performing a set of steps. In this paper, the researcher develops a set of elaborated steps for achieving each XP phase. In addition, the researcher proposes a quality assurance approach for applying XP approach. The proposed quality assurance approach can be used for assuring the quality of achieving XP phases. Then, the deviation between the actual quality and the acceptable quality level can be identified and analyzed. The weaknesses of the software development practices can be discovered, treated to improve the quality of each phase, and avoided in further phases. The strengths of the practices can be discovered, utilized, and encouraged.
This paper is focused on improving the quality of applying eXtreme Programming (XP) approach on software development process. It clarifies the fundamentals of agile methods of software development. It presents the basic concepts and features of XP approach. XP approach can be viewed as life cycle phases that include six phases: exploration, planning, iterations to release, production, maintenance, and death. Each XP phase can be achieved through performing a set of steps. In this paper, the researcher develops a set of elaborated steps for achieving each XP phase. In addition, the researcher proposes a quality assurance approach for applying XP approach. The proposed quality assurance approach can be used for assuring the quality of achieving XP phases. Then, the deviation between the actual quality and the acceptable quality level can be identified and analyzed. The weaknesses of the software development practices can be discovered, treated to improve the quality of each phase, and avoided in further phases. The strengths of the practices can be discovered, utilized, and encouraged.

More info:

Published by: ijcsis on Feb 19, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/19/2012

pdf

text

original

 
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 9, No. 11, 2011
Improving the Quality of Applying eXtremeProgramming (XP) Approach
Nagy Ramadan Darwish
Department of Computer and Information Sciences,Institute of Statistical Studies and Research,Cairo University, Cairo, Egyptdrnagyd@yahoo.com
Abstract
 — 
This paper is focused on improving the quality of applying eXtreme Programming (XP) approach on softwaredevelopment process. It clarifies the fundamentals of agilemethods of software development. It
presents the basicconcepts and features of XP approach. XP approach can beviewed as life cycle phases that include six phases:exploration, planning, iterations to release, production,maintenance, and death. Each XP phase can be achievedthrough performing a set of steps. In this paper, theresearcher develops a set of elaborated steps for achievingeach XP phase. In addition, the researcher proposes aquality assurance approach for applying XP approach. Theproposed quality assurance approach can be used forassuring the quality of achieving XP phases. Then, thedeviation between the actual quality and the acceptablequality level can be identified and analyzed. Theweaknesses of the software development practices can bediscovered, treated to improve the quality of each phase,and avoided in further phases. The strengths of thepractices can be discovered, utilized, and encouraged.
 Keywords-
eXtreme Programming; XP Approach; Agile Methods; Software Development; Quality Evaluation; Improvements
I.
 
Introduction and Problem DefinitionSoftware development is a mentally complicated task.Therefore, different software development methodologies andquality assurance methods are used in order to attain highquality, reliable, and bug free software [17]. In recent years,agile software development methods have gained muchattention in the field of software engineering [27]. A softwaredevelopment method is said to be an agile softwaredevelopment method when a method is people focused,communications-oriented, flexible (ready to adapt to expectedor unexpected change at any time), speedy (encourages rapidand iterative development of the product in small releases),lean (focuses on shortening timeframe and cost and onimproved quality), responsive (reacts appropriately to expectedand unexpected changes), and learning (focuses onimprovement during and after product development) [1].Agile software development is an iterative andincremental approach that is performed in a highlycollaborative manner to produce high quality software thatmeets the changing needs of its stakeholders. Agile softwaredevelopment methods offer a viable solution when the softwareto be developed has fuzzy or changing requirements, being ableto cope with changing requirements throughout the life cycle of a project [7]. Agile software development methods include XP,Scrum, Crystal, Feature Driven Development (FDD), DynamicSystem Development Methodology (DSDM), and AdaptiveSoftware Development (ASD) [4].
 
XP is the best known agile method that is driven by a setof shared values including simplicity, communication,feedback and courage. The XP values, practices, and lifecycle will be explained in the next section of this paper.
 
Scrum is an iterative and incremental approach formanaging the software projects in a changing environment.Each iteration aims to produce a potential set of thesoftware functionality.
 
Crystal methodologies focus on incremental developmentwhich may be in parallel. Each increment may take severaliterations to complete. The tunable project life cycle that iscommon for all Crystal methodologies is: envisioning,proposal, sales, setup, requirements, design and code, test,deploy, train, alter [1]. Crystal family of methodologiesprovides guidelines of policy standards, tools, work project,and standards and roles to be followed in the developmentprocess.
 
FDD is a model-driven and short-iteration approach fordeveloping software. It focuses on the design and buildingphases. FDD provides guidelines, tasks, techniques andfive sequential processes: Develop an Overall Model,Build a Feature List, Plan by Feature, Design by Featureand Build by Feature [24].
 
DSDM provides a framework that supports rapid, iterativeand collaborative software development for producinghigh quality business information systems solutions [15].The basic principle of DSDM is that the resources andtimeframe are adjusted and then the goals and the requiredfunctionality are adjusted accordingly.
 
ASD offers an agile and adaptive approach to high-speedand high-change software projects. ASD replace the staticplan-design life cycle by a dynamic speculate-collaborate-learn life cycle. ASD focuses more on results and theirquality than the tasks [13].
16http://sites.google.com/site/ijcsis/ISSN 1947-5500
 
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 9, No. 11, 2011
XP is one of the most popular agile development methods.Therefore, it is the main concern of this paper. The XP processis characterized by short development cycles, incrementalplanning, continuous feedback, and reliance on communicationand evolutionary design [27]. It is designed for use with smallteams that need to develop software quickly and in anenvironment of rapidly changing requirements.Although the many advantages and features of XPapproach, using it for developing software doesn't guaranteethe success of this process at an acceptable level of quality. Inaddition, software projects are faced with many challenges thatmay lead them to the failure. Therefore, there is a need forassuring the quality of software development. Qualityassurance is all the planned and systematic activitiesimplemented within the quality system, and demonstrated asneeded, to provide adequate confidence that an entity willfulfill the requirements for quality [11]. This paper focuses onelaborating a set of steps for achieving each XP phase,evaluating the quality of achieving this phase, and determiningthe deviation of achieving the phase to improve the quality of software development.II.
 
eXtreme Programming (XP) ApproachExtreme Programming was developed at Chrysler by KentBeck while working on a payroll project as a member of a 15person team. Beck continued to refine and improve the XPmethodology after the project was completed until it gainedworldwide acceptance in 2000 and 2001 [14].The XP software development process focuses on iterativeand rapid development. XP approach stresses communicationand coordination among the team members at all times; andrequires cooperation between the customer, management anddevelopment team to form the supportive business culture forthe successful implementation of XP [1]. It is designed for usein an environment of rapidly changing requirements. It helps toreduce the cost of change by being more flexible to changes.XP is characterized by six phases: exploration, planning,iterations to first release, productionizing, maintenance anddeath. XP is a software development discipline in the family of agile methodologies that contributes towards qualityimprovement using dozen practices [17]. XP consists of twelvepractices, which are planning game, small releases, metaphor,simple design, testing, refactoring, pair programming,collective code ownership, continuous integration, 40-hourweek, on-site customer, and coding standard [19]. Figure (1)illustrates the XP values, practices, and phases.
 A.
 
 XP Values
XP is driven by a set of values including simplicity,communication, feedback and courage.
 
Communication: An Agile method emphasises on face-to-face communication within the team and with the customerwho is closely involve with the development process [21].XP requires direct communication among all members togive the developers a shared view of the system whichmatches the view held by the users of the system.
 
Feedback: The software developers should always have away for getting information about the development process.Feedback relates to many dimensions that include thesystem, customer, and team. Feedback from the system andthe team aims to provide project leaders with quick 
indicators of the project’s progress to take corrective or 
supportive actions. In addition, feedback from customerincludes the functional and acceptance tests.Figure (1): XP Values, Practices, and Phases.
 
Simplicity: A simple design always takes less time tofinish than a complex one. Therefore, XP encouragesstarting with the simplest solution. Extra functionalitycan then be added later. Extreme programmers do thesimplest thing that could possibly work, and leave thesystem in the simplest condition possible. Thisimproves the overall speed of development while stillretaining an emphasis on working software.
 
Courage: Courage means that developers are prepared tomake important decisions that support XP practices.Courage enables developers to feel comfortable withrefactoring their code when necessary. This meansreviewing the existing system and modifying it so thatfuture changes can be implemented more easily. Inaddition, courage may include removing source code that isobsolete, no matter how much effort was used to create thatsource code.
 B.
 
 XP Practices (rules)
The four core values of XP are implemented with twelvecore practices: Planning Game, Small Releases, Metaphor,Simple Design, Testing, Refactoring, Pair Programming,Collective Code Ownership, Continuous Integration, 40-hourWeek, On-Site Customer, and Coding Standard.6 XP Phases (XP Process)
Exploration, Planning, Iterations to Release,Productionizing, Maintenance, Death
 4 XP Values
Simplicity, Communication, Feedback,Courage
12 XP Practices
   1   2  -   C  o   d   i  n  g   S   t  a  n   d  a  r   d   1   1  -   O  n  -   S   i   t  e   C  u  s   t  o  m  e  r   1   0  -   4   0  -   h  o  u  r   W  e  e   k   9  -   C  o  n   t   i  n  u  o  u  s   I  n   t  e  g  r  a   t   i  o  n   8  -   C  o   l   l  e  c   t   i  v  e   C  o   d  e   O  w  n  e  r  s   h   i  p   7  -   P  a   i  r   P  r  o  g  r  a  m  m   i  n  g   6  -   R  e   f  a  c   t  o  r   i  n  g   5  -   T  e  s   t   i  n  g   4  -   S   i  m  p   l  e   D  e  s   i  g  n   3  -   M  e   t  a  p   h  o  r   2  -   S  m  a   l   l   R  e   l  e  a  s  e  s   1  -   P   l  a  n  n   i  n  g   G  a  m  e
XP Approach
17http://sites.google.com/site/ijcsis/ISSN 1947-5500
 
(IJCSIS) International Journal of Computer Science and Information Security,Vol. 9, No. 11, 2011
1.
 
Planning Game: At the beginning of the developmentprocess, customers, managers, and developers meet tocreate, estimate, and prioritize requirements for the next
release. The requirements are captured on ―story cards‖ in a
language understandable by all parties. In fact, thedevelopers estimate the effort needed for the
implementation of customers’ stories and the customers
then decide about the scope and timing of releases. Theplanning game and the story cards offer the devices toperform planning on the most detailed level for very shortperiods of time [18].2.
 
Small Releases: The development is divided in a sequenceof small iterations, each implementing new featuresseparately testable by the customer [7]. XP increases thepace of the delivery of the software by having short releasesof 3-4 weeks. At the end of each release, the customerreviews the software product, identify defects, and adjustfuture requirements. An initial version of the software is putinto production after the first few iterations. The smallreleases help the customer to gain confidence in theprogress of the project. In addition, the small releases helpthe customer to come up with their suggestions on theproject based on real experience.3.
 
Metaphor: The system metaphor is the story that customers,developers, and managers can tell about how the systemworks [19]. The system metaphor is an effective way of getting all members of the project team to visualize theproject. It should provide inspiration, suggest a vocabulary,and a basic architecture. This is the only principle notstrictly required in every XP project.4.
 
Simple Design: The developers must focus on designingonly what is needed to support the functionality beingimplemented. The Developers are urged to keep design assimple as possible, say everything once and only once. Aprogram built with XP should be a simple program thatmeets the current requirements. Kent Beck stated that theright design for the software at any given time is the onethat runs all the tests, has no duplicated logic, states everyintention important to the programmers, and has the fewestpossible classes and methods [19].5.
 
Testing: Testing is an integral part of XP. All code musthave automated unit tests and acceptance tests, and mustpass all tests before it can be released [7]. The tests arewritten before coding. Sometimes, this practice is called
―test first‖.
Programmers write unit tests so that theirconfidence in the operation of the program can become partof the program itself. For the same reason, customers writefunctional tests. The result is a program that becomes moreand more confident over time.6.
 
Refactoring: Refactoring is the process of changing thecode in order to improve it by removing redundancy,eliminating unused functionalities, improving codereadability,reducingcomplexity,improving maintainability,adapting it to patterns or even trying tomake the software work in an acceptable way. Refactoringthroughout the entire project life-cycle saves time of development and increases quality.7.
 
Pair Programming: Pair programming is one of the keypractices of XP. It is a programming technique that requirestwo programmers to work together at solving adevelopment task while sharing the monitor, the keyboard,and the mouse. The work may include analyzing data,creating the data model, programming, etc. The advantagesof pair programming are improving productivity, the qualityof the solution, and job satisfaction [26]. Moreover, itreduces the time needed for task completion, it isparticularly useful in complex tasks, and it is useful fortraining.8.
 
Collective Code Ownership: This practice indicates that thecode is owned and shared by all developers. Everyone isable to edit it and see the changes made by others. It tendsto spread knowledge of the system around the team. Thecode should be subjected to configuration management.9.
 
Continuous Integration: Developers integrate a new piece of code into the system as soon as possible it is ready. All testsare run and they have to be passed for accepting thechanges in the code. Thus, XP teams integrate and build thesoftware system multiple times per day. Continuousintegration reduces development conflicts and helps tocreate a natural end to the development process.10.
 
40-Hour Weeks: This practice indicates that the softwaredevelopers should not work more than 40 hour weeks, andif there is overtime one week, that the next week should notinclude more overtime. The people perform best and mostcreatively if they are rested, fresh, and healthy. Therefore,requirements should be selected for iteration such thatdevelopers do not need to put in overtime.11.
 
On-Site Customer: A customer works with the developmentteam at all times to answer questions, perform acceptancetests, and ensure that development is progressing asexpected. This customer-driven software development ledto a deep redefinition of the structure and features of thesystem [7]. It supports customer-developer communication[18].12.
 
Coding Standards: This practice indicates that thedevelopers must agree on a common set of rules enforcinghow the system shall be coded. This makes theunderstanding easier and helps on producing a consistentcode. Coding standards are almost unavoidable in XP, dueto the continuous integration and collective ownershipproperties.
C.
 
 XP Process
XP approach can be viewed as life cycle phases thatinclude six phases: exploration, planning, iterations to release,productionizing, maintenance, and death [1]. Each phase can beachieved through a set of activities. Figure (2) illustrates theXP life cycle [22].1.
 
Exploration Phase: In the exploration phase, thecustomers write out the story cards that they wish to beincluded in the first release. Each story card describes afeature to be added into the program. At the same time,the development team gets familiar with the development
18http://sites.google.com/site/ijcsis/ISSN 1947-5500

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->