Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
The
Extreme Programming
Model Damian Gordon
The
Extreme Programming
Model Damian Gordon
Contents
1. Overview
2. Details
3. Advantages
4. Disadvantages
5. Interesting
6. Reflection
7. Review
8. Summary
The Extreme Programming (XP) Model
1. Overview
Overview
• The “Extreme Programming (XP) Model” is a
model that represents one method as to how
software can be developed.
Timeline of Methodologies
6
1950s Code & Fix
1960s Design-Code-Test-Maintain
1970s Waterfall Model
1980s Spiral Model
1990s Rapid Application Development, V Model
2000s Agile Methods
Timeline of Methodologies
7
1950s Code & Fix
1960s Design-Code-Test-Maintain
1970s Waterfall Model
1980s Spiral Model
1990s Rapid Application Development, V Model
2000s Agile Methods
Overview
8
Overview
• Extreme Programming (XP) was created by
Kent Beck during his work on the C3 project.
• Beck became the C3 project leader in 1996
and began to refine the development
methodology used in the project
• He wrote a book on the methodology,
published in October 1999, called Extreme
Programming Explained.
9
Reference
• Beck, K. (1999) “Extreme Programming
Explained: Embrace Change”. Addison-Wesley,
ISBN 978-0321278654.
Kent Beck
• Born in 1961.
• an American software
engineer and the creator
of Extreme Programming
• was one of the 17 original
signatories of the Agile
Manifesto
• the leading proponent of
Test-Driven Development
2. Details
Extreme Programming (XP)
Extreme Programming (XP)
• The key assumption of XP is:
Extreme Programming (XP)
• The key assumption of XP is:
Embrace Change
Extreme Programming (XP)
• Start with the Planning Game:
• The game is a meeting that occurs once per iteration,
typically once a week. The planning process is
divided into two parts:
– Release Planning: This is focused on determining what
requirements are included in which near-term releases,
and when they should be delivered. The customers and
developers are both part of this.
– Iteration Planning: This plans the activities and tasks of the
developers. In this process the customer is not involved.
Extreme Programming (XP)
• This is done by:
– Emphasis on continuous feedback from the customer
– Short iterations
– Design and redesign
– Coding and testing frequently
– Eliminating defects early, thus reducing costs
– Keeping the customer involved throughout the
development
– Delivering working product to the customer
Extreme Programming (XP)
• Management-Practices
– On-Site Customer: A central customer contact must always be
accessible in order to clarify requirements and questions
directly.
– Planning Game: Projects, in accordance with XP, run iteratively
(repeatedly) and incrementally (gradually build on each other).
The contents of the next step are planned before each iteration.
All project members (incl. the customer) participate.
– Short Releases: New deliveries should be made at short
intervals. Consequently, customers receive the required
functions quicker and can therefore give feedback on the
development quicker.
12 Practices of XP
Extreme Programming (XP)
• Management-Practices
– On-Site Customer: A central customer contact must always be
accessible in order to clarify requirements and questions
directly.
– Planning Game: Projects, in accordance with XP, run iteratively
(repeatedly) and incrementally (gradually build on each other).
The contents of the next step are planned before each iteration.
All project members (incl. the customer) participate.
– Short Releases: New deliveries should be made at short
intervals. Consequently, customers receive the required
functions quicker and can therefore give feedback on the
development quicker.
Extreme Programming (XP)
• Team-Practices
– Metaphor: Only a few clear metaphors should describe the system
being developed so that the nitty-gritty of the system is clear to all of
the project members.
– Collective Ownership: The whole team is responsible for the system,
not individuals. Each developer must have access to all lines of code so
that each developer is able to take over the task of another developer.
– Continuous Integration: All changes to the system are integrated
promptly so that not too many dependencies between changes occur.
– Coding Standards: Regarding the common responsibility for the code,
there should be a given common standard for writing the code.
– Sustainable Pace: XP builds on the creativity of the individual project
members. This creativity cannot be achieved if the project team
constantly works overtime. Overtime is to be avoided.
Extreme Programming (XP)
• Programming-Practices
– Testing: All developments must be tested.
– Simple Design: The system should be designed as simply
as possible so that it is easier to understand, modify and
test.
– Refactoring: As soon as it becomes necessary to alter the
structure of the system, it should be implemented.
– Pair Programming: There are always two developers sitting
in front of a computer in order to increase the quality and
transfer the knowledge better.
Extreme Programming (XP)
• Project are broken down into 1-2 week
iterations.
• If changes occur in the middle of an iteration,
the team are capable of reacting to them, as
long as the team hasn’t started work on a
particular feature.
• Extreme Programming teams work in a strict
priority order. Features to be developed are
prioritized by the customer.
Extreme Programming (XP)
• Design
– Writing unit tests before programming and
keeping all of the tests running at all times. The
unit tests are automated and eliminates defects
early, thus reducing the costs.
– Starting with a simple design just enough to code
the features at hand and redesigning when
required.
Extreme Programming (XP)
• Design: User Stories
Extreme Programming (XP)
• Development
– Programming in pairs (called pair programming),
with two programmers at one screen, taking turns
to use the keyboard. While one of them is at the
keyboard, the other constantly reviews and
provides inputs.
– Integrating and testing the whole system several
times a day.
Extreme Programming (XP)
• Pair Programming
– two programmers work together at one
workstation.
– One, the driver, writes code while the other, the
observer or navigator, reviews each line of code
as it is typed in.
– The two programmers switch roles frequently.
Extreme Programming (XP)
• Pair Programming
– While reviewing, the observer also considers the
"strategic" direction of the work, coming up with
ideas for improvements and likely future problems
to address.
– This frees the driver to focus all of their attention
on the "tactical" aspects of completing the current
task, using the observer as a safety net and guide.
Extreme Programming (XP)
• Pair Programming
– Pair programming increases the man-hours
required to deliver code compared to
programmers working individually from up to
between 15% and 100%.
– However, the resulting code has about 15% fewer
defects.
Extreme Programming (XP)
• Production
– Putting a minimal working system into the
production quickly and upgrading it whenever
required.
– Keeping the customer involved all the time and
obtaining constant feedback.
Extreme Programming (XP)
3. Advantages
Advantages
• Large project are divided into manageable
amounts
Advantages
• Reduced costs and time required for project
realization.
Advantages
• Extreme Programming teams save lots of
money because they don’t use too much
documentation.
Advantages
• Simplicity is another advantage of Extreme
Programming projects.
Advantages
• XP is reduces the risks related to
programming. Normally programming
depends a lot on individuals key team
members. In XP, Using module structure, and
pair programing XP spreads the risk and
mitigate the dependence on individuals
Advantages
• In software simplicity always brings quality
and contributes the robustness. By bringing
simplicity, XP manages to create faster
software with less defects.
Test driven development at the coding stage
and the customer UAT validation leads to
successful development completion.
4. Disadvantages
Disadvantages
• Extreme Programming is focused on the code
rather than on design.
Disadvantages
• XP requires a detailed planning from the start
due to changing costs & scope
Disadvantages
• XP doesn't measure/plan Quality Assurance of
coding.
Disadvantages
• To convince developers to accept this tough
practice is not always easy. It requires more
discipline in the team and devotion of your
customers. Project management might
experience difficulties related with
the practice that changes during the life
cycle.
Disadvantages
• XP is practiced with pair programming which
might usually lead to too much duplication of
codes and data.
5. Interesting
Interesting
• XP engineering practices include things like
test-driven development, automated testing,
pair programming, simple design, and
refactoring.
Interesting
• XP says that the only truly important product
of the system development process is code.
Interesting
• Coding can also help to communicate
thoughts about programming problems. A
programmer dealing with a complex
programming problem, or finding it hard to
explain the solution to fellow programmers,
might code it in a simplified manner and use
the code to demonstrate what she means.
Interesting
• System-wide integration testing is
encouraged, initially, as a weekly activity, for
early detection of incompatible interfaces, to
reconnect before the separate sections
diverged widely from coherent functionality.
Interesting
• Listening is a key element of XP, programmers
must listen to what the customers need the
system to do, what "business logic" is needed.
Interesting
• XP is still evolving, assimilating more lessons
from experiences in the field. In the second
edition of Extreme Programming Explained,
five years after the first edition, Beck added
more values and practices and differentiated
between primary and corollary practices.
Interesting
There are other versions of the Model:
6. Reflections
Reflections
• XP is very useful when we have:
– Dynamically changing software requirements
– Risks caused by fixed time projects using new
technology
– Small, co-located extended development team
– The technology you are using allows for
automated unit and functional tests
Reflections
• XP sees communication as a vital aspect of
development, and most people agree that
face to face conversation is the best form of
communication, so XP suggests that the team
sit together in the same space without
barriers to communication, such as cubicle
walls.
Reflections
• XP tells you to build in some slack, the idea
behind slack is to add some low priority tasks
or stories in your weekly and quarterly cycles
that can be dropped if the team gets behind
on more important tasks or stories.
Reflections
• XP focuses on practice excellence. The method
prescribes a small number of absolutely
essential practices and encourages teams to
perform those practices as good as they
possibly can, almost to the extreme.
Reflections
7. Review
Review
• What did we learn?
8. Summary
Summary
The Extreme Programming (XP) Model

More Related Content

What's hot

Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
Gurban Daniel
 
Agile Software Development Life Cycle
Agile Software Development Life CycleAgile Software Development Life Cycle
Agile Software Development Life Cycle
UTKARSHSRIVASTAVA235
 
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
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software Development
Life Cycle Engineering
 
Agile software development
Agile software developmentAgile software development
Agile software development
Rajesh Piryani
 
Feature driven development (FDD)
Feature driven development (FDD)Feature driven development (FDD)
Feature driven development (FDD)
LennonDukeDuero
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
Amit Verma
 
Agile sdlc
Agile sdlcAgile sdlc
Agile sdlc
Bhawani N Prasad
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
Mohit Kumar
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
Gurtej Pal Singh
 
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
 
The Scrum Model
The Scrum ModelThe Scrum Model
The Scrum Model
Damian T. Gordon
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
Tyler Rose
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
infolock
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
Raghav Seth
 
Iterative model
Iterative modelIterative model
Iterative model
Vaibhav Dash
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
Purvik Rana
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
Suresh Koujalagi
 

What's hot (20)

Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Agile Software Development Life Cycle
Agile Software Development Life CycleAgile Software Development Life Cycle
Agile Software Development Life Cycle
 
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
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Introduction to Agile Software Development
Introduction to Agile Software DevelopmentIntroduction to Agile Software Development
Introduction to Agile Software Development
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Feature driven development (FDD)
Feature driven development (FDD)Feature driven development (FDD)
Feature driven development (FDD)
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
Agile sdlc
Agile sdlcAgile sdlc
Agile sdlc
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
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
 
The Scrum Model
The Scrum ModelThe Scrum Model
The Scrum Model
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
 
Iterative model
Iterative modelIterative model
Iterative model
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 

Viewers also liked

Universal Design for Learning: Differentiated Instruction
Universal Design for Learning: Differentiated InstructionUniversal Design for Learning: Differentiated Instruction
Universal Design for Learning: Differentiated Instruction
Damian T. Gordon
 
Introduction to Python programming
Introduction to Python programmingIntroduction to Python programming
Introduction to Python programming
Damian T. Gordon
 
Object-Orientated Design
Object-Orientated DesignObject-Orientated Design
Object-Orientated Design
Damian T. Gordon
 
Python: Multiple Inheritance
Python: Multiple InheritancePython: Multiple Inheritance
Python: Multiple Inheritance
Damian T. Gordon
 
Python: Polymorphism
Python: PolymorphismPython: Polymorphism
Python: Polymorphism
Damian T. Gordon
 
Python: The Iterator Pattern
Python: The Iterator PatternPython: The Iterator Pattern
Python: The Iterator Pattern
Damian T. Gordon
 
Python: Manager Objects
Python: Manager ObjectsPython: Manager Objects
Python: Manager Objects
Damian T. Gordon
 
Creating Objects in Python
Creating Objects in PythonCreating Objects in Python
Creating Objects in Python
Damian T. Gordon
 
Python: Design Patterns
Python: Design PatternsPython: Design Patterns
Python: Design Patterns
Damian T. Gordon
 
Python: Modules and Packages
Python: Modules and PackagesPython: Modules and Packages
Python: Modules and Packages
Damian T. Gordon
 
Python: Access Control
Python: Access ControlPython: Access Control
Python: Access Control
Damian T. Gordon
 
Python: Basic Inheritance
Python: Basic InheritancePython: Basic Inheritance
Python: Basic Inheritance
Damian T. Gordon
 
Python: Third-Party Libraries
Python: Third-Party LibrariesPython: Third-Party Libraries
Python: Third-Party Libraries
Damian T. Gordon
 
Python: Migrating from Procedural to Object-Oriented Programming
Python: Migrating from Procedural to Object-Oriented ProgrammingPython: Migrating from Procedural to Object-Oriented Programming
Python: Migrating from Procedural to Object-Oriented Programming
Damian T. Gordon
 

Viewers also liked (14)

Universal Design for Learning: Differentiated Instruction
Universal Design for Learning: Differentiated InstructionUniversal Design for Learning: Differentiated Instruction
Universal Design for Learning: Differentiated Instruction
 
Introduction to Python programming
Introduction to Python programmingIntroduction to Python programming
Introduction to Python programming
 
Object-Orientated Design
Object-Orientated DesignObject-Orientated Design
Object-Orientated Design
 
Python: Multiple Inheritance
Python: Multiple InheritancePython: Multiple Inheritance
Python: Multiple Inheritance
 
Python: Polymorphism
Python: PolymorphismPython: Polymorphism
Python: Polymorphism
 
Python: The Iterator Pattern
Python: The Iterator PatternPython: The Iterator Pattern
Python: The Iterator Pattern
 
Python: Manager Objects
Python: Manager ObjectsPython: Manager Objects
Python: Manager Objects
 
Creating Objects in Python
Creating Objects in PythonCreating Objects in Python
Creating Objects in Python
 
Python: Design Patterns
Python: Design PatternsPython: Design Patterns
Python: Design Patterns
 
Python: Modules and Packages
Python: Modules and PackagesPython: Modules and Packages
Python: Modules and Packages
 
Python: Access Control
Python: Access ControlPython: Access Control
Python: Access Control
 
Python: Basic Inheritance
Python: Basic InheritancePython: Basic Inheritance
Python: Basic Inheritance
 
Python: Third-Party Libraries
Python: Third-Party LibrariesPython: Third-Party Libraries
Python: Third-Party Libraries
 
Python: Migrating from Procedural to Object-Oriented Programming
Python: Migrating from Procedural to Object-Oriented ProgrammingPython: Migrating from Procedural to Object-Oriented Programming
Python: Migrating from Procedural to Object-Oriented Programming
 

Similar to The Extreme Programming (XP) Model

Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
Mohamed Abdelrahman
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
Durga Prasad
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
Amna Ch
 
XP O.ppt
XP O.pptXP O.ppt
XP O.ppt
ssuser98a1af
 
Software engineering presentation for CS
Software engineering presentation for CSSoftware engineering presentation for CS
Software engineering presentation for CS
umairmalik9090
 
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
IIITA
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
Ahsan Rahim
 
Xp methadology
Xp methadologyXp methadology
Xp methadology
christina thomas
 
Agile
AgileAgile
Agile
Komal2525
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Alex Tarra
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
Bassam Kanber
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
jackcrews
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
International Islamic University Islamabad
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
Rupesh Vaishnav
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
Ajit Nayak
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
guest1c30ed5
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
Delowar hossain
 
Introduction to lean and agile
Introduction to lean and agileIntroduction to lean and agile
Introduction to lean and agile
Terry Bunio
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
ShudipPal
 

Similar to The Extreme Programming (XP) Model (20)

Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
XP O.ppt
XP O.pptXP O.ppt
XP O.ppt
 
Software engineering presentation for CS
Software engineering presentation for CSSoftware engineering presentation for CS
Software engineering presentation for CS
 
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
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Xp methadology
Xp methadologyXp methadology
Xp methadology
 
Agile
AgileAgile
Agile
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
Introduction to lean and agile
Introduction to lean and agileIntroduction to lean and agile
Introduction to lean and agile
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 

More from Damian T. Gordon

Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.
Damian T. Gordon
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Damian T. Gordon
 
REST and RESTful Services
REST and RESTful ServicesREST and RESTful Services
REST and RESTful Services
Damian T. Gordon
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
Damian T. Gordon
 
Cloud Identity Management
Cloud Identity ManagementCloud Identity Management
Cloud Identity Management
Damian T. Gordon
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
Damian T. Gordon
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
Damian T. Gordon
 
Introduction to ChatGPT
Introduction to ChatGPTIntroduction to ChatGPT
Introduction to ChatGPT
Damian T. Gordon
 
How to Argue Logically
How to Argue LogicallyHow to Argue Logically
How to Argue Logically
Damian T. Gordon
 
Evaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSEvaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONS
Damian T. Gordon
 
Evaluating Teaching: MERLOT
Evaluating Teaching: MERLOTEvaluating Teaching: MERLOT
Evaluating Teaching: MERLOT
Damian T. Gordon
 
Evaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricEvaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson Rubric
Damian T. Gordon
 
Evaluating Teaching: LORI
Evaluating Teaching: LORIEvaluating Teaching: LORI
Evaluating Teaching: LORI
Damian T. Gordon
 
Designing Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDesigning Teaching: Pause Procedure
Designing Teaching: Pause Procedure
Damian T. Gordon
 
Designing Teaching: ADDIE
Designing Teaching: ADDIEDesigning Teaching: ADDIE
Designing Teaching: ADDIE
Damian T. Gordon
 
Designing Teaching: ASSURE
Designing Teaching: ASSUREDesigning Teaching: ASSURE
Designing Teaching: ASSURE
Damian T. Gordon
 
Designing Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDesigning Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning Types
Damian T. Gordon
 
Designing Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDesigning Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of Instruction
Damian T. Gordon
 
Designing Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDesigning Teaching: Elaboration Theory
Designing Teaching: Elaboration Theory
Damian T. Gordon
 
Universally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsUniversally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some Considerations
Damian T. Gordon
 

More from Damian T. Gordon (20)

Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
REST and RESTful Services
REST and RESTful ServicesREST and RESTful Services
REST and RESTful Services
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
 
Cloud Identity Management
Cloud Identity ManagementCloud Identity Management
Cloud Identity Management
 
Containers and Docker
Containers and DockerContainers and Docker
Containers and Docker
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Introduction to ChatGPT
Introduction to ChatGPTIntroduction to ChatGPT
Introduction to ChatGPT
 
How to Argue Logically
How to Argue LogicallyHow to Argue Logically
How to Argue Logically
 
Evaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSEvaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONS
 
Evaluating Teaching: MERLOT
Evaluating Teaching: MERLOTEvaluating Teaching: MERLOT
Evaluating Teaching: MERLOT
 
Evaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricEvaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson Rubric
 
Evaluating Teaching: LORI
Evaluating Teaching: LORIEvaluating Teaching: LORI
Evaluating Teaching: LORI
 
Designing Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDesigning Teaching: Pause Procedure
Designing Teaching: Pause Procedure
 
Designing Teaching: ADDIE
Designing Teaching: ADDIEDesigning Teaching: ADDIE
Designing Teaching: ADDIE
 
Designing Teaching: ASSURE
Designing Teaching: ASSUREDesigning Teaching: ASSURE
Designing Teaching: ASSURE
 
Designing Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDesigning Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning Types
 
Designing Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDesigning Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of Instruction
 
Designing Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDesigning Teaching: Elaboration Theory
Designing Teaching: Elaboration Theory
 
Universally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsUniversally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some Considerations
 

Recently uploaded

Capitol Doctoral Presentation -June 2024v2.pptx
Capitol Doctoral Presentation -June 2024v2.pptxCapitol Doctoral Presentation -June 2024v2.pptx
Capitol Doctoral Presentation -June 2024v2.pptx
CapitolTechU
 
Principles of Roods Approach!!!!!!!.pptx
Principles of Roods Approach!!!!!!!.pptxPrinciples of Roods Approach!!!!!!!.pptx
Principles of Roods Approach!!!!!!!.pptx
ibtesaam huma
 
The Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptx
The Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptxThe Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptx
The Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptx
OH TEIK BIN
 
Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...
Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...
Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...
Zuzana Mészárosová
 
How to Install Theme in the Odoo 17 ERP
How to  Install Theme in the Odoo 17 ERPHow to  Install Theme in the Odoo 17 ERP
How to Install Theme in the Odoo 17 ERP
Celine George
 
UNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptx
UNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptxUNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptx
UNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptx
hemaxiparmar
 
2024 KWL Back 2 School Summer Conference
2024 KWL Back 2 School Summer Conference2024 KWL Back 2 School Summer Conference
2024 KWL Back 2 School Summer Conference
KlettWorldLanguages
 
Split Shifts From Gantt View in the Odoo 17
Split Shifts From Gantt View in the  Odoo 17Split Shifts From Gantt View in the  Odoo 17
Split Shifts From Gantt View in the Odoo 17
Celine George
 
Final ebook Keeping the Memory @live.pdf
Final ebook Keeping the Memory @live.pdfFinal ebook Keeping the Memory @live.pdf
Final ebook Keeping the Memory @live.pdf
Zuzana Mészárosová
 
Righteous among Nations - eTwinning e-book (1).pdf
Righteous among Nations - eTwinning e-book (1).pdfRighteous among Nations - eTwinning e-book (1).pdf
Righteous among Nations - eTwinning e-book (1).pdf
Zuzana Mészárosová
 
Lesson 11 - On Happiness. Introduction to Philosophy of a Human Personpptx
Lesson 11 - On Happiness. Introduction to Philosophy of a Human PersonpptxLesson 11 - On Happiness. Introduction to Philosophy of a Human Personpptx
Lesson 11 - On Happiness. Introduction to Philosophy of a Human Personpptx
JonathanMansueto1
 
The membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERPThe membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERP
Celine George
 
Conducting exciting academic research in Computer Science
Conducting exciting academic research in Computer ScienceConducting exciting academic research in Computer Science
Conducting exciting academic research in Computer Science
Abhik Roychoudhury
 
Webinar Innovative assessments for SOcial Emotional Skills
Webinar Innovative assessments for SOcial Emotional SkillsWebinar Innovative assessments for SOcial Emotional Skills
Webinar Innovative assessments for SOcial Emotional Skills
EduSkills OECD
 
How to Store Data on the Odoo 17 Website
How to Store Data on the Odoo 17 WebsiteHow to Store Data on the Odoo 17 Website
How to Store Data on the Odoo 17 Website
Celine George
 
Front Desk Management in the Odoo 17 ERP
Front Desk  Management in the Odoo 17 ERPFront Desk  Management in the Odoo 17 ERP
Front Desk Management in the Odoo 17 ERP
Celine George
 
The basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptxThe basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptx
heathfieldcps1
 
debts of gratitude 1 and silent b activity.pptx
debts of gratitude 1 and silent b activity.pptxdebts of gratitude 1 and silent b activity.pptx
debts of gratitude 1 and silent b activity.pptx
AncyTEnglish
 
SYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISING
SYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISINGSYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISING
SYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISING
Dr Vijay Vishwakarma
 

Recently uploaded (20)

Capitol Doctoral Presentation -June 2024v2.pptx
Capitol Doctoral Presentation -June 2024v2.pptxCapitol Doctoral Presentation -June 2024v2.pptx
Capitol Doctoral Presentation -June 2024v2.pptx
 
Principles of Roods Approach!!!!!!!.pptx
Principles of Roods Approach!!!!!!!.pptxPrinciples of Roods Approach!!!!!!!.pptx
Principles of Roods Approach!!!!!!!.pptx
 
The Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptx
The Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptxThe Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptx
The Value of Time ~ A Story to Ponder On (Eng. & Chi.).pptx
 
Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...
Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...
Traces of the Holocaust in our communities in Levice Sovakia and Constanta Ro...
 
How to Install Theme in the Odoo 17 ERP
How to  Install Theme in the Odoo 17 ERPHow to  Install Theme in the Odoo 17 ERP
How to Install Theme in the Odoo 17 ERP
 
UNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptx
UNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptxUNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptx
UNIT 5 - PATIENT SAFETY & CLINICAL RISK.pptx
 
2024 KWL Back 2 School Summer Conference
2024 KWL Back 2 School Summer Conference2024 KWL Back 2 School Summer Conference
2024 KWL Back 2 School Summer Conference
 
Split Shifts From Gantt View in the Odoo 17
Split Shifts From Gantt View in the  Odoo 17Split Shifts From Gantt View in the  Odoo 17
Split Shifts From Gantt View in the Odoo 17
 
Final ebook Keeping the Memory @live.pdf
Final ebook Keeping the Memory @live.pdfFinal ebook Keeping the Memory @live.pdf
Final ebook Keeping the Memory @live.pdf
 
Righteous among Nations - eTwinning e-book (1).pdf
Righteous among Nations - eTwinning e-book (1).pdfRighteous among Nations - eTwinning e-book (1).pdf
Righteous among Nations - eTwinning e-book (1).pdf
 
“A NOSSA CA(U)SA”. .
“A NOSSA CA(U)SA”.                      .“A NOSSA CA(U)SA”.                      .
“A NOSSA CA(U)SA”. .
 
Lesson 11 - On Happiness. Introduction to Philosophy of a Human Personpptx
Lesson 11 - On Happiness. Introduction to Philosophy of a Human PersonpptxLesson 11 - On Happiness. Introduction to Philosophy of a Human Personpptx
Lesson 11 - On Happiness. Introduction to Philosophy of a Human Personpptx
 
The membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERPThe membership Module in the Odoo 17 ERP
The membership Module in the Odoo 17 ERP
 
Conducting exciting academic research in Computer Science
Conducting exciting academic research in Computer ScienceConducting exciting academic research in Computer Science
Conducting exciting academic research in Computer Science
 
Webinar Innovative assessments for SOcial Emotional Skills
Webinar Innovative assessments for SOcial Emotional SkillsWebinar Innovative assessments for SOcial Emotional Skills
Webinar Innovative assessments for SOcial Emotional Skills
 
How to Store Data on the Odoo 17 Website
How to Store Data on the Odoo 17 WebsiteHow to Store Data on the Odoo 17 Website
How to Store Data on the Odoo 17 Website
 
Front Desk Management in the Odoo 17 ERP
Front Desk  Management in the Odoo 17 ERPFront Desk  Management in the Odoo 17 ERP
Front Desk Management in the Odoo 17 ERP
 
The basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptxThe basics of sentences session 9pptx.pptx
The basics of sentences session 9pptx.pptx
 
debts of gratitude 1 and silent b activity.pptx
debts of gratitude 1 and silent b activity.pptxdebts of gratitude 1 and silent b activity.pptx
debts of gratitude 1 and silent b activity.pptx
 
SYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISING
SYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISINGSYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISING
SYBCOM SEM III UNIT 1 INTRODUCTION TO ADVERTISING
 

The Extreme Programming (XP) Model

  • 1. The Extreme Programming Model Damian Gordon The Extreme Programming Model Damian Gordon
  • 2. Contents 1. Overview 2. Details 3. Advantages 4. Disadvantages 5. Interesting 6. Reflection 7. Review 8. Summary
  • 5. Overview • The “Extreme Programming (XP) Model” is a model that represents one method as to how software can be developed.
  • 6. Timeline of Methodologies 6 1950s Code & Fix 1960s Design-Code-Test-Maintain 1970s Waterfall Model 1980s Spiral Model 1990s Rapid Application Development, V Model 2000s Agile Methods
  • 7. Timeline of Methodologies 7 1950s Code & Fix 1960s Design-Code-Test-Maintain 1970s Waterfall Model 1980s Spiral Model 1990s Rapid Application Development, V Model 2000s Agile Methods
  • 9. Overview • Extreme Programming (XP) was created by Kent Beck during his work on the C3 project. • Beck became the C3 project leader in 1996 and began to refine the development methodology used in the project • He wrote a book on the methodology, published in October 1999, called Extreme Programming Explained. 9
  • 10. Reference • Beck, K. (1999) “Extreme Programming Explained: Embrace Change”. Addison-Wesley, ISBN 978-0321278654.
  • 11. Kent Beck • Born in 1961. • an American software engineer and the creator of Extreme Programming • was one of the 17 original signatories of the Agile Manifesto • the leading proponent of Test-Driven Development
  • 14. Extreme Programming (XP) • The key assumption of XP is:
  • 15. Extreme Programming (XP) • The key assumption of XP is: Embrace Change
  • 16. Extreme Programming (XP) • Start with the Planning Game: • The game is a meeting that occurs once per iteration, typically once a week. The planning process is divided into two parts: – Release Planning: This is focused on determining what requirements are included in which near-term releases, and when they should be delivered. The customers and developers are both part of this. – Iteration Planning: This plans the activities and tasks of the developers. In this process the customer is not involved.
  • 17. Extreme Programming (XP) • This is done by: – Emphasis on continuous feedback from the customer – Short iterations – Design and redesign – Coding and testing frequently – Eliminating defects early, thus reducing costs – Keeping the customer involved throughout the development – Delivering working product to the customer
  • 18. Extreme Programming (XP) • Management-Practices – On-Site Customer: A central customer contact must always be accessible in order to clarify requirements and questions directly. – Planning Game: Projects, in accordance with XP, run iteratively (repeatedly) and incrementally (gradually build on each other). The contents of the next step are planned before each iteration. All project members (incl. the customer) participate. – Short Releases: New deliveries should be made at short intervals. Consequently, customers receive the required functions quicker and can therefore give feedback on the development quicker.
  • 20. Extreme Programming (XP) • Management-Practices – On-Site Customer: A central customer contact must always be accessible in order to clarify requirements and questions directly. – Planning Game: Projects, in accordance with XP, run iteratively (repeatedly) and incrementally (gradually build on each other). The contents of the next step are planned before each iteration. All project members (incl. the customer) participate. – Short Releases: New deliveries should be made at short intervals. Consequently, customers receive the required functions quicker and can therefore give feedback on the development quicker.
  • 21. Extreme Programming (XP) • Team-Practices – Metaphor: Only a few clear metaphors should describe the system being developed so that the nitty-gritty of the system is clear to all of the project members. – Collective Ownership: The whole team is responsible for the system, not individuals. Each developer must have access to all lines of code so that each developer is able to take over the task of another developer. – Continuous Integration: All changes to the system are integrated promptly so that not too many dependencies between changes occur. – Coding Standards: Regarding the common responsibility for the code, there should be a given common standard for writing the code. – Sustainable Pace: XP builds on the creativity of the individual project members. This creativity cannot be achieved if the project team constantly works overtime. Overtime is to be avoided.
  • 22. Extreme Programming (XP) • Programming-Practices – Testing: All developments must be tested. – Simple Design: The system should be designed as simply as possible so that it is easier to understand, modify and test. – Refactoring: As soon as it becomes necessary to alter the structure of the system, it should be implemented. – Pair Programming: There are always two developers sitting in front of a computer in order to increase the quality and transfer the knowledge better.
  • 23. Extreme Programming (XP) • Project are broken down into 1-2 week iterations. • If changes occur in the middle of an iteration, the team are capable of reacting to them, as long as the team hasn’t started work on a particular feature. • Extreme Programming teams work in a strict priority order. Features to be developed are prioritized by the customer.
  • 24. Extreme Programming (XP) • Design – Writing unit tests before programming and keeping all of the tests running at all times. The unit tests are automated and eliminates defects early, thus reducing the costs. – Starting with a simple design just enough to code the features at hand and redesigning when required.
  • 25. Extreme Programming (XP) • Design: User Stories
  • 26. Extreme Programming (XP) • Development – Programming in pairs (called pair programming), with two programmers at one screen, taking turns to use the keyboard. While one of them is at the keyboard, the other constantly reviews and provides inputs. – Integrating and testing the whole system several times a day.
  • 27. Extreme Programming (XP) • Pair Programming – two programmers work together at one workstation. – One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. – The two programmers switch roles frequently.
  • 28. Extreme Programming (XP) • Pair Programming – While reviewing, the observer also considers the "strategic" direction of the work, coming up with ideas for improvements and likely future problems to address. – This frees the driver to focus all of their attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.
  • 29. Extreme Programming (XP) • Pair Programming – Pair programming increases the man-hours required to deliver code compared to programmers working individually from up to between 15% and 100%. – However, the resulting code has about 15% fewer defects.
  • 30. Extreme Programming (XP) • Production – Putting a minimal working system into the production quickly and upgrading it whenever required. – Keeping the customer involved all the time and obtaining constant feedback.
  • 33. Advantages • Large project are divided into manageable amounts
  • 34. Advantages • Reduced costs and time required for project realization.
  • 35. Advantages • Extreme Programming teams save lots of money because they don’t use too much documentation.
  • 36. Advantages • Simplicity is another advantage of Extreme Programming projects.
  • 37. Advantages • XP is reduces the risks related to programming. Normally programming depends a lot on individuals key team members. In XP, Using module structure, and pair programing XP spreads the risk and mitigate the dependence on individuals
  • 38. Advantages • In software simplicity always brings quality and contributes the robustness. By bringing simplicity, XP manages to create faster software with less defects. Test driven development at the coding stage and the customer UAT validation leads to successful development completion.
  • 40. Disadvantages • Extreme Programming is focused on the code rather than on design.
  • 41. Disadvantages • XP requires a detailed planning from the start due to changing costs & scope
  • 42. Disadvantages • XP doesn't measure/plan Quality Assurance of coding.
  • 43. Disadvantages • To convince developers to accept this tough practice is not always easy. It requires more discipline in the team and devotion of your customers. Project management might experience difficulties related with the practice that changes during the life cycle.
  • 44. Disadvantages • XP is practiced with pair programming which might usually lead to too much duplication of codes and data.
  • 46. Interesting • XP engineering practices include things like test-driven development, automated testing, pair programming, simple design, and refactoring.
  • 47. Interesting • XP says that the only truly important product of the system development process is code.
  • 48. Interesting • Coding can also help to communicate thoughts about programming problems. A programmer dealing with a complex programming problem, or finding it hard to explain the solution to fellow programmers, might code it in a simplified manner and use the code to demonstrate what she means.
  • 49. Interesting • System-wide integration testing is encouraged, initially, as a weekly activity, for early detection of incompatible interfaces, to reconnect before the separate sections diverged widely from coherent functionality.
  • 50. Interesting • Listening is a key element of XP, programmers must listen to what the customers need the system to do, what "business logic" is needed.
  • 51. Interesting • XP is still evolving, assimilating more lessons from experiences in the field. In the second edition of Extreme Programming Explained, five years after the first edition, Beck added more values and practices and differentiated between primary and corollary practices.
  • 52. Interesting There are other versions of the Model:
  • 54. Reflections • XP is very useful when we have: – Dynamically changing software requirements – Risks caused by fixed time projects using new technology – Small, co-located extended development team – The technology you are using allows for automated unit and functional tests
  • 55. Reflections • XP sees communication as a vital aspect of development, and most people agree that face to face conversation is the best form of communication, so XP suggests that the team sit together in the same space without barriers to communication, such as cubicle walls.
  • 56. Reflections • XP tells you to build in some slack, the idea behind slack is to add some low priority tasks or stories in your weekly and quarterly cycles that can be dropped if the team gets behind on more important tasks or stories.
  • 57. Reflections • XP focuses on practice excellence. The method prescribes a small number of absolutely essential practices and encourages teams to perform those practices as good as they possibly can, almost to the extreme.
  • 60. Review • What did we learn?

Editor's Notes

  1. The purpose of the Planning Game is to guide the product into delivery. Instead of predicting the exact dates of when deliverables will be needed and produced, which is difficult to do, it aims to "steer the project" into delivery using a straightforward approach.