SlideShare a Scribd company logo
Introduction to
eXtreme Programming




    www.talkwiseconsulting.com
Contents

The problem
◦ Problems in software development
eXtreme Programming (XP)
◦   Values
◦   Practices
◦   Why XP works
◦   Benefits of XP
Conclusions
Resources
Problems in
 software development

Risks:
 Schedule slips
 Business misunderstood
 Defect rate
 Project cancelled
 System goes sour
 Business changes
Schedule slips
 Many projects are not delivered on time
 ◦ Examples: Word 1.0, Netscape 6
 Some deadlines cannot be moved
 ◦ Example: Y2K

 What if:
 most business value is delivered on time
Business misunderstood
 Without direct communication,
 developers have to guess what the
 customer wants.
 ◦ Example: The Orthodontics Project


 What if:
 an on-site customer steers development
Defect rate
 The software is put in production, but the
 defect rate is so high that it isn’t used.

 What if: you have automated testing
Project cancelled
      Size of project      Early   On-Time      Delayed     Cancelled           Sum
       1 function point   14.68%      83.16%       1.92%         0.25%        100.00%
     10 function points   11.08%      81.25%       5.67%         2.00%        100.00%
    100 function points    6.06%      74.77%      11.83%         7.33%        100.00%
  1,000 function points    1.24%      60.76%      17.67%       20.33%         100.00%
 10,000 function points    0.14%      28.00%      23.83%       48.00%         100.00%
100,000 function points    0.00%      13.67%      21.33%       65.00%         100.00%
               Average     5.53%      56.94%      13.71%       23.82%         100.00%


        Table 1: Percentage of projects early, on-time, late, canceled
   (from Patterns of Software Systems Failure and Success, by Capers Jones)
Project cancelled

 What if:
 short releases deliver at least some useful
 working software, reflecting investment to
 date
System goes sour

Software is put into production successfully, but
after a couple of years the cost of making
changes or the defect rate rises so much that
the system must be replaced.

What if:
the design is simple and the code quality is high
Business changes

New laws, market changes: business
priorities change

What if:
the customer can change their mind,
substitute functionality, and change priorities
Economics of
software development
         cost of change




 Requirements   Analysis   Design   Implementation   Testing   Production
What if…

    cost of change




                     Time
eXtreme Programming
 A system of practices that a community
 of software developers is evolving to
 address the problems of quickly delivering
 quality software, and then evolving it to
 meet changing business needs.
eXtreme…

Taking proven practices to the extreme
  If testing is good, let everybody test all the time
  If code reviews are good, review all the time
  If design is good, refactor all the time
  If integration testing is good, integrate all the time
  If simplicity is good, do the simplest thing that could
  possibly work
  If short iterations are good, make them really, really
  short
XP values


Communication
Simplicity
Feedback
Courage
XP practices

The Planning Game*   Collective Ownership
Small Releases       Continuous Integration
Metaphor             40-Hour Week
Simple Design*       On-Site Customer
Testing*             Coding Standards
Refactoring*         Open workspace
Pair Programming*    Daily Schema migration
The Planning Game

Business writes a story describing desired
functionality
Stories are written on index cards
Development estimates stories
Velocity determines number of stories per
iteration
Business splits and prioritizes stories and
determines the composition of releases
Velocity is measured and adjusted every iteration
Customer steers development
Testing
 Unit Tests and Functional Tests
 Test a little, code a little…
 ◦ “Test-first programming”
 Tests become the specification
 Tests give confidence in the system
 Tests give courage to change the system
Unit tests
Pair Programming

 Two people looking at
 one machine, with one
 keyboard and one
 mouse
 Two roles:
 implementation and
 strategy
 All production code is
 written in pairs
Pair Programming Benefits

15% less output than 2 solo programmers
Continuous code review: better design, fewer
defects
Confidence to add to or change the system
Discipline to always test and refactor
Teach each other how the system works (reduced
staffing risks)
Learn from partner’s knowledge and experience
(enhances technical skills)
Simple design

Do the simplest thing that could possibly
 work

 Passes all the tests
 No duplicate code
 States every intention
 Fewest possible classes and methods
Refactoring
 Design becomes everybody’s daily business
 Continuously improve quality of the code
 Unit Tests and Pair Programming give courage

Result:
 Fast development speed
 Code becomes easy to change
Why XP works

Light-weight: discipline without bureaucracy
Under stress, people do what is easiest
◦ All XP practices have short-term benefits as well
  as long-term benefits
Development as a Conversation
The code is the documentation
XP is fun
Who benefits from XP?

Programmers:              Customers:
   get clear requirements    get most business
   & priorities              value first
   can do a good job         get accurate feedback
   can make technical        can make informed
   decisions                 business decisions
   don’t work overtime       can change their mind
Conclusions
 Use XP on projects
 ◦ with vague or changing requirements
 ◦ with small teams
 XP works, and is very fast
 XP is fun to execute
 At Azzurri, we use XP as much as possible
 with clients, and exclusively for internal
 projects
XP books and papers
Extreme Programming Explained – Kent Beck
Refactoring – Martin Fowler
Planning Extreme Programming – Kent Beck et al
Extreme Programming Installed – Ron Jeffries et al
Extreme Programming Examined – Giancarlo Succi et al
Extreme Programming in Practice – Robert C. Martin et al
Extreme Programming Explored – William C. Wake
Extreme Programming Applied – Ken Auer et al
The Costs and Benefits of Pair Programming – Alistair
Cockburn et al
Web resources
 www.junit.org
 www.xprogramming.com
 www.extremeprogramming.org
 www.refactoring.com
 www.pairprogramming.com
Thank you

More Related Content

What's hot

NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
Solano Labs
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
Michael Green
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
Hien Nguyen
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
Srinivasan Hariharan
 
Tdd
TddTdd
Agile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik ChopraAgile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik ChopraAgileNCR2014
 
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
Ho Chi Minh City Software Testing Club
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOps
dpaulmerrill
 
Software Dev Process In A Nutshell
Software Dev Process In A NutshellSoftware Dev Process In A Nutshell
Software Dev Process In A Nutshell
Ocean Dong
 
Smart CTO Service
Smart CTO ServiceSmart CTO Service
Smart CTO Service
Atlogys Technical Consulting
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
Guillagui San
 
Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...
Tze Chin Tang
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
Richard Cheng
 
Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile Projects
Ram Srivastava
 
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREs
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREsHope Is Not A Strategy: Automating Efficient Resource Utilization for SREs
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREs
StormForge .io
 
Test Automation Beyond Test Execution
Test Automation Beyond Test ExecutionTest Automation Beyond Test Execution
Test Automation Beyond Test Execution
Eggplant
 
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
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
Jean-François Nguyen
 
Devtribe a/ b testing on multiple platforms with recurring and paying users
Devtribe  a/ b testing on multiple platforms with recurring and paying usersDevtribe  a/ b testing on multiple platforms with recurring and paying users
Devtribe a/ b testing on multiple platforms with recurring and paying users
Oscar Carlsson
 
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW DevelopmentISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
 

What's hot (20)

NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Tdd
TddTdd
Tdd
 
Agile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik ChopraAgile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik Chopra
 
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
The New Agile Testing Quadrants: Bringing Skilled Testers and Developers Toge...
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOps
 
Software Dev Process In A Nutshell
Software Dev Process In A NutshellSoftware Dev Process In A Nutshell
Software Dev Process In A Nutshell
 
Smart CTO Service
Smart CTO ServiceSmart CTO Service
Smart CTO Service
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
 
Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile Projects
 
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREs
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREsHope Is Not A Strategy: Automating Efficient Resource Utilization for SREs
Hope Is Not A Strategy: Automating Efficient Resource Utilization for SREs
 
Test Automation Beyond Test Execution
Test Automation Beyond Test ExecutionTest Automation Beyond Test Execution
Test Automation Beyond Test Execution
 
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
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
Devtribe a/ b testing on multiple platforms with recurring and paying users
Devtribe  a/ b testing on multiple platforms with recurring and paying usersDevtribe  a/ b testing on multiple platforms with recurring and paying users
Devtribe a/ b testing on multiple platforms with recurring and paying users
 
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW DevelopmentISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
 

Viewers also liked

Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijanRehim Yusifov
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijanRehim Yusifov
 
Kajian tindakan dalam pendidikan
Kajian tindakan dalam pendidikanKajian tindakan dalam pendidikan
Kajian tindakan dalam pendidikankpr4063
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsultingtalkwiseone
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijanRehim Yusifov
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijanRehim Yusifov
 
Bài tập ktoan quan tri
Bài tập ktoan quan triBài tập ktoan quan tri
Bài tập ktoan quan triSwangainy
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijanRehim Yusifov
 
Kajian tindakan
Kajian tindakanKajian tindakan
Kajian tindakankpr4063
 

Viewers also liked (14)

Monuments
MonumentsMonuments
Monuments
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijan
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijan
 
Kajian tindakan dalam pendidikan
Kajian tindakan dalam pendidikanKajian tindakan dalam pendidikan
Kajian tindakan dalam pendidikan
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijan
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijan
 
Bài tập ktoan quan tri
Bài tập ktoan quan triBài tập ktoan quan tri
Bài tập ktoan quan tri
 
Friendship force of azerbaijan
Friendship force of azerbaijanFriendship force of azerbaijan
Friendship force of azerbaijan
 
Mining & mineral sector ppt
Mining & mineral sector pptMining & mineral sector ppt
Mining & mineral sector ppt
 
Kajian tindakan
Kajian tindakanKajian tindakan
Kajian tindakan
 
Mining & mineral sector ppt
Mining & mineral sector pptMining & mineral sector ppt
Mining & mineral sector ppt
 
Samsung mobile ppt
Samsung mobile pptSamsung mobile ppt
Samsung mobile ppt
 
Samsung Electronics ppt
Samsung Electronics pptSamsung Electronics ppt
Samsung Electronics ppt
 

Similar to Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting

extreme Programming
extreme Programmingextreme Programming
extreme Programming
Bilal Shah
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
Semen Arslan
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
programizconsultancy
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
jackcrews
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slidesgilashikwa
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
International Islamic University Islamabad
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
Vernon Stinebaker
 
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 - FINALAlex Tarra
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
Jérôme Kehrli
 
Lect7
Lect7Lect7
Lect7
Lect7Lect7
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.pptMohan Late
 
Software Development in the Brave New world
Software Development in the Brave New worldSoftware Development in the Brave New world
Software Development in the Brave New world
David Leip
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
Vashira Ravipanich
 
Agile
AgileAgile
Agile
Komal2525
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
MarriamNawaz
 

Similar to Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting (20)

extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
 
Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
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
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.ppt
 
Software Development in the Brave New world
Software Development in the Brave New worldSoftware Development in the Brave New world
Software Development in the Brave New world
 
3685807
36858073685807
3685807
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Agile
AgileAgile
Agile
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 

Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting

  • 1. Introduction to eXtreme Programming www.talkwiseconsulting.com
  • 2. Contents The problem ◦ Problems in software development eXtreme Programming (XP) ◦ Values ◦ Practices ◦ Why XP works ◦ Benefits of XP Conclusions Resources
  • 3. Problems in software development Risks: Schedule slips Business misunderstood Defect rate Project cancelled System goes sour Business changes
  • 4. Schedule slips Many projects are not delivered on time ◦ Examples: Word 1.0, Netscape 6 Some deadlines cannot be moved ◦ Example: Y2K What if: most business value is delivered on time
  • 5. Business misunderstood Without direct communication, developers have to guess what the customer wants. ◦ Example: The Orthodontics Project What if: an on-site customer steers development
  • 6. Defect rate The software is put in production, but the defect rate is so high that it isn’t used. What if: you have automated testing
  • 7. Project cancelled Size of project Early On-Time Delayed Cancelled Sum 1 function point 14.68% 83.16% 1.92% 0.25% 100.00% 10 function points 11.08% 81.25% 5.67% 2.00% 100.00% 100 function points 6.06% 74.77% 11.83% 7.33% 100.00% 1,000 function points 1.24% 60.76% 17.67% 20.33% 100.00% 10,000 function points 0.14% 28.00% 23.83% 48.00% 100.00% 100,000 function points 0.00% 13.67% 21.33% 65.00% 100.00% Average 5.53% 56.94% 13.71% 23.82% 100.00% Table 1: Percentage of projects early, on-time, late, canceled (from Patterns of Software Systems Failure and Success, by Capers Jones)
  • 8. Project cancelled What if: short releases deliver at least some useful working software, reflecting investment to date
  • 9. System goes sour Software is put into production successfully, but after a couple of years the cost of making changes or the defect rate rises so much that the system must be replaced. What if: the design is simple and the code quality is high
  • 10. Business changes New laws, market changes: business priorities change What if: the customer can change their mind, substitute functionality, and change priorities
  • 11. Economics of software development cost of change Requirements Analysis Design Implementation Testing Production
  • 12. What if… cost of change Time
  • 13. eXtreme Programming A system of practices that a community of software developers is evolving to address the problems of quickly delivering quality software, and then evolving it to meet changing business needs.
  • 14. eXtreme… Taking proven practices to the extreme If testing is good, let everybody test all the time If code reviews are good, review all the time If design is good, refactor all the time If integration testing is good, integrate all the time If simplicity is good, do the simplest thing that could possibly work If short iterations are good, make them really, really short
  • 16. XP practices The Planning Game* Collective Ownership Small Releases Continuous Integration Metaphor 40-Hour Week Simple Design* On-Site Customer Testing* Coding Standards Refactoring* Open workspace Pair Programming* Daily Schema migration
  • 17. The Planning Game Business writes a story describing desired functionality Stories are written on index cards Development estimates stories Velocity determines number of stories per iteration Business splits and prioritizes stories and determines the composition of releases Velocity is measured and adjusted every iteration Customer steers development
  • 18. Testing Unit Tests and Functional Tests Test a little, code a little… ◦ “Test-first programming” Tests become the specification Tests give confidence in the system Tests give courage to change the system
  • 20. Pair Programming Two people looking at one machine, with one keyboard and one mouse Two roles: implementation and strategy All production code is written in pairs
  • 21. Pair Programming Benefits 15% less output than 2 solo programmers Continuous code review: better design, fewer defects Confidence to add to or change the system Discipline to always test and refactor Teach each other how the system works (reduced staffing risks) Learn from partner’s knowledge and experience (enhances technical skills)
  • 22. Simple design Do the simplest thing that could possibly work Passes all the tests No duplicate code States every intention Fewest possible classes and methods
  • 23. Refactoring Design becomes everybody’s daily business Continuously improve quality of the code Unit Tests and Pair Programming give courage Result: Fast development speed Code becomes easy to change
  • 24. Why XP works Light-weight: discipline without bureaucracy Under stress, people do what is easiest ◦ All XP practices have short-term benefits as well as long-term benefits Development as a Conversation The code is the documentation XP is fun
  • 25. Who benefits from XP? Programmers: Customers: get clear requirements get most business & priorities value first can do a good job get accurate feedback can make technical can make informed decisions business decisions don’t work overtime can change their mind
  • 26. Conclusions Use XP on projects ◦ with vague or changing requirements ◦ with small teams XP works, and is very fast XP is fun to execute At Azzurri, we use XP as much as possible with clients, and exclusively for internal projects
  • 27. XP books and papers Extreme Programming Explained – Kent Beck Refactoring – Martin Fowler Planning Extreme Programming – Kent Beck et al Extreme Programming Installed – Ron Jeffries et al Extreme Programming Examined – Giancarlo Succi et al Extreme Programming in Practice – Robert C. Martin et al Extreme Programming Explored – William C. Wake Extreme Programming Applied – Ken Auer et al The Costs and Benefits of Pair Programming – Alistair Cockburn et al
  • 28. Web resources www.junit.org www.xprogramming.com www.extremeprogramming.org www.refactoring.com www.pairprogramming.com