SlideShare a Scribd company logo
<eXtreme Programming (XP)>
An Overview
08 April 2014
01 What is XP?
02 Why XP?
03 How and Who? : Roles and Practices in XP
04 Q & A
− Extreme Programming was created by Kent Beck, Ward Cunningham & Ron Jeffries in 1996.
What is Extreme Programming (XP) ?
Kent Ward Ron
“XP is a style of software development focusing on excellent application of
programming techniques, clear communication, and teamwork which allows us to
accomplish things we previously could not even imagine.”
-Extreme Programming Explained: Embrace Change, Second Edition
− "Extreme" means the practices get "turned up" to a much higher "volume"
than on traditional projects.
What is Extreme Programming (XP) ?
− Problems:
− Freeze all the requirements before starting design & development
− Resist changes: It will lengthen schedule
− Build a change control process to ensure that proposed changes are looked at carefully
and no change is made without intense scrutiny
− Increase the delay in Delivery and the Delivered product is obsolete on release
Why Extreme Programming (XP) ?
− XP recognizes that:
− All requirements will not be known at the beginning
− Requirements will change
− Use tools to accommodate change as a natural process
− Do the simplest thing that could possibly work and refactor.
− Emphasize values and principles rather than process
Why Extreme Programming (XP) ?
− Some other Benefits:
− As a Programmer:
− Get clear requirements & priorities
− Do a better job & make technical decisions
− Don’t work overtime
− Get accurate & timely feedback
− Customers:
− Get highest valued business item first
− Make informed business decisions
− If there is any need of change that can be communicated and implemented
Why Extreme Programming (XP) ?
− Simplicity:
The Values of Extreme Programming
− Communication
The Values of Extreme Programming
− Feedback
The Values of Extreme Programming
− Respect
The Values of Extreme Programming
− Courage
The Values of Extreme Programming
− The Whole Team:
− Cross-functional team which can fulfill all the team’s roles.
− XP teams sit together in an open workspace.
− At the beginning of each iteration, the team meets for a series of activities: an
iteration demo, a retrospective, and iteration planning.
− This self-organization is a hallmark of agile teams.
Roles in XP
− On-Site Customer:
− On-site customer — often just called customer — is responsible for defining the software
the team builds.
− Typically, product managers, domain experts and business analysts play the role of the
on-site customer.
− Customers:
− Evangelize the project’s vision
− Identify features and stories
− Coordinating with Team and playing the planning game
− Customers themselves act as living requirements documents and providing it as needed
− Customers help communicate requirements by creating mock-ups, reviewing work in
progress, and creating detailed customer tests that clarify complex business rules.
Roles in XP
− Coach:
− A coach’s enables the team to succeed.
− Coaches help the team by arranging for a shared workspace and making sure that the
team includes the right people.
− Coach help in setting up conditions for energized work, and assist the team in creating
an informative workspace.
− Coaches help the team to interact with the rest of the organization. Coaches take
responsibility for any reporting needed.
− Coaches also help the team members maintain their self-discipline
Roles in XP
Fine scale feedback:
• Planning game
• Pair programming
• Test driven development
• Whole team
Shared understanding:
• Coding standard
• Collective code ownership
• Simple design
• System metaphor
Continuous process:
• Continuous integration
• Design improvement
• Small releases
Programmer welfare:
• Sustainable pace
Practices in XP
− The Planning Process : The main planning process within extreme programming is
called the Planning Game.
− It is a meeting that occurs once per iteration, typically once a week.
− The desired features of the software, which are communicated by the customer, are
combined with estimates provided by the programmers to determine what the most
important factors of the software are.
− Business writes a story describing desired functionality
− Stories are written on index cards
− Development estimates stories
− Velocity determines number of stories per iteration
− Business splits and prioritizes stories and determines the composition of releases
− Velocity is measured and adjusted every iteration
− Customer steers development
Practices in XP
− Pair Programming :
Practices in XP
− Pair Programming - All code is written by two programmers working at the same machine.
− Two roles: implementation(Driver) and strategy(Navigator)
− Driver has control over the workstation and is thinking mostly about the coding in detail.
− Navigator is more focused on the big picture, and is continually reviewing the code that
is being produced by Driver.
− Benefits:
− Continuous code review: better design, fewer defects
− Collective code ownership
− Discipline to always test and refactor
− Learn from partner’s knowledge and experience (enhances technical skills)
"Don't be afraid of Pair-Programming. You are not as good as you think , but your not as bad as you fear” - Ron
Jeffries
Practices in XP
− Test Driven Development – Testing is done consistently throughout the process.
− Unit Testing
− Test Driven Development (TDD)
− Acceptance Test Driven Development (ATDD)
− Programmers design the tests first and then write the software to fulfill the requirements
of the test.
− XP says that the programmer is finished with a certain piece of code when he or she
cannot come up with any further condition on which the code may fail.
− The customer also provides acceptance tests at each stage to ensure the desired results
are achieved.
Practices in XP
− Whole Team (On-Site Customer) - The XP project is directed by the customer who is
available all the time to answer questions, set priorities and determine requirements of the
project.
− And also defines the tests for “Acceptance Test driven development” (ATDD).
− Within XP, the "customer" is not the one who pays the bill, but the one who really uses
the system.
Practices in XP
− Continuous Integration (CI) - The XP team integrates and builds the software system
multiple times per day to keep all the programmers at the same stage of the development
process at once.
− It ensures that team is always working on the latest version of the software.
− Continuous integration will avoid delays later on in the project cycle, caused by
integration problems.
− There are various tools, some of these are:
− Hudson
− Jenkins
− Cruise Control
− Bamboo
Practices in XP
− Design Improvement (Refactoring) - XP programmers improve the design of the
software through every stage of development instead of waiting until the end of the
development and going back to correct flaws.
− XP advocates to refactor your code by changing the architecture, making it simpler and
more generic without changing the functionality.
− Continuously improve quality of the code
− Improves Performance & Readability
− Inbuilt practices of Unit Testing/TDD and Pair Programming give courage
Practices in XP
− Small Releases (Continuous Delivery) – The software is developed in small stages
that are updated frequently.
− It helps the customer to gain confidence in the progress of the project.
− It helps maintain the concept of the whole team as the customer can now come up with his
suggestions on the project based on real experience.
Practices in XP
− Coding Standard - The programmers all write code in the same way. This allows them to
work in pairs and to share ownership of the code.
− Coding standard is an agreed upon set of rules that the entire development team agree to adhere to
throughout the project.
− The standard specifies a consistent style and format for source code, within the chosen programming
language, as well as various programming constructs and patterns that should be avoided in order to
reduce the probability of defects.
Practices in XP
− Collective Code Ownership - Every line of code belongs to every programmer working on
the project, so there are no issues of proprietary authorship to slow the project down, in turn,
means that everybody is allowed to change any part of the code.
− Pair programming contributes to this practice.
− Collective ownership speeds up the development process, because if an error occurs in the code any
programmer may fix it.
Practices in XP
− Simple Design :
− Do the simplest thing that could possibly work
− Programmers should take a "simple is the best" approach to software design.
− Refactoring should also be used, to make complex code simpler.
− The software should include only the code that is necessary to achieve the desired results
communicated by the customer at each stage in the process.
− The emphasis is not on building for future versions of the product
− No duplicate code.
− Fewest possible classes and methods
Practices in XP
− System Metaphor - All members of an XP team use common names and descriptions to
guide development and communicate on common terms.
− It's a naming concept for classes/methods that should make it easy for a team member to guess the
functionality of a particular class/method, from its name only.
− It is a story that everyone - customers, programmers, and managers - can tell about how the system
works.
Practices in XP
− Sustainable Pace (40-Hour Week) - The XP team does not work excessive overtime to
ensure that the team remains well-rested, alert and effective.
− Key enabler to achieve sustainable pace is frequent code-merge, continuously integrated and always
executable & test covered high quality code.
− The intense collaborative way of working within the team drives a need to recharge over weekends.
Practices in XP
References:
http://xprogramming.com/book/whatisxp/
http://en.wikipedia.org/wiki/Extreme_programming
http://www.extremeprogramming.org/values.html
http://en.wikipedia.org/wiki/Extreme_programming_practices
Resources:
http://www.junit.org
http://www.xprogramming.com
http://www.extremeprogramming.org
http://www.refactoring.com
http://www.pairprogramming.com
Book: Scrum & XP from Trenches
References & Resources
Gurtej Pal Singh
Gurtej.singh@globallogic.com
Cell # +91-99991-79795
Extn. # 2778
</eXtreme Programming (XP)>

More Related Content

What's hot

Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Aciron Consulting
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.pptMohan Late
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
Amit Verma
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile model
zoomers
 
Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software Development
Life Cycle Engineering
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
Dhruv Kumar
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
Rupesh Vaishnav
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
Raghav Seth
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
Hitesh Mohapatra
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
Arrielle Mali
 
Agile presentation
Agile presentationAgile presentation
Agile presentationinfolock
 
Agile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile MethodologiesAgile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Balaji Sathram
 
PMI-ACP Lesson 02 Agile Communication
PMI-ACP Lesson 02 Agile CommunicationPMI-ACP Lesson 02 Agile Communication
PMI-ACP Lesson 02 Agile Communication
Thanh Nguyen
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basics
Arun R
 
Agile Manifesto and Principles
Agile Manifesto and PrinciplesAgile Manifesto and Principles
Agile Manifesto and Principles
Aryan Rajbhandari
 
#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agile#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agile
ak-itconsulting.com
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Omar Al-Sabek
 
Agile 101
Agile 101Agile 101
Agile 101
Sunil Mundra
 
Agile software development
Agile software developmentAgile software development
Agile software development
Rajesh Piryani
 

What's hot (20)

Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.ppt
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile model
 
Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software Development
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Agile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile MethodologiesAgile-overview: Agile Manifesto, Agile principles and Agile Methodologies
Agile-overview: Agile Manifesto, Agile principles and Agile Methodologies
 
PMI-ACP Lesson 02 Agile Communication
PMI-ACP Lesson 02 Agile CommunicationPMI-ACP Lesson 02 Agile Communication
PMI-ACP Lesson 02 Agile Communication
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basics
 
Agile Manifesto and Principles
Agile Manifesto and PrinciplesAgile Manifesto and Principles
Agile Manifesto and Principles
 
#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agile#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agile
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology ppt
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile 101
Agile 101Agile 101
Agile 101
 
Agile software development
Agile software developmentAgile software development
Agile software development
 

Similar to eXtreme programming (XP) - An Overview

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
International Islamic University Islamabad
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
jackcrews
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
AYUSH JAIN
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
Mohamed Abdelrahman
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
pearlcatcharro
 
Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Ali Shaikh
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
Durga Prasad
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
guest1c30ed5
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
Bassam Kanber
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
Joe Drumgoole
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
Delowar hossain
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slidesgilashikwa
 
Xp methadology
Xp methadologyXp methadology
Xp methadology
christina thomas
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
Jérôme Kehrli
 
extreme programming
extreme programmingextreme programming
extreme programming
fahad khan
 
Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechIIITA
 
Share Vision First Trip
Share Vision First TripShare Vision First Trip
Share Vision First Trip
Khou Suylong
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
programizconsultancy
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsultingtalkwiseone
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsultingtalkwiseone
 

Similar to eXtreme programming (XP) - An Overview (20)

Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
 
Xp methadology
Xp methadologyXp methadology
Xp methadology
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
extreme programming
extreme programmingextreme programming
extreme programming
 
Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btech
 
Share Vision First Trip
Share Vision First TripShare Vision First Trip
Share Vision First Trip
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 

Recently uploaded

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 

Recently uploaded (20)

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 

eXtreme programming (XP) - An Overview

  • 1. <eXtreme Programming (XP)> An Overview 08 April 2014
  • 2. 01 What is XP? 02 Why XP? 03 How and Who? : Roles and Practices in XP 04 Q & A
  • 3. − Extreme Programming was created by Kent Beck, Ward Cunningham & Ron Jeffries in 1996. What is Extreme Programming (XP) ? Kent Ward Ron
  • 4. “XP is a style of software development focusing on excellent application of programming techniques, clear communication, and teamwork which allows us to accomplish things we previously could not even imagine.” -Extreme Programming Explained: Embrace Change, Second Edition − "Extreme" means the practices get "turned up" to a much higher "volume" than on traditional projects. What is Extreme Programming (XP) ?
  • 5. − Problems: − Freeze all the requirements before starting design & development − Resist changes: It will lengthen schedule − Build a change control process to ensure that proposed changes are looked at carefully and no change is made without intense scrutiny − Increase the delay in Delivery and the Delivered product is obsolete on release Why Extreme Programming (XP) ?
  • 6. − XP recognizes that: − All requirements will not be known at the beginning − Requirements will change − Use tools to accommodate change as a natural process − Do the simplest thing that could possibly work and refactor. − Emphasize values and principles rather than process Why Extreme Programming (XP) ?
  • 7. − Some other Benefits: − As a Programmer: − Get clear requirements & priorities − Do a better job & make technical decisions − Don’t work overtime − Get accurate & timely feedback − Customers: − Get highest valued business item first − Make informed business decisions − If there is any need of change that can be communicated and implemented Why Extreme Programming (XP) ?
  • 8. − Simplicity: The Values of Extreme Programming
  • 9. − Communication The Values of Extreme Programming
  • 10. − Feedback The Values of Extreme Programming
  • 11. − Respect The Values of Extreme Programming
  • 12. − Courage The Values of Extreme Programming
  • 13. − The Whole Team: − Cross-functional team which can fulfill all the team’s roles. − XP teams sit together in an open workspace. − At the beginning of each iteration, the team meets for a series of activities: an iteration demo, a retrospective, and iteration planning. − This self-organization is a hallmark of agile teams. Roles in XP
  • 14. − On-Site Customer: − On-site customer — often just called customer — is responsible for defining the software the team builds. − Typically, product managers, domain experts and business analysts play the role of the on-site customer. − Customers: − Evangelize the project’s vision − Identify features and stories − Coordinating with Team and playing the planning game − Customers themselves act as living requirements documents and providing it as needed − Customers help communicate requirements by creating mock-ups, reviewing work in progress, and creating detailed customer tests that clarify complex business rules. Roles in XP
  • 15. − Coach: − A coach’s enables the team to succeed. − Coaches help the team by arranging for a shared workspace and making sure that the team includes the right people. − Coach help in setting up conditions for energized work, and assist the team in creating an informative workspace. − Coaches help the team to interact with the rest of the organization. Coaches take responsibility for any reporting needed. − Coaches also help the team members maintain their self-discipline Roles in XP
  • 16. Fine scale feedback: • Planning game • Pair programming • Test driven development • Whole team Shared understanding: • Coding standard • Collective code ownership • Simple design • System metaphor Continuous process: • Continuous integration • Design improvement • Small releases Programmer welfare: • Sustainable pace Practices in XP
  • 17. − The Planning Process : The main planning process within extreme programming is called the Planning Game. − It is a meeting that occurs once per iteration, typically once a week. − The desired features of the software, which are communicated by the customer, are combined with estimates provided by the programmers to determine what the most important factors of the software are. − Business writes a story describing desired functionality − Stories are written on index cards − Development estimates stories − Velocity determines number of stories per iteration − Business splits and prioritizes stories and determines the composition of releases − Velocity is measured and adjusted every iteration − Customer steers development Practices in XP
  • 18. − Pair Programming : Practices in XP
  • 19. − Pair Programming - All code is written by two programmers working at the same machine. − Two roles: implementation(Driver) and strategy(Navigator) − Driver has control over the workstation and is thinking mostly about the coding in detail. − Navigator is more focused on the big picture, and is continually reviewing the code that is being produced by Driver. − Benefits: − Continuous code review: better design, fewer defects − Collective code ownership − Discipline to always test and refactor − Learn from partner’s knowledge and experience (enhances technical skills) "Don't be afraid of Pair-Programming. You are not as good as you think , but your not as bad as you fear” - Ron Jeffries Practices in XP
  • 20. − Test Driven Development – Testing is done consistently throughout the process. − Unit Testing − Test Driven Development (TDD) − Acceptance Test Driven Development (ATDD) − Programmers design the tests first and then write the software to fulfill the requirements of the test. − XP says that the programmer is finished with a certain piece of code when he or she cannot come up with any further condition on which the code may fail. − The customer also provides acceptance tests at each stage to ensure the desired results are achieved. Practices in XP
  • 21. − Whole Team (On-Site Customer) - The XP project is directed by the customer who is available all the time to answer questions, set priorities and determine requirements of the project. − And also defines the tests for “Acceptance Test driven development” (ATDD). − Within XP, the "customer" is not the one who pays the bill, but the one who really uses the system. Practices in XP
  • 22. − Continuous Integration (CI) - The XP team integrates and builds the software system multiple times per day to keep all the programmers at the same stage of the development process at once. − It ensures that team is always working on the latest version of the software. − Continuous integration will avoid delays later on in the project cycle, caused by integration problems. − There are various tools, some of these are: − Hudson − Jenkins − Cruise Control − Bamboo Practices in XP
  • 23. − Design Improvement (Refactoring) - XP programmers improve the design of the software through every stage of development instead of waiting until the end of the development and going back to correct flaws. − XP advocates to refactor your code by changing the architecture, making it simpler and more generic without changing the functionality. − Continuously improve quality of the code − Improves Performance & Readability − Inbuilt practices of Unit Testing/TDD and Pair Programming give courage Practices in XP
  • 24. − Small Releases (Continuous Delivery) – The software is developed in small stages that are updated frequently. − It helps the customer to gain confidence in the progress of the project. − It helps maintain the concept of the whole team as the customer can now come up with his suggestions on the project based on real experience. Practices in XP
  • 25. − Coding Standard - The programmers all write code in the same way. This allows them to work in pairs and to share ownership of the code. − Coding standard is an agreed upon set of rules that the entire development team agree to adhere to throughout the project. − The standard specifies a consistent style and format for source code, within the chosen programming language, as well as various programming constructs and patterns that should be avoided in order to reduce the probability of defects. Practices in XP
  • 26. − Collective Code Ownership - Every line of code belongs to every programmer working on the project, so there are no issues of proprietary authorship to slow the project down, in turn, means that everybody is allowed to change any part of the code. − Pair programming contributes to this practice. − Collective ownership speeds up the development process, because if an error occurs in the code any programmer may fix it. Practices in XP
  • 27. − Simple Design : − Do the simplest thing that could possibly work − Programmers should take a "simple is the best" approach to software design. − Refactoring should also be used, to make complex code simpler. − The software should include only the code that is necessary to achieve the desired results communicated by the customer at each stage in the process. − The emphasis is not on building for future versions of the product − No duplicate code. − Fewest possible classes and methods Practices in XP
  • 28. − System Metaphor - All members of an XP team use common names and descriptions to guide development and communicate on common terms. − It's a naming concept for classes/methods that should make it easy for a team member to guess the functionality of a particular class/method, from its name only. − It is a story that everyone - customers, programmers, and managers - can tell about how the system works. Practices in XP
  • 29. − Sustainable Pace (40-Hour Week) - The XP team does not work excessive overtime to ensure that the team remains well-rested, alert and effective. − Key enabler to achieve sustainable pace is frequent code-merge, continuously integrated and always executable & test covered high quality code. − The intense collaborative way of working within the team drives a need to recharge over weekends. Practices in XP
  • 31. Gurtej Pal Singh Gurtej.singh@globallogic.com Cell # +91-99991-79795 Extn. # 2778 </eXtreme Programming (XP)>