SlideShare a Scribd company logo
Agile Development and
eXtreme Programming
by: Fatemeh Karimi
Agenda
• Agile Development
• Extreme Programming (XP)
• XP Process
• XP Key Practices
• Advantages
• Disadvantages
2/34
Agile Development
3/34
Agile Manifesto
“Our highest priority is to satisfy the
customer through early and continuous
delivery of valuable software“
[Manifesto for Agile]
4/34
• Incremental
• Working software over comprehensive documentation
• Cooperation
• Customer collaboration over contract negotiation
• Straightforward
• Individuals and interactions over processes and tools
• Adaptive
• Responding to change over following a plan
The Agile Spirit
5/34
Agile Methodologies
• eXtreme Programming (XP)
• Scrum
• Crystal family of methodologies
• Feature-Driven Development (FDD)
• Adaptive Software Development (ASD)
• Dynamic System Development Model (DSDM)
• Agile Unified Process (AUP)
6/34
eXtreme
Programming
The XP Guru: Kent Beck
• eXtreme Programming
• The most prominent agile development
methodology
Kent Beck
1st ed. Oct 1999
2nd ed. Nov 2004
8/34
• Extreme programming (XP) is a software development
methodology which is intended to improve software
quality and responsiveness to changing customer
requirements.
• As a type of agile software development, it advocates
frequent "releases" in short development cycles.
• this way is intended to improve productivity and
introduce checkpoints at which new customer
requirements can be adopted.
Extreme programming
9/34
XP Process
10/34
The 12 Key Practices
• The Planning Game
• Small Releases
• Metaphor
• Simple Design
• Test-Driven Development
• Refactoring
• Pair Programming
• Collective Ownership
• Continuous Integration
• 40-Hour Workweek
• On-site Customer
• Coding Standards
11/34
1. The Planning Game
• Requirements via User Stories
• Short cards with natural language description of
what a customer wants
• Prioritized by customer
• Resource and risk estimated by developers
• Play the Planning Game after each increment
12/34
User Stories
13/34
2. Metaphor
• Guide all development and conversations with a
simple shared story of how the whole system works
• Gives the team a whole picture of describing the
system, where new parts fit, etc.
• Words used to identify technical entities should be
chosen from the metaphor
• The default metaphor is the business domain, and it’s
usually just fine
14/34
3. Testing
• Test-Driven Development (TDD)
• Write tests before code
• Tests are automated
• Acceptance Tests
• Written with the customer
• Acts as “contract”
• Measure of progress
15/34
Test-Driven Development
• Developers write unit tests before coding
• Motivates coding
• Improves design: cohesion and coupling
• Provides regression tests
• Provides specification by example
public void TestMultiplication() {
Dollar five = Money.dollar(5);
AssertEqual(new Dollar(10), five.times(2));
AssertEqual(new Dollar(15), five.times(3));
}
16/34
4. Pair Programming
• Two software engineers work on one task at one
computer:
• The driver has control of the keyboard and mouse and
creates the implementation
• The navigator watches the driver’s implementation
• Identifies defects and participates in on-demand
brainstorming
• The roles of driver and observer are periodically rotated
17/34
Pair Programming
• Pairs produce higher quality code
• Pairs complete their tasks faster
• Pairs enjoy their work more
• Pairs feel more confident in their work
18/34
5. Refactoring
• Improve the design of existing code without changing
its functionality
• Relies on unit testing to ensure the code is not broken
• Bad smells in code:
• Long method / class
• Duplicate code
• Methods does several different things (bad cohesion)
• Too much dependencies (bad coupling)
• Complex / unreadable code
19/34
6. Simple Design
• No Big Design Up Front (BDUF)
• Reduces the overhead
• Gets feedback early
• “Do The Simplest Thing That Could Possibly Work”
• Later use refactoring to change it
• Not too much formal documentation
20/34
7. Collective Code Ownership
• Code to belongs to the project, not to an individual
engineer!
• Any engineer can modify any code
• Better quality of the code
• Engineers are not required to work around
deficiencies in code they do not own
• Faster progress
• No need to wait for someone else to fix something
21/34
8. Continuous Integration
• Pair writes up unit test cases and code for a task (part
of a user story)
• Pair unit tests code to 100%
• Pair integrates
• Pair runs ALL unit test cases to 100%
• Pair moves on to next task with clean slate and clear
mind
• Should happen once or twice a day
22/34
9. On-Site Customer
• Customer available on site
• Clarify user stories
• Make critical business decisions
• Developers don’t make assumptions
• Developers don’t have to wait for decisions
• Face to face communication minimizes the chances of
misunderstanding
23/34
10. Small Releases
• As small as possible, but still delivering business value
• No releases to ‘implement the database’
• Get customer feedback early and often
• Do the planning game after each iteration
• Do they want something different?
• Have their priorities changed?
24/34
11. Forty-Hour Work Week
• Kent Beck says, “ . . . fresh and eager every morning,
and tired and satisfied every night”
• Burning the midnight oil kills performance
• Tired developers make more mistakes
• Slows you down more in the long run
25/34
12. Coding Standards
• Use coding conventions
• Rules for naming, formatting, etc.
• Write readable and maintainable code
• Method commenting
• Self-documenting code
• Don't comment bad code, rewrite it!
• Refactor to improve the design
26/34
The 13th Practice?
The Stand Up Meeting
• Start the day with 15-minute meeting
• Everyone stands up (so the meeting stays short) in
circle
• Going around the room everyone says specifically:
• What they did the day before
• What they plan to do today
• Any obstacles they are experiencing
• Can be the way pairs are formed
27/34
Richness of the communication channel
Communicationeffectiveness
2 people at
whiteboard
2 people
on phone
2 people
on email
Videotape
Paper
People Communicate Most Effectively Face-to-Face
28/34
So What does XP Apply to?
• Domains with changing requirements
• High-risk projects (including those with high schedule
risk)
• Small project team: 2 – 12 programmers
• Cannot be used with a large team
• Extended development team
• Developers, managers and customer
• Co-located
• Automated testability
29/34
Advantages
• Customer focus increase the chance that the software
produced will actually meet the needs of the users
• The focus on small, incremental release decreases the risk
on your project:
• by showing that your approach works and
• by putting functionality in the hands of your users, enabling them to
provide timely feedback regarding your work.
• Continuous testing and integration helps to increase the
quality of your work
• XP is attractive to programmers who normally are unwilling
to adopt a software process, enabling your organization to
manage its software efforts better.
30/34
Disadvantages
• XP is geared toward a single project, developed and maintained by
a single team.
• XP is particularly vulnerable to "bad apple" developers who:
• don't work well with others
• who think they know it all, and/or
• who are not willing to share their "superior” code
• XP will not work in an environment where a customer or manager
insists on a complete specification or design before they begin
programming.
• XP will not work in an environment where programmers are
separated geographically.
31/34
Conclusion
• XP focuses on people
• Values team work over power
• XP works well when there are
uncertain or volatile requirements
• XP is a process not a miracle cure for
all software development problems
32/34
References/Links
• http://www.extremeprogramming.org
• http://www.xprogramming.com
• http://www.jera.com/techinfo/xpfaq.html
• http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap
• http://ootips.org/xp.html
• http://pairprogramming.com/
33/34
Thanks for your attention…

More Related Content

What's hot

Agile Scrum Methodology
Agile Scrum MethodologyAgile Scrum Methodology
Agile Scrum Methodology
Rajeev Misra
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
Naresh Jain
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
Pradeep Patel, PMP®
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
Rupesh Vaishnav
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
Amit Verma
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
Ruhaim Izmeth
 
12 principles for Agile Development
12 principles for Agile Development 12 principles for Agile Development
12 principles for Agile Development
Julien Henzelin
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
Nguyen Hai
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
Gurtej Pal Singh
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile MethodologyHaresh Karkar
 
What is Scrum? SlideShare
What is Scrum? SlideShareWhat is Scrum? SlideShare
What is Scrum? SlideShare
Invensis Learning
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile methodology
Agile methodologyAgile methodology
Agile methodology
Tyler Rose
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overviewguestb4c770
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
Naveen Kumar Singh
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
Agile sdlc
Agile sdlcAgile sdlc
Agile sdlc
Bhawani N Prasad
 
Agile software development
Agile software developmentAgile software development
Agile software development
Rajesh Piryani
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Aciron Consulting
 

What's hot (20)

Agile Scrum Methodology
Agile Scrum MethodologyAgile Scrum Methodology
Agile Scrum Methodology
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
12 principles for Agile Development
12 principles for Agile Development 12 principles for Agile Development
12 principles for Agile Development
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile Methodology
 
What is Scrum? SlideShare
What is Scrum? SlideShareWhat is Scrum? SlideShare
What is Scrum? SlideShare
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology ppt
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Agile sdlc
Agile sdlcAgile sdlc
Agile sdlc
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 

Viewers also liked

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
 
Genetic Algorithm
Genetic AlgorithmGenetic Algorithm
Genetic Algorithm
Fatemeh Karimi
 
Clustering using GA and Hill-climbing
Clustering using GA and Hill-climbingClustering using GA and Hill-climbing
Clustering using GA and Hill-climbing
Fatemeh Karimi
 
optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm
Fatemeh Karimi
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managers
Yaniv Pessach
 
Scaling Agility Primer - Principles of Scaling Agility v.1
Scaling Agility Primer - Principles of Scaling Agility v.1Scaling Agility Primer - Principles of Scaling Agility v.1
Scaling Agility Primer - Principles of Scaling Agility v.1
Priyank Pathak
 
Choosing right agile methodology for your project
Choosing right agile methodology for your projectChoosing right agile methodology for your project
Choosing right agile methodology for your project
Prabhat Sinha
 
Scrum take quality to the next level
Scrum   take quality to the next levelScrum   take quality to the next level
Scrum take quality to the next level
Indium Software
 
10 adaptive sd_15
10 adaptive sd_1510 adaptive sd_15
10 adaptive sd_15
dcsunu
 
huruf prasekolah
huruf prasekolahhuruf prasekolah
huruf prasekolah
norliza khairuddin
 
The Sleeping Beauty
The Sleeping BeautyThe Sleeping Beauty
The Sleeping Beauty
Inés Tarradellas
 
Lm catering services
Lm catering servicesLm catering services
Lm catering services
PaulaMaeRamos
 
Madhusha B Ed
Madhusha B Ed Madhusha B Ed
Madhusha B Ed
Sumesh SV
 
POWER POINT PRESENTATION
POWER POINT PRESENTATIONPOWER POINT PRESENTATION
POWER POINT PRESENTATION
Sumesh SV
 
Classification of Elements Powerpoint Presentation by Computer Careers
Classification of Elements Powerpoint Presentation by Computer CareersClassification of Elements Powerpoint Presentation by Computer Careers
Classification of Elements Powerpoint Presentation by Computer Careers
Yaman Singhania
 
Art exibition
Art exibitionArt exibition
Art exibitionmaleemoha
 
University Assignment Literacy Assessment
University Assignment Literacy AssessmentUniversity Assignment Literacy Assessment
University Assignment Literacy Assessment
mforrester
 
POWR POINT PRESENTATION
POWR POINT PRESENTATIONPOWR POINT PRESENTATION
POWR POINT PRESENTATION
Sumesh SV
 
Kerajaankalingga
KerajaankalinggaKerajaankalingga
KerajaankalinggaPak Yayak
 
Power point Presentation
Power point PresentationPower point Presentation
Power point Presentation
Sumesh SV
 

Viewers also liked (20)

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.
 
Genetic Algorithm
Genetic AlgorithmGenetic Algorithm
Genetic Algorithm
 
Clustering using GA and Hill-climbing
Clustering using GA and Hill-climbingClustering using GA and Hill-climbing
Clustering using GA and Hill-climbing
 
optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managers
 
Scaling Agility Primer - Principles of Scaling Agility v.1
Scaling Agility Primer - Principles of Scaling Agility v.1Scaling Agility Primer - Principles of Scaling Agility v.1
Scaling Agility Primer - Principles of Scaling Agility v.1
 
Choosing right agile methodology for your project
Choosing right agile methodology for your projectChoosing right agile methodology for your project
Choosing right agile methodology for your project
 
Scrum take quality to the next level
Scrum   take quality to the next levelScrum   take quality to the next level
Scrum take quality to the next level
 
10 adaptive sd_15
10 adaptive sd_1510 adaptive sd_15
10 adaptive sd_15
 
huruf prasekolah
huruf prasekolahhuruf prasekolah
huruf prasekolah
 
The Sleeping Beauty
The Sleeping BeautyThe Sleeping Beauty
The Sleeping Beauty
 
Lm catering services
Lm catering servicesLm catering services
Lm catering services
 
Madhusha B Ed
Madhusha B Ed Madhusha B Ed
Madhusha B Ed
 
POWER POINT PRESENTATION
POWER POINT PRESENTATIONPOWER POINT PRESENTATION
POWER POINT PRESENTATION
 
Classification of Elements Powerpoint Presentation by Computer Careers
Classification of Elements Powerpoint Presentation by Computer CareersClassification of Elements Powerpoint Presentation by Computer Careers
Classification of Elements Powerpoint Presentation by Computer Careers
 
Art exibition
Art exibitionArt exibition
Art exibition
 
University Assignment Literacy Assessment
University Assignment Literacy AssessmentUniversity Assignment Literacy Assessment
University Assignment Literacy Assessment
 
POWR POINT PRESENTATION
POWR POINT PRESENTATIONPOWR POINT PRESENTATION
POWR POINT PRESENTATION
 
Kerajaankalingga
KerajaankalinggaKerajaankalingga
Kerajaankalingga
 
Power point Presentation
Power point PresentationPower point Presentation
Power point Presentation
 

Similar to Agile software development and extreme Programming

Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
ssuserb7c8b8
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
Mohamed Abdelrahman
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
Amna Ch
 
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
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
Bassam Kanber
 
Software Project management
Software Project managementSoftware Project management
Software Project management
sameer farooq
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
Mustafa Savaşcı
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
AhmadSajjad34
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
Durga Prasad
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
BSGAfrica
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
Vibrant Technologies & Computers
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
Purvik Rana
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
UnknownPerson201264
 
Extreme Programming (XP).pptx
Extreme Programming (XP).pptxExtreme Programming (XP).pptx
Extreme Programming (XP).pptx
AnkitKumar891632
 
Kku2011
Kku2011Kku2011
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
 
PM, Scrum and TFS - Ivan Marković
PM, Scrum and TFS - Ivan MarkovićPM, Scrum and TFS - Ivan Marković
PM, Scrum and TFS - Ivan Marković
Software StartUp Academy Osijek
 
Agile
AgileAgile
Agile
Komal2525
 
Ch01.ppt
Ch01.pptCh01.ppt
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarRoberto Jr. Figueroa
 

Similar to Agile software development and extreme Programming (20)

Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
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
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Extreme Programming (XP).pptx
Extreme Programming (XP).pptxExtreme Programming (XP).pptx
Extreme Programming (XP).pptx
 
Kku2011
Kku2011Kku2011
Kku2011
 
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
 
PM, Scrum and TFS - Ivan Marković
PM, Scrum and TFS - Ivan MarkovićPM, Scrum and TFS - Ivan Marković
PM, Scrum and TFS - Ivan Marković
 
Agile
AgileAgile
Agile
 
Ch01.ppt
Ch01.pptCh01.ppt
Ch01.ppt
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinar
 

Recently uploaded

Vaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdfVaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdf
Kamal Acharya
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
ssuser9bd3ba
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSETECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
DuvanRamosGarzon1
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
ShahidSultan24
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 

Recently uploaded (20)

Vaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdfVaccine management system project report documentation..pdf
Vaccine management system project report documentation..pdf
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSETECHNICAL TRAINING MANUAL   GENERAL FAMILIARIZATION COURSE
TECHNICAL TRAINING MANUAL GENERAL FAMILIARIZATION COURSE
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 

Agile software development and extreme Programming

  • 1. Agile Development and eXtreme Programming by: Fatemeh Karimi
  • 2. Agenda • Agile Development • Extreme Programming (XP) • XP Process • XP Key Practices • Advantages • Disadvantages 2/34
  • 4. Agile Manifesto “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software“ [Manifesto for Agile] 4/34
  • 5. • Incremental • Working software over comprehensive documentation • Cooperation • Customer collaboration over contract negotiation • Straightforward • Individuals and interactions over processes and tools • Adaptive • Responding to change over following a plan The Agile Spirit 5/34
  • 6. Agile Methodologies • eXtreme Programming (XP) • Scrum • Crystal family of methodologies • Feature-Driven Development (FDD) • Adaptive Software Development (ASD) • Dynamic System Development Model (DSDM) • Agile Unified Process (AUP) 6/34
  • 8. The XP Guru: Kent Beck • eXtreme Programming • The most prominent agile development methodology Kent Beck 1st ed. Oct 1999 2nd ed. Nov 2004 8/34
  • 9. • Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. • As a type of agile software development, it advocates frequent "releases" in short development cycles. • this way is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Extreme programming 9/34
  • 11. The 12 Key Practices • The Planning Game • Small Releases • Metaphor • Simple Design • Test-Driven Development • Refactoring • Pair Programming • Collective Ownership • Continuous Integration • 40-Hour Workweek • On-site Customer • Coding Standards 11/34
  • 12. 1. The Planning Game • Requirements via User Stories • Short cards with natural language description of what a customer wants • Prioritized by customer • Resource and risk estimated by developers • Play the Planning Game after each increment 12/34
  • 14. 2. Metaphor • Guide all development and conversations with a simple shared story of how the whole system works • Gives the team a whole picture of describing the system, where new parts fit, etc. • Words used to identify technical entities should be chosen from the metaphor • The default metaphor is the business domain, and it’s usually just fine 14/34
  • 15. 3. Testing • Test-Driven Development (TDD) • Write tests before code • Tests are automated • Acceptance Tests • Written with the customer • Acts as “contract” • Measure of progress 15/34
  • 16. Test-Driven Development • Developers write unit tests before coding • Motivates coding • Improves design: cohesion and coupling • Provides regression tests • Provides specification by example public void TestMultiplication() { Dollar five = Money.dollar(5); AssertEqual(new Dollar(10), five.times(2)); AssertEqual(new Dollar(15), five.times(3)); } 16/34
  • 17. 4. Pair Programming • Two software engineers work on one task at one computer: • The driver has control of the keyboard and mouse and creates the implementation • The navigator watches the driver’s implementation • Identifies defects and participates in on-demand brainstorming • The roles of driver and observer are periodically rotated 17/34
  • 18. Pair Programming • Pairs produce higher quality code • Pairs complete their tasks faster • Pairs enjoy their work more • Pairs feel more confident in their work 18/34
  • 19. 5. Refactoring • Improve the design of existing code without changing its functionality • Relies on unit testing to ensure the code is not broken • Bad smells in code: • Long method / class • Duplicate code • Methods does several different things (bad cohesion) • Too much dependencies (bad coupling) • Complex / unreadable code 19/34
  • 20. 6. Simple Design • No Big Design Up Front (BDUF) • Reduces the overhead • Gets feedback early • “Do The Simplest Thing That Could Possibly Work” • Later use refactoring to change it • Not too much formal documentation 20/34
  • 21. 7. Collective Code Ownership • Code to belongs to the project, not to an individual engineer! • Any engineer can modify any code • Better quality of the code • Engineers are not required to work around deficiencies in code they do not own • Faster progress • No need to wait for someone else to fix something 21/34
  • 22. 8. Continuous Integration • Pair writes up unit test cases and code for a task (part of a user story) • Pair unit tests code to 100% • Pair integrates • Pair runs ALL unit test cases to 100% • Pair moves on to next task with clean slate and clear mind • Should happen once or twice a day 22/34
  • 23. 9. On-Site Customer • Customer available on site • Clarify user stories • Make critical business decisions • Developers don’t make assumptions • Developers don’t have to wait for decisions • Face to face communication minimizes the chances of misunderstanding 23/34
  • 24. 10. Small Releases • As small as possible, but still delivering business value • No releases to ‘implement the database’ • Get customer feedback early and often • Do the planning game after each iteration • Do they want something different? • Have their priorities changed? 24/34
  • 25. 11. Forty-Hour Work Week • Kent Beck says, “ . . . fresh and eager every morning, and tired and satisfied every night” • Burning the midnight oil kills performance • Tired developers make more mistakes • Slows you down more in the long run 25/34
  • 26. 12. Coding Standards • Use coding conventions • Rules for naming, formatting, etc. • Write readable and maintainable code • Method commenting • Self-documenting code • Don't comment bad code, rewrite it! • Refactor to improve the design 26/34
  • 27. The 13th Practice? The Stand Up Meeting • Start the day with 15-minute meeting • Everyone stands up (so the meeting stays short) in circle • Going around the room everyone says specifically: • What they did the day before • What they plan to do today • Any obstacles they are experiencing • Can be the way pairs are formed 27/34
  • 28. Richness of the communication channel Communicationeffectiveness 2 people at whiteboard 2 people on phone 2 people on email Videotape Paper People Communicate Most Effectively Face-to-Face 28/34
  • 29. So What does XP Apply to? • Domains with changing requirements • High-risk projects (including those with high schedule risk) • Small project team: 2 – 12 programmers • Cannot be used with a large team • Extended development team • Developers, managers and customer • Co-located • Automated testability 29/34
  • 30. Advantages • Customer focus increase the chance that the software produced will actually meet the needs of the users • The focus on small, incremental release decreases the risk on your project: • by showing that your approach works and • by putting functionality in the hands of your users, enabling them to provide timely feedback regarding your work. • Continuous testing and integration helps to increase the quality of your work • XP is attractive to programmers who normally are unwilling to adopt a software process, enabling your organization to manage its software efforts better. 30/34
  • 31. Disadvantages • XP is geared toward a single project, developed and maintained by a single team. • XP is particularly vulnerable to "bad apple" developers who: • don't work well with others • who think they know it all, and/or • who are not willing to share their "superior” code • XP will not work in an environment where a customer or manager insists on a complete specification or design before they begin programming. • XP will not work in an environment where programmers are separated geographically. 31/34
  • 32. Conclusion • XP focuses on people • Values team work over power • XP works well when there are uncertain or volatile requirements • XP is a process not a miracle cure for all software development problems 32/34
  • 33. References/Links • http://www.extremeprogramming.org • http://www.xprogramming.com • http://www.jera.com/techinfo/xpfaq.html • http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap • http://ootips.org/xp.html • http://pairprogramming.com/ 33/34
  • 34. Thanks for your attention…

Editor's Notes

  1. 1##
  2. 3##
  3. 7##
  4. 8##
  5. 16##