SlideShare a Scribd company logo
1 of 19
eXtreme Programming
A lightweight development
process for small to medium-sized
projects (an Agile Process)
by Shahid N. Shah
Slide 2 of 18
Sampling of Available
Methodolgies
Waterfall*
Extreme
Programming
Crystal Family
(Alistair Cockburn)
Open Source
Adaptive Software
Development (Jim
Highsmith)
SCRUM
Feature Driven
Development (FDD,
Jeff De Luca and
Peter Coad)
Dynamic System
Development Method
(DSDM, $$)
Rational Unified
Process ($$)** Non-agile
Slide 3 of 18
XP Philosophy
Always ask yourself: “what is the simplest
thing that could possibly work?” -- Kent
Beck, XP Creator
Never do any more coding, more testing,
more process, or more documentation than
is absolutely necessary to delight the
customer.
Main values: Communication, Feedback,
Simplicity, and Courage
Formalize and do what has been known by
“smart guys” for years
Not a “license to hack”!
Slide 4 of 18
XP Key Practices
Adaptive, not predictive
The Planning Game -- Quick, up-date as needed,
80/20 rule, push out what doesn’t need to be
immediately decided
Small releases -- Get simple system into production
quickly, add features in small releases
Simple design -- Design as simple as possible
Refactoring -- Continuously restructure to simplify,
remove duplication
40 hour week
On-site customer -- collective ownership
Travel light -- No more documentation than needed
to support deployment of application
Slide 5 of 18
Customer’s bill of rights
To set objectives for the
project and have them
followed.
To know how long the
software project will take and
how much it will cost.
To decide which features are
in and which are out of the
software.
To know the project’s status.
To make reasonable
changes to requirements
throughout the course of the
project and to know the
costs of making these
changes.
To be apprised regularly of
risks that could affect cost,
schedule or quality.
To have ready access to
project deliverables
throughout the project.
Slide 6 of 18
Developer’s Bill of
Rights
To know the project objectives
and to be able to clarify
priorities.
To know in detail what product
I’m supposed to build.
To have ready access to the
customer, manager, marketer,
or other person responsible for
the functionality.
To work each phase of the
project in a technically
responsible way.
To approve effort and schedule
estimates for any work that I will
be asked to perform.
To have my project’s status
reported accurately to
customers and upper
management.
To work in a productive
environment free from frequent
interruptions.
Slide 7 of 18
Benefits of XP
Software stays soft
Handles changing requirements with
relative ease
Quickly produces something useful,
keeps making useful enhancements --
delivery is provided when customer is
ready
Average developers can produce great
software
Slide 8 of 18
Prerequisites
Flexible Project Management
Goal is to delight customers and not to
maintain process (though they are not
mutually exclusive)
Groups that can talk to each other
Close contact with users
Slide 9 of 18
Obvious things to do
Staged Delivery
continuous stream of value
feedback
adapt to change
Business people make business decisions
and technical people make technical
decisions
Regression testing, unit tests
Review designs and code
Slide 10 of 18
Extreme Programming
Analysis
Test
Code
Design
Project Management
Slide 11 of 18
Extreme Analysis
Describe system as a set of user stories
(storyboards)
Users write stories explaining one use of
the system (explain by example)
Like use cases, but informal (no special
tools are needed)
Realize that all artifacts created during
design will rarely be updated after
implementation
Slide 12 of 18
Extreme Testing
Write tests before code
 unit tests before each class
 end-to-end tests before any classes
Convert each user story into a set of tests
All unit tests must run 100% all the time
Don’t worry if you can’t test everything
 GUI
 real-time I/O
 complete coverage
Don’t worry if testing is expensive
Slide 13 of 18
Extreme Coding
Eliminate code in favor of configuration
Write code for test cases one at a time
Write the simplest thing that could possibly
work
Goal: make the tests work ASAP
 write new classes
 use/change old classes
 copy code
 add if statements
Enforce coding standards
Slide 14 of 18
Pair Programming
All code is written in pairs
Pairs talk continually
Pair switches driver frequently
People switch pairs several times a day
Continuous code review
Slide 15 of 18
Refactoring:
Extreme Design
Make sure each thing is done in one
place - eliminate all duplicate code
Make sure each class/function does
one thing
All code must be readable
All tests run
Slide 16 of 18
Extreme Design
Project starts with a few days of design
on white-boards/CRC cards
Major problems lead to group design
sessions (servers, objects, etc)
Documentation is after the fact, and no
more than necessary
Start simple, refactor to keep simple
Slide 17 of 18
Extreme Scheduling
Customer write stories
Developers estimate cost
Customer decides which to do next
Group a few weeks worth of stories into
an iteration
Developers implement stories one at a
time until iteration is finished
Slide 18 of 18
What is Extreme?
Extreme, but not unusual
user stories, schedule negotiation, staged
delivery, testing, simplicity
Extreme and unusual
pair programming
continuous refactoring
Slide 19 of 18
Conclusion
Produce consistently better applications
with fewer people (or less qualified
people), in less time, with higher quality
and significantly lower overall cost.

More Related Content

What's hot

Technical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsTechnical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsAgile Velocity
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projectsbriley1
 
Agile Development
Agile DevelopmentAgile Development
Agile Developmentabdpse
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile DevelopmentMatt Griffin
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slidesgilashikwa
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandDavid O'Dowd
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAgile Lietuva
 
Your Client Wants What
Your Client Wants WhatYour Client Wants What
Your Client Wants Whatlazygolfer
 
An Introduction to XP and Agile
An Introduction to XP and AgileAn Introduction to XP and Agile
An Introduction to XP and AgileJason Yip
 
Enough about Process, Let’s Use Patterns
Enough about Process, Let’s Use PatternsEnough about Process, Let’s Use Patterns
Enough about Process, Let’s Use PatternsTechWell
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 
Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21Balint Erdi
 
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...Eric Ries
 
Software Product Management
Software Product ManagementSoftware Product Management
Software Product ManagementRajeev Misra
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
Conducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM ModelConducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM ModelMichael Rawlins
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cyclenayanbanik
 

What's hot (20)

Technical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsTechnical Debt: Sources and Impacts
Technical Debt: Sources and Impacts
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
 
Agile Development
Agile DevelopmentAgile Development
Agile Development
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile Development
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
 
Engineer - Mastering the Art of Software
Engineer - Mastering the Art of SoftwareEngineer - Mastering the Art of Software
Engineer - Mastering the Art of Software
 
Your Client Wants What
Your Client Wants WhatYour Client Wants What
Your Client Wants What
 
An Introduction to XP and Agile
An Introduction to XP and AgileAn Introduction to XP and Agile
An Introduction to XP and Agile
 
Enough about Process, Let’s Use Patterns
Enough about Process, Let’s Use PatternsEnough about Process, Let’s Use Patterns
Enough about Process, Let’s Use Patterns
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21
 
Let trust our estimates
Let trust our estimatesLet trust our estimates
Let trust our estimates
 
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
 
Software Product Management
Software Product ManagementSoftware Product Management
Software Product Management
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Conducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM ModelConducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM Model
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 

Viewers also liked

Saint petersburg open city
Saint petersburg   open citySaint petersburg   open city
Saint petersburg open cityDaria Skrebova
 
Stateof cto career_2002
Stateof cto career_2002Stateof cto career_2002
Stateof cto career_2002eaiti
 
Push to pull
Push to pullPush to pull
Push to pulleaiti
 
Social apps 3_1_2008
Social apps 3_1_2008Social apps 3_1_2008
Social apps 3_1_2008eaiti
 
Hemispheres of Data
Hemispheres of DataHemispheres of Data
Hemispheres of Dataeaiti
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006eaiti
 
Greenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and AnalyticsGreenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and Analyticseaiti
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000eaiti
 
Broadband tech 2005
Broadband tech 2005Broadband tech 2005
Broadband tech 2005eaiti
 
Ping solutions overview_111904
Ping solutions overview_111904Ping solutions overview_111904
Ping solutions overview_111904eaiti
 
Handheld device med_care_2001
Handheld device med_care_2001Handheld device med_care_2001
Handheld device med_care_2001eaiti
 
Ctolinux 2001
Ctolinux 2001Ctolinux 2001
Ctolinux 2001eaiti
 
Enterprise Mobility Management
Enterprise Mobility ManagementEnterprise Mobility Management
Enterprise Mobility Managementeaiti
 
Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006eaiti
 
Quantum technology
Quantum technologyQuantum technology
Quantum technologyeaiti
 
Intrusion detection 2001
Intrusion detection 2001Intrusion detection 2001
Intrusion detection 2001eaiti
 
Middleware 2002
Middleware 2002Middleware 2002
Middleware 2002eaiti
 
BigData @ comScore
BigData @ comScoreBigData @ comScore
BigData @ comScoreeaiti
 

Viewers also liked (18)

Saint petersburg open city
Saint petersburg   open citySaint petersburg   open city
Saint petersburg open city
 
Stateof cto career_2002
Stateof cto career_2002Stateof cto career_2002
Stateof cto career_2002
 
Push to pull
Push to pullPush to pull
Push to pull
 
Social apps 3_1_2008
Social apps 3_1_2008Social apps 3_1_2008
Social apps 3_1_2008
 
Hemispheres of Data
Hemispheres of DataHemispheres of Data
Hemispheres of Data
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006
 
Greenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and AnalyticsGreenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and Analytics
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000
 
Broadband tech 2005
Broadband tech 2005Broadband tech 2005
Broadband tech 2005
 
Ping solutions overview_111904
Ping solutions overview_111904Ping solutions overview_111904
Ping solutions overview_111904
 
Handheld device med_care_2001
Handheld device med_care_2001Handheld device med_care_2001
Handheld device med_care_2001
 
Ctolinux 2001
Ctolinux 2001Ctolinux 2001
Ctolinux 2001
 
Enterprise Mobility Management
Enterprise Mobility ManagementEnterprise Mobility Management
Enterprise Mobility Management
 
Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006
 
Quantum technology
Quantum technologyQuantum technology
Quantum technology
 
Intrusion detection 2001
Intrusion detection 2001Intrusion detection 2001
Intrusion detection 2001
 
Middleware 2002
Middleware 2002Middleware 2002
Middleware 2002
 
BigData @ comScore
BigData @ comScoreBigData @ comScore
BigData @ comScore
 

Similar to Xp presentation 2003

Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
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 PracticesJérôme Kehrli
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programmingJean Pаoli
 
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
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsultingtalkwiseone
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsultingtalkwiseone
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdfBassam Kanber
 
Extreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP PracticesExtreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP PracticesDavid Hanson
 
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 worldDavid Leip
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineeringprogramizconsultancy
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 

Similar to Xp presentation 2003 (20)

Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
 
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
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Extreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP PracticesExtreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP Practices
 
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
 
software lecture
software lecturesoftware lecture
software lecture
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SE chapter 4
SE chapter 4SE chapter 4
SE chapter 4
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 

More from eaiti

Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002eaiti
 
J2ee 2000
J2ee 2000J2ee 2000
J2ee 2000eaiti
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtableeaiti
 
Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006eaiti
 
It outsourcing 2005
It outsourcing 2005It outsourcing 2005
It outsourcing 2005eaiti
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003eaiti
 
Using Hadoop
Using HadoopUsing Hadoop
Using Hadoopeaiti
 

More from eaiti (7)

Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002
 
J2ee 2000
J2ee 2000J2ee 2000
J2ee 2000
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtable
 
Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006
 
It outsourcing 2005
It outsourcing 2005It outsourcing 2005
It outsourcing 2005
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003
 
Using Hadoop
Using HadoopUsing Hadoop
Using Hadoop
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Xp presentation 2003

  • 1. eXtreme Programming A lightweight development process for small to medium-sized projects (an Agile Process) by Shahid N. Shah
  • 2. Slide 2 of 18 Sampling of Available Methodolgies Waterfall* Extreme Programming Crystal Family (Alistair Cockburn) Open Source Adaptive Software Development (Jim Highsmith) SCRUM Feature Driven Development (FDD, Jeff De Luca and Peter Coad) Dynamic System Development Method (DSDM, $$) Rational Unified Process ($$)** Non-agile
  • 3. Slide 3 of 18 XP Philosophy Always ask yourself: “what is the simplest thing that could possibly work?” -- Kent Beck, XP Creator Never do any more coding, more testing, more process, or more documentation than is absolutely necessary to delight the customer. Main values: Communication, Feedback, Simplicity, and Courage Formalize and do what has been known by “smart guys” for years Not a “license to hack”!
  • 4. Slide 4 of 18 XP Key Practices Adaptive, not predictive The Planning Game -- Quick, up-date as needed, 80/20 rule, push out what doesn’t need to be immediately decided Small releases -- Get simple system into production quickly, add features in small releases Simple design -- Design as simple as possible Refactoring -- Continuously restructure to simplify, remove duplication 40 hour week On-site customer -- collective ownership Travel light -- No more documentation than needed to support deployment of application
  • 5. Slide 5 of 18 Customer’s bill of rights To set objectives for the project and have them followed. To know how long the software project will take and how much it will cost. To decide which features are in and which are out of the software. To know the project’s status. To make reasonable changes to requirements throughout the course of the project and to know the costs of making these changes. To be apprised regularly of risks that could affect cost, schedule or quality. To have ready access to project deliverables throughout the project.
  • 6. Slide 6 of 18 Developer’s Bill of Rights To know the project objectives and to be able to clarify priorities. To know in detail what product I’m supposed to build. To have ready access to the customer, manager, marketer, or other person responsible for the functionality. To work each phase of the project in a technically responsible way. To approve effort and schedule estimates for any work that I will be asked to perform. To have my project’s status reported accurately to customers and upper management. To work in a productive environment free from frequent interruptions.
  • 7. Slide 7 of 18 Benefits of XP Software stays soft Handles changing requirements with relative ease Quickly produces something useful, keeps making useful enhancements -- delivery is provided when customer is ready Average developers can produce great software
  • 8. Slide 8 of 18 Prerequisites Flexible Project Management Goal is to delight customers and not to maintain process (though they are not mutually exclusive) Groups that can talk to each other Close contact with users
  • 9. Slide 9 of 18 Obvious things to do Staged Delivery continuous stream of value feedback adapt to change Business people make business decisions and technical people make technical decisions Regression testing, unit tests Review designs and code
  • 10. Slide 10 of 18 Extreme Programming Analysis Test Code Design Project Management
  • 11. Slide 11 of 18 Extreme Analysis Describe system as a set of user stories (storyboards) Users write stories explaining one use of the system (explain by example) Like use cases, but informal (no special tools are needed) Realize that all artifacts created during design will rarely be updated after implementation
  • 12. Slide 12 of 18 Extreme Testing Write tests before code  unit tests before each class  end-to-end tests before any classes Convert each user story into a set of tests All unit tests must run 100% all the time Don’t worry if you can’t test everything  GUI  real-time I/O  complete coverage Don’t worry if testing is expensive
  • 13. Slide 13 of 18 Extreme Coding Eliminate code in favor of configuration Write code for test cases one at a time Write the simplest thing that could possibly work Goal: make the tests work ASAP  write new classes  use/change old classes  copy code  add if statements Enforce coding standards
  • 14. Slide 14 of 18 Pair Programming All code is written in pairs Pairs talk continually Pair switches driver frequently People switch pairs several times a day Continuous code review
  • 15. Slide 15 of 18 Refactoring: Extreme Design Make sure each thing is done in one place - eliminate all duplicate code Make sure each class/function does one thing All code must be readable All tests run
  • 16. Slide 16 of 18 Extreme Design Project starts with a few days of design on white-boards/CRC cards Major problems lead to group design sessions (servers, objects, etc) Documentation is after the fact, and no more than necessary Start simple, refactor to keep simple
  • 17. Slide 17 of 18 Extreme Scheduling Customer write stories Developers estimate cost Customer decides which to do next Group a few weeks worth of stories into an iteration Developers implement stories one at a time until iteration is finished
  • 18. Slide 18 of 18 What is Extreme? Extreme, but not unusual user stories, schedule negotiation, staged delivery, testing, simplicity Extreme and unusual pair programming continuous refactoring
  • 19. Slide 19 of 18 Conclusion Produce consistently better applications with fewer people (or less qualified people), in less time, with higher quality and significantly lower overall cost.