SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
0 | P a g e
2014
Extreme Programming (XP)
Dependable Systems
ALI SHAIKH – K1052280
1 | P a g e
Extreme Programming (XP) as a
popular Agile methodology.
Agile Methodology
Agile methodology is an improved way of managing IT projects specially software
development projects. It is different from traditional methods because a project is
divided into sub-projects/tasks and there is frequent delivery of products as once a
sub-project is completed it is released to the customer. It also includes reassessment
of the user requirements during the project life cycle and the new/changed
requirements can be easily adapted and implemented.
On February 2001, a group of seventeen software developers met at Snowbird
resort in Utah and published the Agile Software Development manifesto:
We are uncovering better ways of developing software by doing it and helping others
do it? Through this work we have come to value:
Individuals and interactions over Processes and tools
Working software over Comprehensive documentation
Customer collaboration over Contract negotiation
Responding to change over Following a plan
That is, while there is value in the items on the right, we value the items on the left
more (Beck et al., 2001).
Within the software development context, manifesto items on the left are defined
below:
Individuals and interactions: focus should be on the people and communication
between them.
Working software: delivering software that works will be more useful and
welcoming than presenting lots of documents to the clients in meetings.
Customer collaboration: continuous customer collaboration is very important as it
is not possible to capture all of the requirements fully at the beginning of the software
development cycle.
Responding to change: agile development focuses on quick response to changing
requirements and adaptation of the requirements without stopping the software
development.
In short the purpose of Agile is to deliver better (quality) software with focus on value
and results.
2 | P a g e
Agile is an umbrella term that encompasses many Agile methods which include
Scrum, XP (Extreme Programming), DSDM, Crystal and others. We will look at XP
as a popular Agile methodology in detail.
XP – Extreme Programming
XP stands for Extreme Programming, and is a suite of practices, principles, and
values invented by Kent Beck in the late ‘90s (Martin, 2006). XP is a type of Agile
software development which is intended to improve software quality and quick
response to changing customer requirements. It focuses on frequent delivery or
releases of software in short development cycles, which results in improved
productivity and also introduces breakpoints to allow the adaptation of new customer
requirements. According to Fowler (2003) the Fundamental principles of XP are:
 Rapid Feedback
The time between an action and its feedback is critical to learning and making
changes. Customer has clear insight and understanding of the system and
they can as needed steer the development by providing rapid feedback.
 Assume Simplicity
Simplest solutions are created for every problem and the focus in on the
requirements that are required only.
 Incremental Change
Delivering a big release at once does not work thus there is incremental
change where small functionalities are added to the system over short
iterations.
 Embracing Change
If customer requirements are changed dramatically these changes are
embraced and planned for the next iteration.
 Quality Work
Build a system that works, adds value to the customer’s business and which
is not expensive to maintain over the long term.
XP Practices
There are twelve XP practices which are listed below (Brewer, 2001; Withrow, 2001;
Martin, 2006):
1. The Planning Game (User stories)
XP involves development iteration periods which are typically 1-2 weeks long.
Before each iteration desired features are defined by the customer in the form of
small stories consisting of about 3 sentences. The developers then take these
3 | P a g e
stories and estimate how long it would take to implement the features. In the end
customer decides which stores to implement and in what order.
2. Small Releases
The application is delivered in a series of small and frequent releases. As each
feature is added, the system keeps developing until all the features have been
implemented.
3. System Metaphor
XP requires set and easy to remember naming conventions for items such as
variable names, methods and class names and thus each project has its own
metaphor.
4. Simple Design
Don’t over complicate the tasks and only use the simplest possible design that
gets the job done. As the requirements can change tomorrow, only do the
tasks/requirements set for today.
5. Continuous Testing
There are two types of tests in XP:
Unit Tests: Programmers write the tests first for a particular requirement and then
code to meet the requirements of the test this flushes out the problems before
they can affect the whole system.
Acceptance Tests: Tests specified by the customer to check if the overall system
is functioning as specified or not. A user story is not deemed complete until it
passes all of the acceptance tests.
6. Refactoring
Code is continuously reviewed to make sure that it is clean i.e. no duplicate/bad
code is included. The standard of XP is not just that the code works but it must
also be clean.
7. Pair Programming
Two heads are better than one and thus the coding is done by two programmers
working on one machine. If one makes a mistake or cannot figure out a problem
the other can fix the mistake or help resolve the problem.
8. Collective Code Ownership
Codebase or a certain module does not belong to an individual. At any time any
developer can work on any part of the system.
9. Continuous Integration
System is updated at least daily and new features are added to the system. The
4 | P a g e
system has to be in a deployable state and needs to pass all previous and new
tests.
10.40-Hour Work Week
Programmers need to be on top of their game in order for XP practices to be
effective. That’s why they go home on time because if the programmer is tired or
sleep-deprived they are more likely to make mistakes and this could result is
lower-quality code.
11.On-site Customer
Customer is an integral part of XP development and must always be available to
answer questions as well as establish requirements and set priorities.
12.Coding Standards
Code writing is done in same way using same formats and styles by all team
members. This makes is easier to share the code among team members and
other developers can understand it easily.
Many of the 12 practices work well on their own so you might decide to use some of
them instead of all 12 but in the XP community it is believed that you are not doing
XP if you do not use all 12 practices.
XP Activities
XP proposes the following four activates that are performed within the software
development process (Apogee, n.d.).
1. Coding
In the system development process, coding is considered to be the only
important product and programmers start to code at the very beginning thus
frequent software releases.
2. Testing
In XP main emphasis is on software testing. Many Unit Tests are written to try
and break the code so if code breaks it can be fixed.
3. Listening
Developers don’t always understand the business side of the system to be
developed so they have to listen to the customers to get the correct
requirements for the system.
4. Designing
System can become too complex over the long run if the logic in the system is
not organised by creating a design structure. A good design will avoid as
5 | P a g e
many dependencies as possible so a change in one part of the system does
not affect the other.
XP Values
Wells (2009) says that XP is based on values, it isn’t just a set of rules but rather a
way to work in harmony with your personal and corporate values. The five values of
XP are:
1. Simplicity
Build only the functionalities that are needed and requested. Take simple steps to
complete the task and achieve the goal. Create something which works and can
be maintained for reasonable costs over the long term.
2. Communication
Communication is key to a successful project; the developers working as a team
and communicating on a daily basis to come up with the best possible solution.
3. Feedback
Get feedback and listen carefully when demonstrating the software to the
customer and make changes if needed.
4. Respect
Team members and customers respect each other and every contribution no
matter how small, it is appreciated, no member of the team should be ignored or
unappreciated.
5. Courage
Tell the truth about progress and estimates, don’t be afraid to throw away the
obsolete code no matter how much effort was used on it. Courage lets
developers feel comfortable when refactoring the code and modifying the system
to adapt the changes whenever they occur.
Conclusion
XP brings all of the team members together to create something they can all be
proud of and with enough feedback and customer input this is achieved by following
simplest practices, values and principles. There is no such thing as best
methodology as a methodology can suit one type of projects where as it won’t work
with others, XP is best applied in projects where requirements change rapidly.
According to Martin (2006), XP is the only method that provides deep and profound
disciplines for the way developers do their daily work, he also goes as far to say that
‘None of the other Agile methods are as well defined, or as broad in scope as XP’.
6 | P a g e
Bibliography
Apogee Integration (n.d.) XP Activities. Available at:
https://www.apogeeintegration.com/xp-activities.html [Accessed 29 October 2014].
Beck, K., Beedle, M., Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M.,
Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R.,
Mellor, S., Schwaber, K., Sutherland, J. and Thomas, D. (2001) Manifesto for Agile
Software Development. Available at: http://agilemanifesto.org [Accessed 29 October
2014].
Brewer, J. (2001) Extreme Programming (XP) FAQ. Available at:
http://www.jera.com/techinfo/xpfaq.html [Accessed 29 October 2014].
Fowler, M. (2003) PrinciplesOfXP. Available at:
http://martinfowler.com/bliki/PrinciplesOfXP.html [Accessed 29 October 2014].
Martin, R. (2006). Agile and XP Differences. Available at:
http://www.objectmentor.com/omSolutions/agile_xp_differences.html [Accessed 29
October 2014].
Wells, D. (2009) The Values of Extreme Programming. Available at:
http://www.extremeprogramming.org/values.html [Accessed 29 October 2014].
Withrow, S. (2001) Extreme Programming: Do these 12 practices make perfect?
Available at: http://www.techrepublic.com/article/extreme-programming-do-these-12-
practices-make-perfect/ [Accessed 29 October 2014].

Weitere Àhnliche Inhalte

Was ist angesagt?

extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XPVashira Ravipanich
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming Fatemeh Karimi
 
extreme programming
extreme programmingextreme programming
extreme programminghimanshumunjal
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Vinit Kumar Singh
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OverviewGurtej Pal Singh
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Prateek
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme ProgrammingNaresh Jain
 
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...Lean Implementation of Organizational Process Focus (OPF) and Risk Management...
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...aamahdys
 
Software Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsSoftware Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsJesminBinti
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
XP Explained
XP ExplainedXP Explained
XP Explainedvineet
 
Agile development
Agile developmentAgile development
Agile developmentJoshuaU1
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)dcsunu
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingMr SMAK
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programmingMichael Green
 

Was ist angesagt? (20)

extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
 
extreme programming
extreme programmingextreme programming
extreme programming
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...Lean Implementation of Organizational Process Focus (OPF) and Risk Management...
Lean Implementation of Organizational Process Focus (OPF) and Risk Management...
 
Software Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsSoftware Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process models
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
Agile development
Agile developmentAgile development
Agile development
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
Cu32604607
Cu32604607Cu32604607
Cu32604607
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 

Andere mochten auch

eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme ProgrammingAxelle Ziegler
 
Solving the XP Legacy Problem with (Extreme) Meta-Programming
Solving the XP Legacy Problem with (Extreme) Meta-ProgrammingSolving the XP Legacy Problem with (Extreme) Meta-Programming
Solving the XP Legacy Problem with (Extreme) Meta-Programmingamcquiggin
 
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004James Grenning
 
Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)Abhinav Srivastava
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingtuanvu8292
 
AWB - 11 - Extreme Programming
AWB - 11 - Extreme ProgrammingAWB - 11 - Extreme Programming
AWB - 11 - Extreme ProgrammingAXA EMEA-LATAM
 
Model Agile & eXtreme Programming (XP)
Model Agile & eXtreme Programming (XP)Model Agile & eXtreme Programming (XP)
Model Agile & eXtreme Programming (XP)Ferryxz Yamato
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)urumisama
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering PracticesVernon Stinebaker
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachDavid Tzemach
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologiesguy_davis
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
7. organization feasibility
7. organization feasibility7. organization feasibility
7. organization feasibilityRudy Flores
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Compare Infobase Limited
 
Sample Methodology
Sample MethodologySample Methodology
Sample MethodologyAiden Yeh
 
Project planning and feasibility study
Project planning and feasibility studyProject planning and feasibility study
Project planning and feasibility studyMars Mfyam
 

Andere mochten auch (18)

Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
Solving the XP Legacy Problem with (Extreme) Meta-Programming
Solving the XP Legacy Problem with (Extreme) Meta-ProgrammingSolving the XP Legacy Problem with (Extreme) Meta-Programming
Solving the XP Legacy Problem with (Extreme) Meta-Programming
 
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004Embedded Extreme Programming - Embedded Systems Conference 2002-2004
Embedded Extreme Programming - Embedded Systems Conference 2002-2004
 
Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
AWB - 11 - Extreme Programming
AWB - 11 - Extreme ProgrammingAWB - 11 - Extreme Programming
AWB - 11 - Extreme Programming
 
Model Agile & eXtreme Programming (XP)
Model Agile & eXtreme Programming (XP)Model Agile & eXtreme Programming (XP)
Model Agile & eXtreme Programming (XP)
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David Tzemach
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
7. organization feasibility
7. organization feasibility7. organization feasibility
7. organization feasibility
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Sample Methodology
Sample MethodologySample Methodology
Sample Methodology
 
Project planning and feasibility study
Project planning and feasibility studyProject planning and feasibility study
Project planning and feasibility study
 

Ähnlich wie Extreme Programming (XP) as A Popular Agile methodology.

Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practicesjackcrews
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptDurga Prasad
 
XP vs Lean vs FDD
XP vs Lean vs FDDXP vs Lean vs FDD
XP vs Lean vs FDDSuman Guha
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
agile methods.docx
agile methods.docxagile methods.docx
agile methods.docxTanishaKochak
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdfBassam Kanber
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slidesgilashikwa
 
SE Lecture 3.ppt
SE Lecture 3.pptSE Lecture 3.ppt
SE Lecture 3.pptssusere16bd9
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptRedHeart11
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxTangZhiSiang
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfyedej15330
 
Mca5020 advanced software engineering-de
Mca5020   advanced software engineering-deMca5020   advanced software engineering-de
Mca5020 advanced software engineering-desmumbahelp
 
chapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptchapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptNakulP3
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile processDelowar hossain
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingAYUSH JAIN
 

Ähnlich wie Extreme Programming (XP) as A Popular Agile methodology. (20)

Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
XP vs Lean vs FDD
XP vs Lean vs FDDXP vs Lean vs FDD
XP vs Lean vs FDD
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
agile methods.docx
agile methods.docxagile methods.docx
agile methods.docx
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
 
SE Lecture 3.ppt
SE Lecture 3.pptSE Lecture 3.ppt
SE Lecture 3.ppt
 
03. Agile Development
03. Agile Development03. Agile Development
03. Agile Development
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
 
Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
 
Unit2
Unit2Unit2
Unit2
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptx
 
Cu32604607
Cu32604607Cu32604607
Cu32604607
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 
Mca5020 advanced software engineering-de
Mca5020   advanced software engineering-deMca5020   advanced software engineering-de
Mca5020 advanced software engineering-de
 
chapter-03-Agile view of process.ppt
chapter-03-Agile view of process.pptchapter-03-Agile view of process.ppt
chapter-03-Agile view of process.ppt
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 

KĂŒrzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂșjo
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

KĂŒrzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Extreme Programming (XP) as A Popular Agile methodology.

  • 1. 0 | P a g e 2014 Extreme Programming (XP) Dependable Systems ALI SHAIKH – K1052280
  • 2. 1 | P a g e Extreme Programming (XP) as a popular Agile methodology. Agile Methodology Agile methodology is an improved way of managing IT projects specially software development projects. It is different from traditional methods because a project is divided into sub-projects/tasks and there is frequent delivery of products as once a sub-project is completed it is released to the customer. It also includes reassessment of the user requirements during the project life cycle and the new/changed requirements can be easily adapted and implemented. On February 2001, a group of seventeen software developers met at Snowbird resort in Utah and published the Agile Software Development manifesto: We are uncovering better ways of developing software by doing it and helping others do it? Through this work we have come to value: Individuals and interactions over Processes and tools Working software over Comprehensive documentation Customer collaboration over Contract negotiation Responding to change over Following a plan That is, while there is value in the items on the right, we value the items on the left more (Beck et al., 2001). Within the software development context, manifesto items on the left are defined below: Individuals and interactions: focus should be on the people and communication between them. Working software: delivering software that works will be more useful and welcoming than presenting lots of documents to the clients in meetings. Customer collaboration: continuous customer collaboration is very important as it is not possible to capture all of the requirements fully at the beginning of the software development cycle. Responding to change: agile development focuses on quick response to changing requirements and adaptation of the requirements without stopping the software development. In short the purpose of Agile is to deliver better (quality) software with focus on value and results.
  • 3. 2 | P a g e Agile is an umbrella term that encompasses many Agile methods which include Scrum, XP (Extreme Programming), DSDM, Crystal and others. We will look at XP as a popular Agile methodology in detail. XP – Extreme Programming XP stands for Extreme Programming, and is a suite of practices, principles, and values invented by Kent Beck in the late ‘90s (Martin, 2006). XP is a type of Agile software development which is intended to improve software quality and quick response to changing customer requirements. It focuses on frequent delivery or releases of software in short development cycles, which results in improved productivity and also introduces breakpoints to allow the adaptation of new customer requirements. According to Fowler (2003) the Fundamental principles of XP are:  Rapid Feedback The time between an action and its feedback is critical to learning and making changes. Customer has clear insight and understanding of the system and they can as needed steer the development by providing rapid feedback.  Assume Simplicity Simplest solutions are created for every problem and the focus in on the requirements that are required only.  Incremental Change Delivering a big release at once does not work thus there is incremental change where small functionalities are added to the system over short iterations.  Embracing Change If customer requirements are changed dramatically these changes are embraced and planned for the next iteration.  Quality Work Build a system that works, adds value to the customer’s business and which is not expensive to maintain over the long term. XP Practices There are twelve XP practices which are listed below (Brewer, 2001; Withrow, 2001; Martin, 2006): 1. The Planning Game (User stories) XP involves development iteration periods which are typically 1-2 weeks long. Before each iteration desired features are defined by the customer in the form of small stories consisting of about 3 sentences. The developers then take these
  • 4. 3 | P a g e stories and estimate how long it would take to implement the features. In the end customer decides which stores to implement and in what order. 2. Small Releases The application is delivered in a series of small and frequent releases. As each feature is added, the system keeps developing until all the features have been implemented. 3. System Metaphor XP requires set and easy to remember naming conventions for items such as variable names, methods and class names and thus each project has its own metaphor. 4. Simple Design Don’t over complicate the tasks and only use the simplest possible design that gets the job done. As the requirements can change tomorrow, only do the tasks/requirements set for today. 5. Continuous Testing There are two types of tests in XP: Unit Tests: Programmers write the tests first for a particular requirement and then code to meet the requirements of the test this flushes out the problems before they can affect the whole system. Acceptance Tests: Tests specified by the customer to check if the overall system is functioning as specified or not. A user story is not deemed complete until it passes all of the acceptance tests. 6. Refactoring Code is continuously reviewed to make sure that it is clean i.e. no duplicate/bad code is included. The standard of XP is not just that the code works but it must also be clean. 7. Pair Programming Two heads are better than one and thus the coding is done by two programmers working on one machine. If one makes a mistake or cannot figure out a problem the other can fix the mistake or help resolve the problem. 8. Collective Code Ownership Codebase or a certain module does not belong to an individual. At any time any developer can work on any part of the system. 9. Continuous Integration System is updated at least daily and new features are added to the system. The
  • 5. 4 | P a g e system has to be in a deployable state and needs to pass all previous and new tests. 10.40-Hour Work Week Programmers need to be on top of their game in order for XP practices to be effective. That’s why they go home on time because if the programmer is tired or sleep-deprived they are more likely to make mistakes and this could result is lower-quality code. 11.On-site Customer Customer is an integral part of XP development and must always be available to answer questions as well as establish requirements and set priorities. 12.Coding Standards Code writing is done in same way using same formats and styles by all team members. This makes is easier to share the code among team members and other developers can understand it easily. Many of the 12 practices work well on their own so you might decide to use some of them instead of all 12 but in the XP community it is believed that you are not doing XP if you do not use all 12 practices. XP Activities XP proposes the following four activates that are performed within the software development process (Apogee, n.d.). 1. Coding In the system development process, coding is considered to be the only important product and programmers start to code at the very beginning thus frequent software releases. 2. Testing In XP main emphasis is on software testing. Many Unit Tests are written to try and break the code so if code breaks it can be fixed. 3. Listening Developers don’t always understand the business side of the system to be developed so they have to listen to the customers to get the correct requirements for the system. 4. Designing System can become too complex over the long run if the logic in the system is not organised by creating a design structure. A good design will avoid as
  • 6. 5 | P a g e many dependencies as possible so a change in one part of the system does not affect the other. XP Values Wells (2009) says that XP is based on values, it isn’t just a set of rules but rather a way to work in harmony with your personal and corporate values. The five values of XP are: 1. Simplicity Build only the functionalities that are needed and requested. Take simple steps to complete the task and achieve the goal. Create something which works and can be maintained for reasonable costs over the long term. 2. Communication Communication is key to a successful project; the developers working as a team and communicating on a daily basis to come up with the best possible solution. 3. Feedback Get feedback and listen carefully when demonstrating the software to the customer and make changes if needed. 4. Respect Team members and customers respect each other and every contribution no matter how small, it is appreciated, no member of the team should be ignored or unappreciated. 5. Courage Tell the truth about progress and estimates, don’t be afraid to throw away the obsolete code no matter how much effort was used on it. Courage lets developers feel comfortable when refactoring the code and modifying the system to adapt the changes whenever they occur. Conclusion XP brings all of the team members together to create something they can all be proud of and with enough feedback and customer input this is achieved by following simplest practices, values and principles. There is no such thing as best methodology as a methodology can suit one type of projects where as it won’t work with others, XP is best applied in projects where requirements change rapidly. According to Martin (2006), XP is the only method that provides deep and profound disciplines for the way developers do their daily work, he also goes as far to say that ‘None of the other Agile methods are as well defined, or as broad in scope as XP’.
  • 7. 6 | P a g e Bibliography Apogee Integration (n.d.) XP Activities. Available at: https://www.apogeeintegration.com/xp-activities.html [Accessed 29 October 2014]. Beck, K., Beedle, M., Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R., Mellor, S., Schwaber, K., Sutherland, J. and Thomas, D. (2001) Manifesto for Agile Software Development. Available at: http://agilemanifesto.org [Accessed 29 October 2014]. Brewer, J. (2001) Extreme Programming (XP) FAQ. Available at: http://www.jera.com/techinfo/xpfaq.html [Accessed 29 October 2014]. Fowler, M. (2003) PrinciplesOfXP. Available at: http://martinfowler.com/bliki/PrinciplesOfXP.html [Accessed 29 October 2014]. Martin, R. (2006). Agile and XP Differences. Available at: http://www.objectmentor.com/omSolutions/agile_xp_differences.html [Accessed 29 October 2014]. Wells, D. (2009) The Values of Extreme Programming. Available at: http://www.extremeprogramming.org/values.html [Accessed 29 October 2014]. Withrow, S. (2001) Extreme Programming: Do these 12 practices make perfect? Available at: http://www.techrepublic.com/article/extreme-programming-do-these-12- practices-make-perfect/ [Accessed 29 October 2014].