SlideShare a Scribd company logo
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 Impacts
Agile Velocity
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
briley1
 
Agile Development
Agile DevelopmentAgile Development
Agile Development
abdpse
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile Development
Matt 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 Ireland
David 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 Programming
Agile Lietuva
 
Engineer - Mastering the Art of Software
Engineer - Mastering the Art of SoftwareEngineer - Mastering the Art of Software
Engineer - Mastering the Art of Software
Cristiano Diniz da Silva
 
Your Client Wants What
Your Client Wants WhatYour Client Wants What
Your Client Wants What
lazygolfer
 
An Introduction to XP and Agile
An Introduction to XP and AgileAn Introduction to XP and Agile
An Introduction to XP and Agile
Jason 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 Patterns
TechWell
 
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_21
Balint 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 Management
Rajeev 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 Model
Michael Rawlins
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
nayanbanik
 

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 Programming
Aniruddha Chakrabarti
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh 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 Practices
Jé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 development
Rajesh Piryani
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
Bassam 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 Practices
David 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 world
David Leip
 
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
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
programizconsultancy
 
Lect7
Lect7Lect7
Lect7
Lect7Lect7
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
MuaazZubairi
 

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

GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 

Recently uploaded (20)

GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 

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.